Appiko
cc112x_def.h
1 /******************************************************************************
2  * Filename: cc112x_def.h
3  *
4  * Description: This file contains definitions specific to the CC1101.
5  * The configuration registers, strobe commands, and status
6  * registers are defined, as well as some common masks for
7  * these registers.
8  *
9  * Copyright (C) 2013 Texas Instruments Incorporated - http://www.ti.com/
10  *
11  *
12  * Redistribution and use in source and binary forms, with or without
13  * modification, are permitted provided that the following conditions
14  * are met:
15  *
16  * Redistributions of source code must retain the above copyright
17  * notice, this list of conditions and the following disclaimer.
18  *
19  * Redistributions in binary form must reproduce the above copyright
20  * notice, this list of conditions and the following disclaimer in the
21  * documentation and/or other materials provided with the distribution.
22  *
23  * Neither the name of Texas Instruments Incorporated nor the names of
24  * its contributors may be used to endorse or promote products derived
25  * from this software without specific prior written permission.
26  *
27  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
28  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
29  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
30  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
31  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
32  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
33  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
34  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
35  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
36  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
37  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
38  *
39  *******************************************************************************/
40 //
41 // Rf settings for CC1120
42 //
43 #define IOCFG3 0x0000 //GPIO3 IO Pin Configuration
44 #define IOCFG2 0x0001 //GPIO2 IO Pin Configuration
45 #define IOCFG1 0x0002 //GPIO1 IO Pin Configuration
46 #define IOCFG0 0x0003 //GPIO0 IO Pin Configuration
47 #define SYNC3 0x0004 //Sync Word Configuration [31:24]
48 #define SYNC2 0x0005 //Sync Word Configuration [23:16]
49 #define SYNC1 0x0006 //Sync Word Configuration [15:8]
50 #define SYNC0 0x0007 //Sync Word Configuration [7:0]
51 #define SYNC_CFG1 0x0008 //Sync Word Detection Configuration Reg. 1
52 #define SYNC_CFG0 0x0009 //Sync Word Length Configuration Reg. 0
53 #define DEVIATION_M 0x000A //Frequency Deviation Configuration
54 #define MODCFG_DEV_E 0x000B //Modulation Format and Frequency Deviation Configur..
55 #define DCFILT_CFG 0x000C //Digital DC Removal Configuration
56 #define PREAMBLE_CFG1 0x000D //Preamble Length Configuration Reg. 1
57 #define PREAMBLE_CFG0 0x000E //Preamble Detection Configuration Reg. 0
58 #define FREQ_IF_CFG 0x000F //RX Mixer Frequency Configuration
59 #define IQIC 0x0010 //Digital Image Channel Compensation Configuration
60 #define CHAN_BW 0x0011 //Channel Filter Configuration
61 #define MDMCFG1 0x0012 //General Modem Parameter Configuration Reg. 1
62 #define MDMCFG0 0x0013 //General Modem Parameter Configuration Reg. 0
63 #define SYMBOL_RATE2 0x0014 //Symbol Rate Configuration Exponent and Mantissa [1..
64 #define SYMBOL_RATE1 0x0015 //Symbol Rate Configuration Mantissa [15:8]
65 #define SYMBOL_RATE0 0x0016 //Symbol Rate Configuration Mantissa [7:0]
66 #define AGC_REF 0x0017 //AGC Reference Level Configuration
67 #define AGC_CS_THR 0x0018 //Carrier Sense Threshold Configuration
68 #define AGC_GAIN_ADJUST 0x0019 //RSSI Offset Configuration
69 #define AGC_CFG3 0x001A //Automatic Gain Control Configuration Reg. 3
70 #define AGC_CFG2 0x001B //Automatic Gain Control Configuration Reg. 2
71 #define AGC_CFG1 0x001C //Automatic Gain Control Configuration Reg. 1
72 #define AGC_CFG0 0x001D //Automatic Gain Control Configuration Reg. 0
73 #define FIFO_CFG 0x001E //FIFO Configuration
74 #define DEV_ADDR 0x001F //Device Address Configuration
75 #define SETTLING_CFG 0x0020 //Frequency Synthesizer Calibration and Settling Con..
76 #define FS_CFG 0x0021 //Frequency Synthesizer Configuration
77 #define WOR_CFG1 0x0022 //eWOR Configuration Reg. 1
78 #define WOR_CFG0 0x0023 //eWOR Configuration Reg. 0
79 #define WOR_EVENT0_MSB 0x0024 //Event 0 Configuration MSB
80 #define WOR_EVENT0_LSB 0x0025 //Event 0 Configuration LSB
81 #define PKT_CFG2 0x0026 //Packet Configuration Reg. 2
82 #define PKT_CFG1 0x0027 //Packet Configuration Reg. 1
83 #define PKT_CFG0 0x0028 //Packet Configuration Reg. 0
84 #define RFEND_CFG1 0x0029 //RFEND Configuration Reg. 1
85 #define RFEND_CFG0 0x002A //RFEND Configuration Reg. 0
86 #define PA_CFG2 0x002B //Power Amplifier Configuration Reg. 2
87 #define PA_CFG1 0x002C //Power Amplifier Configuration Reg. 1
88 #define PA_CFG0 0x002D //Power Amplifier Configuration Reg. 0
89 #define PKT_LEN 0x002E //Packet Length Configuration
90 #define IF_MIX_CFG 0x2F00 //IF Mix Configuration
91 #define FREQOFF_CFG 0x2F01 //Frequency Offset Correction Configuration
92 #define TOC_CFG 0x2F02 //Timing Offset Correction Configuration
93 #define MARC_SPARE 0x2F03 //MARC Spare
94 #define ECG_CFG 0x2F04 //External Clock Frequency Configuration
95 #define CFM_DATA_CFG 0x2F05 //Custom frequency modulation enable
96 #define EXT_CTRL 0x2F06 //External Control Configuration
97 #define RCCAL_FINE 0x2F07 //RC Oscillator Calibration Fine
98 #define RCCAL_COARSE 0x2F08 //RC Oscillator Calibration Coarse
99 #define RCCAL_OFFSET 0x2F09 //RC Oscillator Calibration Clock Offset
100 #define FREQOFF1 0x2F0A //Frequency Offset MSB
101 #define FREQOFF0 0x2F0B //Frequency Offset LSB
102 #define FREQ2 0x2F0C //Frequency Configuration [23:16]
103 #define FREQ1 0x2F0D //Frequency Configuration [15:8]
104 #define FREQ0 0x2F0E //Frequency Configuration [7:0]
105 #define IF_ADC2 0x2F0F //Analog to Digital Converter Configuration Reg. 2
106 #define IF_ADC1 0x2F10 //Analog to Digital Converter Configuration Reg. 1
107 #define IF_ADC0 0x2F11 //Analog to Digital Converter Configuration Reg. 0
108 #define FS_DIG1 0x2F12 //Frequency Synthesizer Digital Reg. 1
109 #define FS_DIG0 0x2F13 //Frequency Synthesizer Digital Reg. 0
110 #define FS_CAL3 0x2F14 //Frequency Synthesizer Calibration Reg. 3
111 #define FS_CAL2 0x2F15 //Frequency Synthesizer Calibration Reg. 2
112 #define FS_CAL1 0x2F16 //Frequency Synthesizer Calibration Reg. 1
113 #define FS_CAL0 0x2F17 //Frequency Synthesizer Calibration Reg. 0
114 #define FS_CHP 0x2F18 //Frequency Synthesizer Charge Pump Configuration
115 #define FS_DIVTWO 0x2F19 //Frequency Synthesizer Divide by 2
116 #define FS_DSM1 0x2F1A //FS Digital Synthesizer Module Configuration Reg. 1
117 #define FS_DSM0 0x2F1B //FS Digital Synthesizer Module Configuration Reg. 0
118 #define FS_DVC1 0x2F1C //Frequency Synthesizer Divider Chain Configuration ..
119 #define FS_DVC0 0x2F1D //Frequency Synthesizer Divider Chain Configuration ..
120 #define FS_LBI 0x2F1E //Frequency Synthesizer Local Bias Configuration
121 #define FS_PFD 0x2F1F //Frequency Synthesizer Phase Frequency Detector Con..
122 #define FS_PRE 0x2F20 //Frequency Synthesizer Prescaler Configuration
123 #define FS_REG_DIV_CML 0x2F21 //Frequency Synthesizer Divider Regulator Configurat..
124 #define FS_SPARE 0x2F22 //Frequency Synthesizer Spare
125 #define FS_VCO4 0x2F23 //FS Voltage Controlled Oscillator Configuration Reg..
126 #define FS_VCO3 0x2F24 //FS Voltage Controlled Oscillator Configuration Reg..
127 #define FS_VCO2 0x2F25 //FS Voltage Controlled Oscillator Configuration Reg..
128 #define FS_VCO1 0x2F26 //FS Voltage Controlled Oscillator Configuration Reg..
129 #define FS_VCO0 0x2F27 //FS Voltage Controlled Oscillator Configuration Reg..
130 #define GBIAS6 0x2F28 //Global Bias Configuration Reg. 6
131 #define GBIAS5 0x2F29 //Global Bias Configuration Reg. 5
132 #define GBIAS4 0x2F2A //Global Bias Configuration Reg. 4
133 #define GBIAS3 0x2F2B //Global Bias Configuration Reg. 3
134 #define GBIAS2 0x2F2C //Global Bias Configuration Reg. 2
135 #define GBIAS1 0x2F2D //Global Bias Configuration Reg. 1
136 #define GBIAS0 0x2F2E //Global Bias Configuration Reg. 0
137 #define IFAMP 0x2F2F //Intermediate Frequency Amplifier Configuration
138 #define LNA 0x2F30 //Low Noise Amplifier Configuration
139 #define RXMIX 0x2F31 //RX Mixer Configuration
140 #define XOSC5 0x2F32 //Crystal Oscillator Configuration Reg. 5
141 #define XOSC4 0x2F33 //Crystal Oscillator Configuration Reg. 4
142 #define XOSC3 0x2F34 //Crystal Oscillator Configuration Reg. 3
143 #define XOSC2 0x2F35 //Crystal Oscillator Configuration Reg. 2
144 #define XOSC1 0x2F36 //Crystal Oscillator Configuration Reg. 1
145 #define XOSC0 0x2F37 //Crystal Oscillator Configuration Reg. 0
146 #define ANALOG_SPARE 0x2F38 //Analog Spare
147 #define PA_CFG3 0x2F39 //Power Amplifier Configuration Reg. 3
148 #define WOR_TIME1 0x2F64 //eWOR Timer Counter Value MSB
149 #define WOR_TIME0 0x2F65 //eWOR Timer Counter Value LSB
150 #define WOR_CAPTURE1 0x2F66 //eWOR Timer Capture Value MSB
151 #define WOR_CAPTURE0 0x2F67 //eWOR Timer Capture Value LSB
152 #define BIST 0x2F68 //MARC Built-In Self-Test
153 #define DCFILTOFFSET_I1 0x2F69 //DC Filter Offset I MSB
154 #define DCFILTOFFSET_I0 0x2F6A //DC Filter Offset I LSB
155 #define DCFILTOFFSET_Q1 0x2F6B //DC Filter Offset Q MSB
156 #define DCFILTOFFSET_Q0 0x2F6C //DC Filter Offset Q LSB
157 #define IQIE_I1 0x2F6D //IQ Imbalance Value I MSB
158 #define IQIE_I0 0x2F6E //IQ Imbalance Value I LSB
159 #define IQIE_Q1 0x2F6F //IQ Imbalance Value Q MSB
160 #define IQIE_Q0 0x2F70 //IQ Imbalance Value Q LSB
161 #define RSSI1 0x2F71 //Received Signal Strength Indicator Reg. 1
162 #define RSSI0 0x2F72 //Received Signal Strength Indicator Reg.0
163 #define MARCSTATE 0x2F73 //MARC State
164 #define LQI_VAL 0x2F74 //Link Quality Indicator Value
165 #define PQT_SYNC_ERR 0x2F75 //Preamble and Sync Word Error
166 #define DEM_STATUS 0x2F76 //Demodulator Status
167 #define FREQOFF_EST1 0x2F77 //Frequency Offset Estimate MSB
168 #define FREQOFF_EST0 0x2F78 //Frequency Offset Estimate LSB
169 #define AGC_GAIN3 0x2F79 //Automatic Gain Control Reg. 3
170 #define AGC_GAIN2 0x2F7A //Automatic Gain Control Reg. 2
171 #define AGC_GAIN1 0x2F7B //Automatic Gain Control Reg. 1
172 #define AGC_GAIN0 0x2F7C //Automatic Gain Control Reg. 0
173 #define CFM_RX_DATA_OUT 0x2F7D //Custom Frequency Modulation RX Data
174 #define CFM_TX_DATA_IN 0x2F7E //Custom Frequency Modulation TX Data
175 #define ASK_SOFT_RX_DATA 0x2F7F //ASK Soft Decision Output
176 #define RNDGEN 0x2F80 //Random Number Generator Value
177 #define MAGN2 0x2F81 //Signal Magnitude after CORDIC [16]
178 #define MAGN1 0x2F82 //Signal Magnitude after CORDIC [15:8]
179 #define MAGN0 0x2F83 //Signal Magnitude after CORDIC [7:0]
180 #define ANG1 0x2F84 //Signal Angular after CORDIC [9:8]
181 #define ANG0 0x2F85 //Signal Angular after CORDIC [7:0]
182 #define CHFILT_I2 0x2F86 //Channel Filter Data Real Part [18:16]
183 #define CHFILT_I1 0x2F87 //Channel Filter Data Real Part [15:8]
184 #define CHFILT_I0 0x2F88 //Channel Filter Data Real Part [7:0]
185 #define CHFILT_Q2 0x2F89 //Channel Filter Data Imaginary Part [18:16]
186 #define CHFILT_Q1 0x2F8A //Channel Filter Data Imaginary Part [15:8]
187 #define CHFILT_Q0 0x2F8B //Channel Filter Data Imaginary Part [7:0]
188 #define GPIO_STATUS 0x2F8C //General Purpose Input/Output Status
189 #define FSCAL_CTRL 0x2F8D //Frequency Synthesizer Calibration Control
190 #define PHASE_ADJUST 0x2F8E //Frequency Synthesizer Phase Adjust
191 #define PARTNUMBER 0x2F8F //Part Number
192 #define PARTVERSION 0x2F90 //Part Revision
193 #define SERIAL_STATUS 0x2F91 //Serial Status
194 #define MODEM_STATUS1 0x2F92 //Modem Status Reg. 1
195 #define MODEM_STATUS0 0x2F93 //Modem Status Reg. 0
196 #define MARC_STATUS1 0x2F94 //MARC Status Reg. 1
197 #define MARC_STATUS0 0x2F95 //MARC Status Reg. 0
198 #define PA_IFAMP_TEST 0x2F96 //Power Amplifier Intermediate Frequency Amplifier T..
199 #define FSRF_TEST 0x2F97 //Frequency Synthesizer Test
200 #define PRE_TEST 0x2F98 //Frequency Synthesizer Prescaler Test
201 #define PRE_OVR 0x2F99 //Frequency Synthesizer Prescaler Override
202 #define ADC_TEST 0x2F9A //Analog to Digital Converter Test
203 #define DVC_TEST 0x2F9B //Digital Divider Chain Test
204 #define ATEST 0x2F9C //Analog Test
205 #define ATEST_LVDS 0x2F9D //Analog Test LVDS
206 #define ATEST_MODE 0x2F9E //Analog Test Mode
207 #define XOSC_TEST1 0x2F9F //Crystal Oscillator Test Reg. 1
208 #define XOSC_TEST0 0x2FA0 //Crystal Oscillator Test Reg. 0
209 #define RXFIRST 0x2FD2 //RX FIFO Pointer First Entry
210 #define TXFIRST 0x2FD3 //TX FIFO Pointer First Entry
211 #define RXLAST 0x2FD4 //RX FIFO Pointer Last Entry
212 #define TXLAST 0x2FD5 //TX FIFO Pointer Last Entry
213 #define NUM_TXBYTES 0x2FD6 //TX FIFO Status
214 #define NUM_RXBYTES 0x2FD7 //RX FIFO Status
215 #define FIFO_NUM_TXBYTES 0x2FD8 //TX FIFO Status
216 #define FIFO_NUM_RXBYTES 0x2FD9 //RX FIFO Status
217 
218 // Strobe commands
219 #define SRES 0x30 // Reset chip.
220 #define SFSTXON 0x31 // Enable/calibrate freq synthesizer
221 #define SXOFF 0x32 // Turn off crystal oscillator.
222 #define SCAL 0x33 // Calibrate freq synthesizer & disable
223 #define SRX 0x34 // Enable RX.
224 #define STX 0x35 // Enable TX.
225 #define SIDLE 0x36 // Exit RX / TX
226 #define SWOR 0x38 // Start automatic RX polling sequence
227 #define SPWD 0x39 // Enter pwr down mode when CSn goes hi
228 #define SFRX 0x3A // Flush the RX FIFO buffer.
229 #define SFTX 0x3B // Flush the TX FIFO buffer.
230 #define SWORRST 0x3C // Reset real time clock.
231 #define SNOP 0x3D // No operation.
232 
233 // Other memory locations
234 #define PATABLE 0x3E
235 #define TXFIFO 0x3F
236 #define RXFIFO 0x3F
237 
238 // Masks for appended status bytes
239 #define RSSI_RX 0x00 // Position of RSSI byte
240 #define LQI_RX 0x01 // Position of LQI byte
241 #define CRC_OK 0x80 // Mask "CRC_OK" bit within LQI byte
242 #define MARCSTATE_IDLE 0x01 // The status register indicates idle
243 
244 // Definitions to support burst/single access:
245 #define WRITE_BURST 0x40
246 #define READ_SINGLE 0x80
247 #define READ_BURST 0xC0
248 
249 
250 
251 // MARC_STATUS1 flag bits
252 
253 #define MARC_NO_FAILURE 0x00
254 #define MARC_RX_TIMEOUT 0x01
255 #define MARC_RX_CS_PQT_TERMINATE 0x02
256 #define MARC_eWOR_SYNC_LOST 0x03
257 #define MARC_PKT_DISC_LEN 0x04
258 #define MARC_PKT_DISC_ADDR 0x05
259 #define MARC_PKT_DISC_CRC 0x06
260 #define MARC_TX_FIFO_OF 0x07
261 #define MARC_TX_FIFO_UF 0x08
262 #define MARC_RX_FIFO_OF 0x09
263 #define MARC_RX_FIFO_UF 0X0A
264 #define MARC_TX_ONCCA_FAIL 0x0B
265 #define MARC_TX_SUCCESSFUL 0x40
266 #define MARC_RX_SUCCESSFUL 0X80
267 
268 #define RSSI0_RSSI_VALID 0x01
269 #define RSSI0_CARRIER_SENSE_VALID 0X02
270 #define RSSI0_CARRIER_SENSE 0x04
271 #define RSSI0_RSSI_3_0_MSK 0x70
272 #define RSSI0_RSSI_3_0_POS 3