diff --git a/sdr-test-project/Makefile b/sdr-test-project/Makefile index feb5c35..7072572 100644 --- a/sdr-test-project/Makefile +++ b/sdr-test-project/Makefile @@ -74,7 +74,7 @@ OBJ = obj #------------------------------------------------------------------------------- # Tool suffix when cross-compiling -CROSS_COMPILE = arm-none-eabi- +CROSS_COMPILE = arm-cm3-eabi- # Compilation tools CC = $(CROSS_COMPILE)gcc @@ -119,7 +119,6 @@ DRIVER = $(AT91LIB)/drivers MEM = $(AT91LIB)/memories MEM = $(EXT_LIBS)/memories -VPATH += $(COMP)/codec-wm8731 VPATH += $(UTILITY) VPATH += $(PERIPH)/dbgu VPATH += $(PERIPH)/pio @@ -142,8 +141,6 @@ VPATH += ../../osmo-sdr/firmware/src # Objects built from C source files C_OBJECTS += main.o -#C_OBJECTS += wm8731.o -#C_OBJECTS += wav.o C_OBJECTS += stdio.o C_OBJECTS += math.o C_OBJECTS += dbgu.o @@ -161,6 +158,7 @@ C_OBJECTS += logging.o C_OBJECTS += tuner_e4k.o C_OBJECTS += tuner_e4k_transport.o C_OBJECTS += si570.o +C_OBJECTS += osdr_fpga.o # Objects for different chips diff --git a/sdr-test-project/main.c b/sdr-test-project/main.c index 441af94..5e55b7b 100644 --- a/sdr-test-project/main.c +++ b/sdr-test-project/main.c @@ -70,19 +70,42 @@ //------------------------------------------------------------------------------ /// List of pins to configure. -static const Pin pins[] = {PINS_TWI0, PIN_PCK0, PINS_LEDS}; +static const Pin pins[] = {PINS_TWI0, PIN_PCK0, PINS_LEDS, + PINS_MISC, PINS_SSC, PINS_FPGA_JTAG}; static Twid twid; static struct e4k_state e4k; static struct si570_ctx si570; +static void set_si570_freq(uint32_t freq) +{ + si570_set_freq(&si570, freq/1000, 0); + e4k.vco.fosc = freq; +} + +static void power_peripherals(int on) +{ + if (on) { + osdr_fpga_power(1); + sam3u_e4k_power(&e4k, 1); + sam3u_e4k_stby(&e4k, 0); + } else { + osdr_fpga_power(0); + sam3u_e4k_stby(&e4k, 1); + sam3u_e4k_power(&e4k, 0); + } +} + static void DisplayMenu(void) { printf("Menu:\r\n" + "[0] fpga+rf power on\r\n" "[1] si570 init\r\n" "[2] e4k init\r\n" - "[f] si570 10MHz freq\r\n" + "[f] si570 30MHz freq\r\n" "[r] si570 regdump\r\n" + "[q] 100 MHz\r\n" + "[w] 101 MHz\r\n" "\r\n" ); } @@ -146,6 +169,9 @@ int main(void) key = DBGU_GetChar(); switch (key) { + case '0': + power_peripherals(1); + break; case '1': si570_init(&si570, &twid, SI570_I2C_ADDR); break; @@ -154,11 +180,17 @@ int main(void) e4k_init(&e4k); break; case 'f': - si570_set_freq(&si570, 10000000, 0); + set_si570_freq(30000000); break; case 'r': si570_regdump(&si570); break; + case 'q': + e4k_tune_freq(&e4k, 100000000); + break; + case 'w': + e4k_tune_freq(&e4k, 101000000); + break; } } }