Eliminate RDF tone generation.
[fw/altos] / ao_radio.c
index 13362d3e32ca3f09e68ff1f8f0c0691336fe2acb..e090fe74bd4e8c635f879c7670536b41d3050089 100644 (file)
@@ -89,7 +89,7 @@
 #define RF_POWER_7_DBM         0xc8
 #define RF_POWER_10_DBM                0xc0
 
-#define RF_POWER               RF_POWER_0_DBM
+#define RF_POWER               RF_POWER_10_DBM
 
 static __code uint8_t radio_setup[] = {
        RF_PA_TABLE7_OFF,       RF_POWER,
@@ -104,7 +104,7 @@ static __code uint8_t radio_setup[] = {
        RF_FREQ2_OFF,           (FREQ_CONTROL >> 16) & 0xff,
        RF_FREQ1_OFF,           (FREQ_CONTROL >> 8) & 0xff,
        RF_FREQ0_OFF,           (FREQ_CONTROL >> 0) & 0xff,
-       
+
        RF_FSCTRL1_OFF,         (IF_FREQ_CONTROL << RF_FSCTRL1_FREQ_IF_SHIFT),
        RF_FSCTRL0_OFF,         (0 << RF_FSCTRL0_FREQOFF_SHIFT),
 
@@ -148,7 +148,7 @@ static __code uint8_t radio_setup[] = {
        /* default sync values */
        RF_SYNC1_OFF,           0xD3,
        RF_SYNC0_OFF,           0x91,
-       
+
        /* max packet length */
        RF_PKTLEN_OFF,          sizeof (struct ao_telemetry),
 
@@ -184,6 +184,33 @@ static __code uint8_t radio_setup[] = {
        RF_IOCFG0_OFF,          0x00,
 };
 
+
+static __code uint8_t telemetry_setup[] = {
+       RF_MDMCFG4_OFF,         ((CHANBW_E << RF_MDMCFG4_CHANBW_E_SHIFT) |
+                                (CHANBW_M << RF_MDMCFG4_CHANBW_M_SHIFT) |
+                                (DRATE_E << RF_MDMCFG4_DRATE_E_SHIFT)),
+       RF_MDMCFG3_OFF,         (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_EN |
+                                RF_MDMCFG1_NUM_PREAMBLE_4 |
+                                (2 << RF_MDMCFG1_CHANSPC_E_SHIFT)),
+
+       RF_DEVIATN_OFF,         ((DEVIATION_E << RF_DEVIATN_DEVIATION_E_SHIFT) |
+                                (DEVIATION_M << RF_DEVIATN_DEVIATION_M_SHIFT)),
+
+       /* max packet length */
+       RF_PKTLEN_OFF,          sizeof (struct ao_telemetry),
+       RF_PKTCTRL1_OFF,        ((1 << PKTCTRL1_PQT_SHIFT)|
+                                PKTCTRL1_APPEND_STATUS|
+                                PKTCTRL1_ADR_CHK_NONE),
+       RF_PKTCTRL0_OFF,        (RF_PKTCTRL0_WHITE_DATA|
+                                RF_PKTCTRL0_PKT_FORMAT_NORMAL|
+                                RF_PKTCTRL0_CRC_EN|
+                                RF_PKTCTRL0_LENGTH_CONFIG_FIXED),
+};
+
 __xdata uint8_t        ao_radio_dma;
 __xdata uint8_t ao_radio_dma_done;
 __xdata uint8_t ao_radio_mutex;
@@ -203,8 +230,10 @@ ao_radio_idle(void)
 void
 ao_radio_send(__xdata struct ao_telemetry *telemetry) __reentrant
 {
+       ao_config_get();
        ao_mutex_get(&ao_radio_mutex);
        ao_radio_idle();
+       RF_CHANNR = ao_config.radio_channel;
        ao_dma_set_transfer(ao_radio_dma,
                            telemetry,
                            &RFDXADDR,
@@ -225,8 +254,10 @@ ao_radio_send(__xdata struct ao_telemetry *telemetry) __reentrant
 void
 ao_radio_recv(__xdata struct ao_radio_recv *radio) __reentrant
 {
+       ao_config_get();
        ao_mutex_get(&ao_radio_mutex);
        ao_radio_idle();
+       RF_CHANNR = ao_config.radio_channel;
        ao_dma_set_transfer(ao_radio_dma,
                            &RFDXADDR,
                            radio,