35#include "dev/radio/cc1200/cc1200-rf-cfg.h"
36#include "dev/radio/cc1200/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)
64static 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 \
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,
131static 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},
203const 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),
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,
#define RTIMER_SECOND
Number of rtimer ticks for 1 second.
uint16_t tsch_timeslot_timing_usec[tsch_ts_elements_count]
TSCH timeslot timing elements in micro-seconds.
Main API declarations for TSCH.