35 #include "cc1200-rf-cfg.h" 36 #include "cc1200-const.h" 44 #define RF_CFG_CHAN_CENTER_F0 863125 46 #define RF_CFG_CHAN_SPACING 1666667 48 #define RF_CFG_MIN_CHANNEL 0 50 #define RF_CFG_MAX_CHANNEL 3 52 #define RF_CFG_MAX_TXPOWER CC1200_CONST_TX_POWER_MAX 54 #define RF_CFG_CCA_THRESHOLD (-91) 56 #define RF_CFG_RSSI_OFFSET (-81) 58 static const char rf_cfg_descriptor[] =
"868MHz 2-GFSK 1000 kbps";
62 #define CC1200_TSCH_PREAMBLE_LENGTH 800 63 #define CC1200_TSCH_CONF_RX_WAIT 2200 64 #define CC1200_TSCH_CONF_RX_ACK_WAIT 400 66 #define CC1200_TSCH_DEFAULT_TS_CCA_OFFSET 1800 67 #define CC1200_TSCH_DEFAULT_TS_CCA 128 68 #define CC1200_TSCH_DEFAULT_TS_TX_OFFSET 2200 69 #define CC1200_TSCH_DEFAULT_TS_RX_OFFSET (CC1200_TSCH_DEFAULT_TS_TX_OFFSET - CC1200_TSCH_PREAMBLE_LENGTH - (CC1200_TSCH_CONF_RX_WAIT / 2)) 70 #define CC1200_TSCH_DEFAULT_TS_RX_ACK_DELAY (CC1200_TSCH_DEFAULT_TS_TX_ACK_DELAY - CC1200_TSCH_PREAMBLE_LENGTH - (CC1200_TSCH_CONF_RX_ACK_WAIT / 2)) 71 #define CC1200_TSCH_DEFAULT_TS_TX_ACK_DELAY 1900 72 #define CC1200_TSCH_DEFAULT_TS_RX_WAIT (CC1200_TSCH_PREAMBLE_LENGTH + CC1200_TSCH_CONF_RX_WAIT) 73 #define CC1200_TSCH_DEFAULT_TS_ACK_WAIT (CC1200_TSCH_PREAMBLE_LENGTH + CC1200_TSCH_CONF_RX_ACK_WAIT) 74 #define CC1200_TSCH_DEFAULT_TS_RX_TX 192 75 #define CC1200_TSCH_DEFAULT_TS_MAX_ACK 168 76 #define CC1200_TSCH_DEFAULT_TS_MAX_TX 1040 78 #define CC1200_TSCH_DEFAULT_SLACK_TIME 500 80 #define CC1200_TSCH_DEFAULT_TS_TIMESLOT_LENGTH \ 81 ( CC1200_TSCH_DEFAULT_TS_TX_OFFSET \ 82 + CC1200_TSCH_DEFAULT_TS_MAX_TX \ 83 + CC1200_TSCH_DEFAULT_TS_TX_ACK_DELAY \ 84 + CC1200_TSCH_DEFAULT_TS_MAX_ACK \ 85 + CC1200_TSCH_DEFAULT_SLACK_TIME \ 89 static const uint16_t cc1200_1000kbps_tsch_timing[tsch_ts_elements_count] = {
90 CC1200_TSCH_DEFAULT_TS_CCA_OFFSET,
91 CC1200_TSCH_DEFAULT_TS_CCA,
92 CC1200_TSCH_DEFAULT_TS_TX_OFFSET,
93 CC1200_TSCH_DEFAULT_TS_RX_OFFSET,
94 CC1200_TSCH_DEFAULT_TS_RX_ACK_DELAY,
95 CC1200_TSCH_DEFAULT_TS_TX_ACK_DELAY,
96 CC1200_TSCH_DEFAULT_TS_RX_WAIT,
97 CC1200_TSCH_DEFAULT_TS_ACK_WAIT,
98 CC1200_TSCH_DEFAULT_TS_RX_TX,
99 CC1200_TSCH_DEFAULT_TS_MAX_ACK,
100 CC1200_TSCH_DEFAULT_TS_MAX_TX,
101 CC1200_TSCH_DEFAULT_TS_TIMESLOT_LENGTH,
104 static const registerSetting_t preferredSettings[]=
106 {CC1200_IOCFG2, 0x06},
107 {CC1200_SYNC_CFG1, 0xA8},
108 {CC1200_DEVIATION_M, 0x47},
109 {CC1200_MODCFG_DEV_E, 0x2F},
110 {CC1200_DCFILT_CFG, 0x1E},
111 {CC1200_PREAMBLE_CFG0, 0x8A},
113 {CC1200_CHAN_BW, 0x01},
114 {CC1200_MDMCFG1, 0x42},
115 {CC1200_MDMCFG0, 0x05},
116 {CC1200_SYMBOL_RATE2, 0xC9},
117 {CC1200_SYMBOL_RATE1, 0x99},
118 {CC1200_SYMBOL_RATE0, 0x99},
119 {CC1200_AGC_REF, 0x2F},
120 {CC1200_AGC_CS_THR, 0xF8},
121 {CC1200_AGC_CFG2, 0x60},
122 {CC1200_AGC_CFG1, 0x12},
123 {CC1200_AGC_CFG0, 0x84},
124 {CC1200_FIFO_CFG, 0x00},
125 {CC1200_FS_CFG, 0x12},
126 {CC1200_PKT_CFG2, 0x00},
127 {CC1200_PKT_CFG0, 0x20},
128 {CC1200_PKT_LEN, 0xFF},
129 {CC1200_FREQOFF_CFG, 0x23},
130 {CC1200_MDMCFG2, 0x00},
131 {CC1200_FREQ2, 0x56},
132 {CC1200_FREQ1, 0xCC},
133 {CC1200_FREQ0, 0xCC},
134 {CC1200_IF_ADC1, 0xEE},
135 {CC1200_IF_ADC0, 0x10},
136 {CC1200_FS_DIG1, 0x04},
137 {CC1200_FS_DIG0, 0xA3},
138 {CC1200_FS_CAL1, 0x40},
139 {CC1200_FS_CAL0, 0x0E},
140 {CC1200_FS_DIVTWO, 0x03},
141 {CC1200_FS_DSM0, 0x33},
142 {CC1200_FS_DVC1, 0xF7},
143 {CC1200_FS_DVC0, 0x0F},
144 {CC1200_FS_PFD, 0x00},
145 {CC1200_FS_PRE, 0x6E},
146 {CC1200_FS_REG_DIV_CML, 0x1C},
147 {CC1200_FS_SPARE, 0xAC},
148 {CC1200_FS_VCO0, 0xB5},
149 {CC1200_IFAMP, 0x0D},
150 {CC1200_XOSC5, 0x0E},
151 {CC1200_XOSC1, 0x03},
155 const cc1200_rf_cfg_t cc1200_868_4gfsk_1000kbps = {
156 .cfg_descriptor = rf_cfg_descriptor,
157 .register_settings = preferredSettings,
158 .size_of_register_settings =
sizeof(preferredSettings),
159 .tx_pkt_lifetime = (RTIMER_SECOND),
160 .tx_rx_turnaround = (RTIMER_SECOND / 100),
163 .delay_before_tx = ((
unsigned)US_TO_RTIMERTICKS(40 + 397 + 207)),
164 .delay_before_rx = (
unsigned)US_TO_RTIMERTICKS(400),
165 .delay_before_detect = 0,
166 .chan_center_freq0 = RF_CFG_CHAN_CENTER_F0,
167 .chan_spacing = RF_CFG_CHAN_SPACING,
168 .min_channel = RF_CFG_MIN_CHANNEL,
169 .max_channel = RF_CFG_MAX_CHANNEL,
170 .max_txpower = RF_CFG_MAX_TXPOWER,
171 .cca_threshold = RF_CFG_CCA_THRESHOLD,
172 .rssi_offset = RF_CFG_RSSI_OFFSET,
174 .tsch_timing = cc1200_1000kbps_tsch_timing,
Main API declarations for TSCH.