X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=src%2Fdrivers%2Fao_cc115l.c;h=56afc3c75229c98aed314f1a92eca82ae4b6ed69;hp=9a4908b501d0030b7f9a2fd169a2bf7bb51d72a3;hb=d95a2c5d1ddce913dcb1d1ab5dc59f6a588ab599;hpb=a0628541e1bfc3e4a122cc824188ed53fddf733e diff --git a/src/drivers/ao_cc115l.c b/src/drivers/ao_cc115l.c index 9a4908b5..56afc3c7 100644 --- a/src/drivers/ao_cc115l.c +++ b/src/drivers/ao_cc115l.c @@ -23,7 +23,7 @@ #define AO_RADIO_MAX_SEND sizeof (struct ao_telemetry_generic) -static uint8_t ao_radio_mutex; +uint8_t ao_radio_mutex; static uint8_t ao_radio_fifo; /* fifo drained interrupt received */ static uint8_t ao_radio_done; /* tx done interrupt received */ @@ -328,11 +328,13 @@ static const uint16_t rdf_setup[] = { }; /* - * APRS deviation is the same as RDF + * APRS deviation is 3kHz + * + * 26e6 / (2 ** 17) * (8 + 7) * (2 ** 0) = 2975 */ -#define APRS_DEV_E RDF_DEV_E -#define APRS_DEV_M RDF_DEV_M +#define APRS_DEV_E 0 +#define APRS_DEV_M 7 /* * For our APRS beacon, set the symbol rate to 9.6kBaud (8x oversampling for 1200 baud data rate) @@ -442,15 +444,10 @@ static const uint16_t radio_setup[] = { AO_CC115L_DONE_INT_GPIO_IOCFG, CC115L_IOCFG_GPIO_CFG_PA_PD | (1 << CC115L_IOCFG_GPIO_INV), CC115L_FIFOTHR, 0x47, /* TX FIFO Thresholds */ - CC115L_FREQ2, 0x10, /* Frequency Control Word, High Byte */ - CC115L_FREQ1, 0xb6, /* Frequency Control Word, Middle Byte */ - CC115L_FREQ0, 0xa5, /* Frequency Control Word, Low Byte */ - CC115L_MDMCFG2, 0x13, /* Modem Configuration */ CC115L_MDMCFG1, (0x00 | (CC115L_MDMCFG1_NUM_PREAMBLE_4 << CC115L_MDMCFG1_NUM_PREAMBLE) | (1 << CC115L_MDMCFG1_CHANSPC_E)), CC115L_MDMCFG0, 248, /* Channel spacing M value (100kHz channels) */ - CC115L_DEVIATN, 0x35, /* Modem Deviation Setting */ CC115L_MCSM0, 0x38, /* Main Radio Control State Machine Configuration */ CC115L_RESERVED_0X20, 0xfb, /* Use setting from SmartRF Studio */ CC115L_FSCAL3, 0xe9, /* Frequency Synthesizer Calibration */ @@ -460,7 +457,6 @@ static const uint16_t radio_setup[] = { CC115L_TEST2, 0x81, /* Various Test Settings */ CC115L_TEST1, 0x35, /* Various Test Settings */ CC115L_TEST0, 0x09, /* Various Test Settings */ - CC115L_PA, 0x00, /* Power setting (as low as possible) */ }; static uint8_t ao_radio_configured = 0; @@ -638,7 +634,7 @@ ao_radio_test_cmd(void) #endif ao_radio_get(); ao_radio_set_len(0xff); - ao_radio_set_mode(AO_RADIO_MODE_PACKET_TX | AO_RADIO_MODE_BITS_FIXED); + ao_radio_set_mode(AO_RADIO_MODE_RDF|AO_RADIO_MODE_BITS_FIXED); ao_radio_strobe(CC115L_SFTX); ao_radio_pa_on(); ao_radio_strobe(CC115L_STX); @@ -659,12 +655,14 @@ ao_radio_test_cmd(void) } } +#if CC115L_TRACE static inline int16_t ao_radio_gpio_bits(void) { return AO_CC115L_DONE_INT_PORT->idr & ((1 << AO_CC115L_FIFO_INT_PIN) | (1 << AO_CC115L_DONE_INT_PIN)); } +#endif static void ao_radio_wait_fifo(void)