diff options
Diffstat (limited to 'src/drivers/ao_cc1120_CC1120.h')
-rw-r--r-- | src/drivers/ao_cc1120_CC1120.h | 43 |
1 files changed, 36 insertions, 7 deletions
diff --git a/src/drivers/ao_cc1120_CC1120.h b/src/drivers/ao_cc1120_CC1120.h index 44cca938..399abc4d 100644 --- a/src/drivers/ao_cc1120_CC1120.h +++ b/src/drivers/ao_cc1120_CC1120.h @@ -21,6 +21,10 @@ *
***************************************************************/
+#ifndef AO_CC1120_AGC_GAIN_ADJUST
+#define AO_CC1120_AGC_GAIN_ADJUST -80
+#endif
+
CC1120_SYNC3, 0xD3, /* Sync Word Configuration [31:24] */
CC1120_SYNC2, 0x91, /* Sync Word Configuration [23:16] */
CC1120_SYNC1, 0xD3, /* Sync Word Configuration [15:8] */
@@ -53,24 +57,49 @@ (0 << CC1120_MDMCFG1_SINGLE_ADC_EN),
CC1120_MDMCFG0, 0x05, /* General Modem Parameter Configuration */
- CC1120_AGC_REF, 0x20, /* AGC Reference Level Configuration */
- CC1120_AGC_CS_THR, 0x19, /* Carrier Sense Threshold Configuration */
- CC1120_AGC_GAIN_ADJUST, 0x00, /* RSSI Offset Configuration */
- CC1120_AGC_CFG3, 0x91, /* AGC Configuration */
- CC1120_AGC_CFG2, 0x20, /* AGC Configuration */
- CC1120_AGC_CFG1, 0xa9, /* AGC Configuration */
- CC1120_AGC_CFG0, 0xcf, /* AGC Configuration */
+ /* AGC reference = 10 * log10(receive BW) - 4 = 10 * log10(100e3) - 4 = 46 */
+ CC1120_AGC_REF, 46, /* AGC Reference Level Configuration */
+
+ /* Carrier sense threshold - 25dB above the noise */
+ CC1120_AGC_CS_THR, 25, /* Carrier Sense Threshold Configuration */
+ CC1120_AGC_GAIN_ADJUST, /* RSSI Offset Configuration */
+ AO_CC1120_AGC_GAIN_ADJUST,
+
+ CC1120_AGC_CFG3, /* AGC Configuration */
+ (1 << CC1120_AGC_CFG3_RSSI_STEP_THR) |
+ (17 << CC1120_AGC_CFG3_AGC_MIN_GAIN),
+
+ CC1120_AGC_CFG2, /* AGC Configuration */
+ (0 << CC1120_AGC_CFG2_START_PREVIOUS_GAIN_EN) |
+ (CC1120_AGC_CFG2_FE_PERFORMANCE_MODE_NORMAL << CC1120_AGC_CFG2_FE_PERFORMANCE_MODE) |
+ (0 << CC1120_AGC_CFG2_AGC_MAX_GAIN),
+
+ CC1120_AGC_CFG1, /* AGC Configuration */
+ (CC1120_AGC_CFG1_AGC_SYNC_BEHAVIOR_UPDATE_AGC_UPDATE_RSSI_SLOW << CC1120_AGC_CFG1_AGC_SYNC_BEHAVIOR) |
+ (CC1120_AGC_CFG1_AGC_WIN_SIZE_32 << CC1120_AGC_CFG1_AGC_WIN_SIZE) |
+ (CC1120_AGC_CFG1_AGC_SETTLE_WAIT_32 << CC1120_AGC_CFG1_AGC_SETTLE_WAIT),
+
+ CC1120_AGC_CFG0, /* AGC Configuration */
+ (CC1120_AGC_CFG0_AGC_HYST_LEVEL_10 << CC1120_AGC_CFG0_AGC_HYST_LEVEL) |
+ (CC1120_AGC_CFG0_AGC_SLEWRATE_LIMIT_60 << CC1120_AGC_CFG0_AGC_SLEWRATE_LIMIT) |
+ (CC1120_AGC_CFG0_RSSI_VALID_CNT_9 << CC1120_AGC_CFG0_RSSI_VALID_CNT) |
+ (CC1120_AGC_CFG0_AGC_ASK_DECAY_1_128 << CC1120_AGC_CFG0_AGC_ASK_DECAY),
+
CC1120_FIFO_CFG, /* FIFO Configuration */
(0 << CC1120_FIFO_CFG_CRC_AUTOFLUSH) |
(0x40 << CC1120_FIFO_CFG_FIFO_THR),
+
CC1120_DEV_ADDR, 0x00, /* Device Address Configuration */
+
CC1120_SETTLING_CFG, /* Frequency Synthesizer Calibration and Settling Configuration */
(CC1120_SETTLING_CFG_FS_AUTOCAL_IDLE_TO_ON << CC1120_SETTLING_CFG_FS_AUTOCAL) |
(CC1120_SETTLING_CFG_LOCK_TIME_50_20 << CC1120_SETTLING_CFG_LOCK_TIME) |
(CC1120_SETTLING_CFG_FSREG_TIME_60 << CC1120_SETTLING_CFG_FSREG_TIME),
+
CC1120_FS_CFG, /* Frequency Synthesizer Configuration */
(1 << CC1120_FS_CFG_LOCK_EN) |
(CC1120_FS_CFG_FSD_BANDSELECT_410_480 << CC1120_FS_CFG_FSD_BANDSELECT),
+
CC1120_WOR_CFG1, 0x08, /* eWOR Configuration, Reg 1 */
CC1120_WOR_CFG0, 0x21, /* eWOR Configuration, Reg 0 */
CC1120_WOR_EVENT0_MSB, 0x00, /* Event 0 Configuration */
|