summaryrefslogtreecommitdiff
path: root/sdr-test-project/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'sdr-test-project/main.c')
-rw-r--r--sdr-test-project/main.c38
1 files changed, 35 insertions, 3 deletions
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;
}
}
}
personal git repositories of Harald Welte. Your mileage may vary