35#include "dev/radio/cc1200/cc1200-rf-cfg.h"
36#include "dev/radio/cc1200/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)
58static 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 \
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,
104static 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},
155const 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),
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,
#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.