35 #include "cc1200-rf-cfg.h" 36 #include "cc1200-const.h" 50 #define RF_CFG_CHAN_CENTER_F0 863125 52 #define RF_CFG_CHAN_SPACING 200000 54 #define RF_CFG_MIN_CHANNEL 0 56 #define RF_CFG_MAX_CHANNEL 33 58 #define RF_CFG_MAX_TXPOWER CC1200_CONST_TX_POWER_MAX 60 #define RF_CFG_CCA_THRESHOLD (-91) 62 #define RF_CFG_RSSI_OFFSET (-81) 64 static const char rf_cfg_descriptor[] =
"802.15.4g 863-870MHz MR-FSK mode #1";
68 #define CC1200_TSCH_PREAMBLE_LENGTH 800 69 #define CC1200_TSCH_CONF_RX_WAIT 2200 70 #define CC1200_TSCH_CONF_RX_ACK_WAIT 400 72 #define CC1200_TSCH_DEFAULT_TS_CCA_OFFSET 1800 73 #define CC1200_TSCH_DEFAULT_TS_CCA 128 75 #define CC1200_TSCH_DEFAULT_TS_TX_OFFSET 3800 76 #define CC1200_TSCH_DEFAULT_TS_RX_OFFSET (CC1200_TSCH_DEFAULT_TS_TX_OFFSET - CC1200_TSCH_PREAMBLE_LENGTH - (CC1200_TSCH_CONF_RX_WAIT / 2)) 77 #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)) 78 #define CC1200_TSCH_DEFAULT_TS_TX_ACK_DELAY 3000 80 #define CC1200_TSCH_DEFAULT_TS_RX_WAIT (CC1200_TSCH_PREAMBLE_LENGTH + CC1200_TSCH_CONF_RX_WAIT) 81 #define CC1200_TSCH_DEFAULT_TS_ACK_WAIT (CC1200_TSCH_PREAMBLE_LENGTH + CC1200_TSCH_CONF_RX_ACK_WAIT) 82 #define CC1200_TSCH_DEFAULT_TS_RX_TX 192 83 #define CC1200_TSCH_DEFAULT_TS_MAX_ACK 3360 84 #define CC1200_TSCH_DEFAULT_TS_MAX_TX 20800 86 #define CC1200_TSCH_DEFAULT_SLACK_TIME 500 88 #define CC1200_TSCH_DEFAULT_TS_TIMESLOT_LENGTH \ 89 ( CC1200_TSCH_DEFAULT_TS_TX_OFFSET \ 90 + CC1200_TSCH_DEFAULT_TS_MAX_TX \ 91 + CC1200_TSCH_DEFAULT_TS_TX_ACK_DELAY \ 92 + CC1200_TSCH_DEFAULT_TS_MAX_ACK \ 93 + CC1200_TSCH_DEFAULT_SLACK_TIME \ 97 static const uint16_t cc1200_50kbps_tsch_timing[tsch_ts_elements_count] = {
98 CC1200_TSCH_DEFAULT_TS_CCA_OFFSET,
99 CC1200_TSCH_DEFAULT_TS_CCA,
100 CC1200_TSCH_DEFAULT_TS_TX_OFFSET,
101 CC1200_TSCH_DEFAULT_TS_RX_OFFSET,
102 CC1200_TSCH_DEFAULT_TS_RX_ACK_DELAY,
103 CC1200_TSCH_DEFAULT_TS_TX_ACK_DELAY,
104 CC1200_TSCH_DEFAULT_TS_RX_WAIT,
105 CC1200_TSCH_DEFAULT_TS_ACK_WAIT,
106 CC1200_TSCH_DEFAULT_TS_RX_TX,
107 CC1200_TSCH_DEFAULT_TS_MAX_ACK,
108 CC1200_TSCH_DEFAULT_TS_MAX_TX,
109 CC1200_TSCH_DEFAULT_TS_TIMESLOT_LENGTH,
131 static const registerSetting_t preferredSettings[]=
133 {CC1200_IOCFG2, 0x06},
134 {CC1200_SYNC3, 0x6E},
135 {CC1200_SYNC2, 0x4E},
136 {CC1200_SYNC1, 0x90},
137 {CC1200_SYNC0, 0x4E},
138 {CC1200_SYNC_CFG1, 0xE5},
139 {CC1200_SYNC_CFG0, 0x23},
140 {CC1200_DEVIATION_M, 0x47},
141 {CC1200_MODCFG_DEV_E, 0x0B},
142 {CC1200_DCFILT_CFG, 0x56},
157 {CC1200_PREAMBLE_CFG1, 0x19},
159 {CC1200_PREAMBLE_CFG0, 0xBA},
161 {CC1200_CHAN_BW, 0x84},
162 {CC1200_MDMCFG1, 0x42},
163 {CC1200_MDMCFG0, 0x05},
164 {CC1200_SYMBOL_RATE2, 0x94},
165 {CC1200_SYMBOL_RATE1, 0x7A},
166 {CC1200_SYMBOL_RATE0, 0xE1},
167 {CC1200_AGC_REF, 0x27},
168 {CC1200_AGC_CS_THR, 0xF1},
169 {CC1200_AGC_CFG1, 0x11},
170 {CC1200_AGC_CFG0, 0x90},
171 {CC1200_FIFO_CFG, 0x00},
172 {CC1200_FS_CFG, 0x12},
173 {CC1200_PKT_CFG2, 0x24},
174 {CC1200_PKT_CFG0, 0x20},
175 {CC1200_PKT_LEN, 0xFF},
176 {CC1200_IF_MIX_CFG, 0x18},
177 {CC1200_TOC_CFG, 0x03},
178 {CC1200_MDMCFG2, 0x02},
179 {CC1200_FREQ2, 0x56},
180 {CC1200_FREQ1, 0xCC},
181 {CC1200_FREQ0, 0xCC},
182 {CC1200_IF_ADC1, 0xEE},
183 {CC1200_IF_ADC0, 0x10},
184 {CC1200_FS_DIG1, 0x04},
185 {CC1200_FS_DIG0, 0x50},
186 {CC1200_FS_CAL1, 0x40},
187 {CC1200_FS_CAL0, 0x0E},
188 {CC1200_FS_DIVTWO, 0x03},
189 {CC1200_FS_DSM0, 0x33},
190 {CC1200_FS_DVC1, 0xF7},
191 {CC1200_FS_DVC0, 0x0F},
192 {CC1200_FS_PFD, 0x00},
193 {CC1200_FS_PRE, 0x6E},
194 {CC1200_FS_REG_DIV_CML, 0x1C},
195 {CC1200_FS_SPARE, 0xAC},
196 {CC1200_FS_VCO0, 0xB5},
197 {CC1200_IFAMP, 0x05},
198 {CC1200_XOSC5, 0x0E},
199 {CC1200_XOSC1, 0x03},
203 const cc1200_rf_cfg_t cc1200_802154g_863_870_fsk_50kbps = {
204 .cfg_descriptor = rf_cfg_descriptor,
205 .register_settings = preferredSettings,
206 .size_of_register_settings =
sizeof(preferredSettings),
207 .tx_pkt_lifetime = (RTIMER_SECOND / 20),
208 .tx_rx_turnaround = (RTIMER_SECOND / 100),
211 .delay_before_tx = ((
unsigned)US_TO_RTIMERTICKS(800 + 397 + 423)),
212 .delay_before_rx = (
unsigned)US_TO_RTIMERTICKS(400),
213 .delay_before_detect = 0,
214 .chan_center_freq0 = RF_CFG_CHAN_CENTER_F0,
215 .chan_spacing = RF_CFG_CHAN_SPACING,
216 .min_channel = RF_CFG_MIN_CHANNEL,
217 .max_channel = RF_CFG_MAX_CHANNEL,
218 .max_txpower = RF_CFG_MAX_TXPOWER,
219 .cca_threshold = RF_CFG_CCA_THRESHOLD,
220 .rssi_offset = RF_CFG_RSSI_OFFSET,
222 .tsch_timing = cc1200_50kbps_tsch_timing,
Main API declarations for TSCH.