altos: Support 32MHz xtal on cc1200
authorKeith Packard <keithp@keithp.com>
Tue, 19 May 2015 17:17:01 +0000 (10:17 -0700)
committerKeith Packard <keithp@keithp.com>
Tue, 19 May 2015 17:17:01 +0000 (10:17 -0700)
I ended up building some cc1200-based boards with 32MHz xtals, so just
make this an option when building the driver.

Signed-off-by: Keith Packard <keithp@keithp.com>
src/drivers/ao_cc1200.c

index df4bd335a974ba3d6df76143f4faf9b67de14d58..6547be3963d910055a8628aeb11b52b029cbc376 100644 (file)
@@ -41,7 +41,11 @@ int8_t       ao_radio_rssi;                  /* Last received RSSI value */
 
 extern const uint32_t  ao_radio_cal;
 
+#ifdef AO_CC1200_FOSC
+#define FOSC   AO_CC1200_FOSC
+#else
 #define FOSC   40000000
+#endif
 
 #define ao_radio_select()      ao_spi_get_mask(AO_CC1200_SPI_CS_PORT,(1 << AO_CC1200_SPI_CS_PIN),AO_CC1200_SPI_BUS,AO_SPI_SPEED_FAST)
 #define ao_radio_deselect()    ao_spi_put_mask(AO_CC1200_SPI_CS_PORT,(1 << AO_CC1200_SPI_CS_PIN),AO_CC1200_SPI_BUS)
@@ -301,20 +305,28 @@ ao_radio_idle(void)
  *     CHANBW = 5.0 (round to 9.5)
  */
 
+#if FOSC == 40000000
 #define PACKET_SYMBOL_RATE_M           1013008
-
 #define PACKET_SYMBOL_RATE_E_384       8
+#define PACKET_SYMBOL_RATE_E_96                6
+#define PACKET_SYMBOL_RATE_E_24                4
+#endif
+
+#if FOSC == 32000000
+#define PACKET_SYMBOL_RATE_M           239914
+#define PACKET_SYMBOL_RATE_E_384       9
+#define PACKET_SYMBOL_RATE_E_96                7
+#define PACKET_SYMBOL_RATE_E_24                5
+#endif
 
 /* 200 / 2 = 100 */
 #define PACKET_CHAN_BW_384     ((CC1200_CHAN_BW_ADC_CIC_DECFACT_12 << CC1200_CHAN_BW_ADC_CIC_DECFACT) | \
                                 (16 << CC1200_CHAN_BW_BB_CIC_DECFACT))
 
-#define PACKET_SYMBOL_RATE_E_96                6
 /* 200 / 10 = 20 */
 #define PACKET_CHAN_BW_96      ((CC1200_CHAN_BW_ADC_CIC_DECFACT_48 << CC1200_CHAN_BW_ADC_CIC_DECFACT) | \
                                 (16 << CC1200_CHAN_BW_BB_CIC_DECFACT))
 
-#define PACKET_SYMBOL_RATE_E_24                4
 /* 200 / 25 = 8 */
 #define PACKET_CHAN_BW_24      ((CC1200_CHAN_BW_ADC_CIC_DECFACT_48 << CC1200_CHAN_BW_ADC_CIC_DECFACT) | \
                                 (44 << CC1200_CHAN_BW_BB_CIC_DECFACT))