From 3a3bfd471a868d546d83cdc431b53c8f5208edb9 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Thu, 28 May 2009 23:17:33 -0700 Subject: [PATCH] Eliminate RDF tone generation. Now that we have a viable telemetry-signal based RDF device via TeleDongle, there's no reason to continue to waste power and bandwidth with a NFM tone. Signed-off-by: Keith Packard --- ao.h | 9 ----- ao_flight.c | 7 ---- ao_flight_test.c | 1 - ao_radio.c | 89 ------------------------------------------------ ao_telemetry.c | 20 ----------- 5 files changed, 126 deletions(-) diff --git a/ao.h b/ao.h index 411b950d..1f32ba50 100644 --- a/ao.h +++ b/ao.h @@ -743,9 +743,6 @@ struct ao_telemetry { void ao_telemetry_set_interval(uint16_t interval); -void -ao_rdf_set(uint8_t rdf); - void ao_telemetry_init(void); @@ -765,12 +762,6 @@ struct ao_radio_recv { void ao_radio_recv(__xdata struct ao_radio_recv *recv) __reentrant; -void -ao_radio_rdf(void); - -void -ao_radio_rdf_abort(void); - void ao_radio_init(void); diff --git a/ao_flight.c b/ao_flight.c index 51b2cd5e..c0f56830 100644 --- a/ao_flight.c +++ b/ao_flight.c @@ -227,7 +227,6 @@ ao_flight(void) /* Turn on telemetry system */ - ao_rdf_set(1); ao_telemetry_set_interval(AO_TELEMETRY_INTERVAL_PAD); ao_flight_state = ao_flight_launchpad; @@ -278,9 +277,6 @@ ao_flight(void) /* Increase telemetry rate */ ao_telemetry_set_interval(AO_TELEMETRY_INTERVAL_FLIGHT); - /* disable RDF beacon */ - ao_rdf_set(0); - ao_wakeup(DATA_TO_XDATA(&ao_flight_state)); break; } @@ -360,9 +356,6 @@ ao_flight(void) /* slow down the ADC sample rate */ ao_timer_set_adc_interval(10); - /* Enable RDF beacon */ - ao_rdf_set(1); - /* * Start recording min/max accel and pres for a while * to figure out when the rocket has landed diff --git a/ao_flight_test.c b/ao_flight_test.c index 038c5b2b..f4731aa8 100644 --- a/ao_flight_test.c +++ b/ao_flight_test.c @@ -68,7 +68,6 @@ uint8_t ao_adc_head; #define ao_cmd_register(c) #define ao_usb_disable() #define ao_telemetry_set_interval(x) -#define ao_rdf_set(rdf) enum ao_igniter { ao_igniter_drogue = 0, diff --git a/ao_radio.c b/ao_radio.c index dbef6a18..e090fe74 100644 --- a/ao_radio.c +++ b/ao_radio.c @@ -77,29 +77,6 @@ #define DEVIATION_M 6 #define DEVIATION_E 3 -/* - * For our RDF beacon, set the symbol rate to 2kBaud (for a 1kHz tone), - * so the DRATE_E and DRATE_M values are: - * - * M is 94 and E is 6 - * - * To make the tone last for 200ms, we need 2000 * .2 = 400 bits or 50 bytes - */ - -#define RDF_DRATE_E 6 -#define RDF_DRATE_M 94 -#define RDF_PACKET_LEN 50 - -/* - * RDF deviation should match the normal NFM value of 5kHz - * - * M is 6 and E is 1 - * - */ - -#define RDF_DEVIATION_M 6 -#define RDF_DEVIATION_E 1 - /* This are from the table for 433MHz */ #define RF_POWER_M30_DBM 0x12 @@ -207,28 +184,6 @@ static __code uint8_t radio_setup[] = { RF_IOCFG0_OFF, 0x00, }; -static __code uint8_t rdf_setup[] = { - RF_MDMCFG4_OFF, ((CHANBW_E << RF_MDMCFG4_CHANBW_E_SHIFT) | - (CHANBW_M << RF_MDMCFG4_CHANBW_M_SHIFT) | - (RDF_DRATE_E << RF_MDMCFG4_DRATE_E_SHIFT)), - RF_MDMCFG3_OFF, (RDF_DRATE_M << RF_MDMCFG3_DRATE_M_SHIFT), - RF_MDMCFG2_OFF, (RF_MDMCFG2_DEM_DCFILT_OFF | - RF_MDMCFG2_MOD_FORMAT_GFSK | - RF_MDMCFG2_SYNC_MODE_15_16_THRES), - RF_MDMCFG1_OFF, (RF_MDMCFG1_FEC_DIS | - RF_MDMCFG1_NUM_PREAMBLE_2 | - (2 << RF_MDMCFG1_CHANSPC_E_SHIFT)), - - RF_DEVIATN_OFF, ((RDF_DEVIATION_E << RF_DEVIATN_DEVIATION_E_SHIFT) | - (RDF_DEVIATION_M << RF_DEVIATN_DEVIATION_M_SHIFT)), - - /* packet length */ - RF_PKTLEN_OFF, RDF_PACKET_LEN, - RF_PKTCTRL1_OFF, ((1 << PKTCTRL1_PQT_SHIFT)| - PKTCTRL1_ADR_CHK_NONE), - RF_PKTCTRL0_OFF, (RF_PKTCTRL0_PKT_FORMAT_NORMAL| - RF_PKTCTRL0_LENGTH_CONFIG_FIXED), -}; static __code uint8_t telemetry_setup[] = { RF_MDMCFG4_OFF, ((CHANBW_E << RF_MDMCFG4_CHANBW_E_SHIFT) | @@ -320,50 +275,6 @@ ao_radio_recv(__xdata struct ao_radio_recv *radio) __reentrant ao_mutex_put(&ao_radio_mutex); } -__xdata ao_radio_rdf_running; -__xdata ao_radio_rdf_value = 0x55; - -void -ao_radio_rdf(void) -{ - uint8_t i; - ao_mutex_get(&ao_radio_mutex); - ao_radio_idle(); - ao_radio_rdf_running = 1; - for (i = 0; i < sizeof (rdf_setup); i += 2) - RF[rdf_setup[i]] = rdf_setup[i+1]; - - ao_dma_set_transfer(ao_radio_dma, - &ao_radio_rdf_value, - &RFDXADDR, - RDF_PACKET_LEN, - DMA_CFG0_WORDSIZE_8 | - DMA_CFG0_TMODE_SINGLE | - DMA_CFG0_TRIGGER_RADIO, - DMA_CFG1_SRCINC_0 | - DMA_CFG1_DESTINC_0 | - DMA_CFG1_PRIORITY_HIGH); - ao_dma_start(ao_radio_dma); - RFST = RFST_STX; - - __critical while (!ao_radio_dma_done) - ao_sleep(&ao_radio_dma_done); - ao_radio_rdf_running = 0; - ao_radio_idle(); - for (i = 0; i < sizeof (rdf_setup); i += 2) - RF[telemetry_setup[i]] = telemetry_setup[i+1]; - ao_mutex_put(&ao_radio_mutex); -} - -void -ao_radio_rdf_abort(void) -{ - if (ao_radio_rdf_running) { - ao_dma_abort(ao_radio_dma); - ao_radio_idle(); - } -} - void ao_radio_init(void) { diff --git a/ao_telemetry.c b/ao_telemetry.c index 5cf9ca61..463bcd91 100644 --- a/ao_telemetry.c +++ b/ao_telemetry.c @@ -18,10 +18,6 @@ #include "ao.h" __xdata uint16_t ao_telemetry_interval = 0; -__xdata uint8_t ao_rdf = 0; -__xdata uint16_t ao_rdf_time; - -#define AO_RDF_INTERVAL AO_SEC_TO_TICKS(3) void ao_telemetry(void) @@ -31,7 +27,6 @@ ao_telemetry(void) ao_config_get(); memcpy(telemetry.callsign, ao_config.callsign, AO_MAX_CALLSIGN); telemetry.addr = ao_serial_number; - ao_rdf_time = ao_time(); for (;;) { while (ao_telemetry_interval == 0) ao_sleep(&ao_telemetry_interval); @@ -47,13 +42,6 @@ ao_telemetry(void) ao_mutex_put(&ao_gps_mutex); ao_radio_send(&telemetry); ao_delay(ao_telemetry_interval); - if (ao_rdf && - (int16_t) (ao_time() - ao_rdf_time) >= 0) - { - ao_rdf_time = ao_time() + AO_RDF_INTERVAL; - ao_radio_rdf(); - ao_delay(ao_telemetry_interval); - } } } @@ -64,14 +52,6 @@ ao_telemetry_set_interval(uint16_t interval) ao_wakeup(&ao_telemetry_interval); } -void -ao_rdf_set(uint8_t rdf) -{ - ao_rdf = rdf; - if (rdf == 0) - ao_radio_rdf_abort(); -} - __xdata struct ao_task ao_telemetry_task; void -- 2.30.2