diff options
| -rw-r--r-- | sdr-test-project/Makefile | 6 | ||||
| -rw-r--r-- | sdr-test-project/main.c | 38 | 
2 files changed, 37 insertions, 7 deletions
| 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;
  	}
      }
  }
 | 
