*
* 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 511705
+#define RDF_DRATE_E 5
+#define RDF_DRATE_M 25166
#define RDF_PACKET_LEN 50
static const uint16_t rdf_setup[] = {
(CC1120_PKT_CFG1_ADDR_CHECK_CFG_NONE << CC1120_PKT_CFG1_ADDR_CHECK_CFG) |
(CC1120_PKT_CFG1_CRC_CFG_DISABLED << CC1120_PKT_CFG1_CRC_CFG) |
(0 << CC1120_PKT_CFG1_APPEND_STATUS)),
+ CC1120_PKT_CFG0, ((0 << CC1120_PKT_CFG0_RESERVED7) |
+ (CC1120_PKT_CFG0_LENGTH_CONFIG_FIXED << CC1120_PKT_CFG0_LENGTH_CONFIG) |
+ (0 << CC1120_PKT_CFG0_PKG_BIT_LEN) |
+ (0 << CC1120_PKT_CFG0_UART_MODE_EN) |
+ (0 << CC1120_PKT_CFG0_UART_SWAP_EN)),
};
#define int_pin(w) printf("\t%s: %d\n", \
{ ao_radio_test, "C <1 start, 0 stop, none both>\0Radio carrier test" },
#if CC1120_DEBUG
{ ao_radio_show, "R\0Show CC1120 status" },
- { ao_radio_beep, "B\0Emit an RDF beacon" },
+ { ao_radio_beep, "b\0Emit an RDF beacon" },
#endif
{ 0, NULL }
};
void
ao_radio_init(void)
{
+ int i;
+
ao_radio_configured = 0;
ao_spi_init_cs (AO_CC1120_SPI_CS_PORT, (1 << AO_CC1120_SPI_CS_PIN));
+ AO_CC1120_SPI_CS_PORT.bsrr = ((uint32_t) (1 << AO_CC1120_SPI_CS_PIN));
+ for (i = 0; i < 10000; i++) {
+ if ((SPI_2_GPIO.idr & (1 << SPI_2_MISO)) == 0)
+ break;
+ }
+ AO_CC1120_SPI_CS_PORT.bsrr = (1 << AO_CC1120_SPI_CS_PIN);
+ if (i == 10000)
+ ao_panic(AO_PANIC_SELF_TEST);
ao_cmd_register(&ao_radio_cmds[0]);
}