device/include/mcs51/cc2430.h: added
[fw/sdcc] / device / include / mcs51 / cc2430.h
1 /*-------------------------------------------------------------------------\r
2    Register Declarations for Chipcon CC2430\r
3 \r
4    Written By -  Jesus Calvino-Fraga / jesusc at ece.ubc.ca (December 2006)\r
5    (Based on CC2430 PRELIMINARY Data Sheet (rev. 1.03) SWRS036A)\r
6 \r
7    This library is free software; you can redistribute it and/or\r
8    modify it under the terms of the GNU Lesser General Public\r
9    License as published by the Free Software Foundation; either\r
10    version 2.1 of the License, or (at your option) any later version.\r
11 \r
12    This library is distributed in the hope that it will be useful,\r
13    but WITHOUT ANY WARRANTY; without even the implied warranty of\r
14    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
15    Lesser General Public License for more details.\r
16 \r
17    You should have received a copy of the GNU Lesser General Public\r
18    License along with this library; if not, write to the Free Software\r
19    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
20 \r
21    In other words, you are welcome to use, share and improve this program.\r
22    You are forbidden to forbid anyone else to use, share and improve\r
23    what you give them.   Help stamp out software-hoarding!\r
24 -------------------------------------------------------------------------*/\r
25 \r
26 #ifndef REG_CC2430_H\r
27 #define REG_CC2430_H\r
28 \r
29 #include <compiler.h>\r
30 \r
31 // Interrupt Vectors\r
32 \r
33 #define RFERR_VECTOR    0   // RF TX FIFO underflow and RX FIFO overflow. \r
34 #define ADC_VECTOR      1   // ADC end of conversion \r
35 #define URX0_VECTOR     2   // USART0 RX complete \r
36 #define URX1_VECTOR     3   // USART1 RX complete \r
37 #define ENC_VECTOR      4   // AES encryption/decryption complete \r
38 #define ST_VECTOR       5   // Sleep Timer compare \r
39 #define P2INT_VECTOR    6   // Port 2 inputs \r
40 #define UTX0_VECTOR     7   // USART0 TX complete \r
41 #define DMA_VECTOR      8   // DMA transfer complete \r
42 #define T1_VECTOR       9   // Timer 1 (16-bit) capture/compare/overflow \r
43 #define T2_VECTOR       10  // Timer 2 (MAC Timer) \r
44 #define T3_VECTOR       11  // Timer 3 (8-bit) capture/compare/overflow \r
45 #define T4_VECTOR       12  // Timer 4 (8-bit) capture/compare/overflow \r
46 #define P0INT_VECTOR    13  // Port 0 inputs \r
47 #define UTX1_VECTOR     14  // USART1 TX complete \r
48 #define P1INT_VECTOR    15  // Port 1 inputs \r
49 #define RF_VECTOR       16  // RF general interrupts \r
50 #define WDT_VECTOR      17  // Watchdog overflow in timer mode \r
51 \r
52 // SFR Registers and BITs\r
53 \r
54 SFR(P0,       0x80) // Port 0\r
55    SBIT(P0_0,     0x80, 0); // Port 0 bit 0\r
56    SBIT(P0_1,     0x80, 1); // Port 0 bit 1\r
57    SBIT(P0_2,     0x80, 2); // Port 0 bit 2\r
58    SBIT(P0_3,     0x80, 3); // Port 0 bit 3\r
59    SBIT(P0_4,     0x80, 4); // Port 0 bit 4\r
60    SBIT(P0_5,     0x80, 5); // Port 0 bit 5\r
61    SBIT(P0_6,     0x80, 6); // Port 0 bit 6\r
62    SBIT(P0_7,     0x80, 7); // Port 0 bit 7\r
63 SFR(SP,       0x81) // Stack Pointer\r
64 SFR(DPL0,     0x82) // Data Pointer 0 Low Byte\r
65 SFR(DPH0,     0x83) // Data Pointer 0 High Byte\r
66 SFR(DPL1,     0x84) // Data Pointer 1 Low Byte\r
67 SFR(DPH1,     0x85) // Data Pointer 1 High Byte\r
68 SFR(U0CSR,    0x86) // USART 0 Control and Status\r
69 SFR(PCON,     0x87) // Power Mode Control\r
70 SFR(TCON,     0x88) // Interrupt Flags\r
71    SBIT(IT0,      0x88, 0); // reserved (must always be set to 1) \r
72    SBIT(RFERRIF,  0x88, 1); // RFERR \96 RF TX/RX FIFO interrupt flag\r
73    SBIT(IT1,      0x88, 2); // reserved (must always be set to 1) \r
74    SBIT(URX0IF,   0x88, 3); // USART0 RX Interrupt Flag \r
75    SBIT(ADCIF,    0x88, 5); // ADC Interrupt Flag \r
76    SBIT(URX1IF,   0x88, 7); // USART1 RX Interrupt Flag \r
77 SFR(P0IFG,    0x89) // Port 0 Interrupt Status Flag\r
78 SFR(P1IFG,    0x8A) // Port 1 Interrupt Status Flag\r
79 SFR(P2IFG,    0x8B) // Port 2 Interrupt Status Flag\r
80 SFR(PICTL,    0x8C) // Port Interrupt Control\r
81 SFR(P1IEN,    0x8D) // Port 1 Interrupt Mask\r
82 SFR(P0INP,    0x8F) // Port 0 Input Mode\r
83 SFR(P1,       0x90) // Port 1\r
84    SBIT(P1_0,     0x90, 0); // Port 1 bit 0\r
85    SBIT(P1_1,     0x90, 1); // Port 1 bit 1\r
86    SBIT(P1_2,     0x90, 2); // Port 1 bit 2\r
87    SBIT(P1_3,     0x90, 3); // Port 1 bit 3\r
88    SBIT(P1_4,     0x90, 4); // Port 1 bit 4\r
89    SBIT(P1_5,     0x90, 5); // Port 1 bit 5\r
90    SBIT(P1_6,     0x90, 6); // Port 1 bit 6\r
91    SBIT(P1_7,     0x90, 7); // Port 1 bit 7\r
92 SFR(RFIM,     0x91) // RF Interrupt Mask\r
93 SFR(DPS,      0x92) // Data Pointer Select\r
94 SFR(MPAGE,    0x93) // Memory Page Select\r
95 SFR(T2CMP,    0x94) // Timer 2 Compare Value\r
96 SFR(ST0,      0x95) // Sleep Timer 0\r
97 SFR(ST1,      0x96) // Sleep Timer 1\r
98 SFR(ST2,      0x97) // Sleep Timer 2\r
99 SFR(S0CON,    0x98) // Interrupt Flags 2\r
100    SBIT(ENCIF_0,  0x98, 0); // AES Interrupt Flag 0 \r
101    SBIT(ENCIF_1,  0x98, 1); // AES Interrupt Flag 1 \r
102 SFR(IEN2,     0x9A) // Interrupt Enable 2\r
103 SFR(S1CON,    0x9B) // Interrupt Flags 3\r
104 SFR(T2PEROF0, 0x9C) // Timer 2 Overflow Capture/Compare 0\r
105 SFR(T2PEROF1, 0x9D) // Timer 2 Overflow Capture/Compare 1\r
106 SFR(T2PEROF2, 0x9E) // Timer 2 Overflow Capture/Compare 2\r
107 SFR(P2,       0xA0) // Port 2\r
108    SBIT(P2_0,     0xA0, 0); // Port 2 bit 0\r
109    SBIT(P2_1,     0xA0, 1); // Port 2 bit 1\r
110    SBIT(P2_2,     0xA0, 2); // Port 2 bit 2\r
111    SBIT(P2_3,     0xA0, 3); // Port 2 bit 3\r
112    SBIT(P2_4,     0xA0, 4); // Port 2 bit 4\r
113    SBIT(P2_5,     0xA0, 5); // Port 2 bit 5\r
114    SBIT(P2_6,     0xA0, 6); // Port 2 bit 6\r
115    SBIT(P2_7,     0xA0, 7); // Port 2 bit 7\r
116 SSFR(T2OF0,    0xA1) // Timer 2 Overflow Count 0\r
117 SFR(T2OF1,    0xA2) // Timer 2 Overflow Count 1\r
118 SFR(T2OF2,    0xA3) // Timer 2 Overflow Count 2\r
119 SFR(T2CAPLPL, 0xA4) // Timer 2 Period Low Byte\r
120 SFR(T2CAPHPH, 0xA5) // Timer 2 Period High Byte\r
121 SFR(T2TLD,    0xA6) // Timer 2 Timer Value Low Byte\r
122 SFR(T2THD,    0xA7) // Timer 2 Timer Value High Byte\r
123 SFR(IEN0,     0xA8) // Interrupt Enable 0\r
124    SBIT(RFERRIE,  0xA8, 0); // RF TX/RX FIFO interrupt enable \r
125    SBIT(ADCIE,    0xA8, 1); // ADC Interrupt Enable \r
126    SBIT(URX0IE,   0xA8, 2); // USART0 RX Interrupt Enable \r
127    SBIT(URX1IE,   0xA8, 3); // USART1 RX Interrupt Enable\r
128    SBIT(ENCIE,    0xA8, 4); // AES Encryption/Decryption Interrupt Enable \r
129    SBIT(STIE,     0xA8, 5); // Sleep Timer Interrupt Enable \r
130    SBIT(EA,       0xA8, 7); // Global Interrupt Enable \r
131 SFR(IP0,      0xA9) // Interrupt Priority 0\r
132 SFR(FWT,      0xAB) // Flash Write Timing\r
133 SFR(FADDRL,   0xAC) // Flash Address Low Byte\r
134 SFR(FADDRH,   0xAD) // Flash Address High Byte\r
135 SFR(FCTL,     0xAE) // Flash Control\r
136 SFR(FWDATA,   0xAF) // Flash Write Data\r
137 SFR(ENCDI,    0xB1) // Encryption Input Data\r
138 SFR(ENCDO,    0xB2) // Encryption Output Data\r
139 SFR(ENCCS,    0xB3) // Encryption Control and Status\r
140 SFR(ADCCON1,  0xB4) // ADC Control 1\r
141 SFR(ADCCON2,  0xB5) // ADC Control 2\r
142 SFR(ADCCON3,  0xB6) // ADC Control 3\r
143 SFR(IEN1,     0xB8) // Interrupt Enable 1\r
144    SBIT(DMAIE,    0xB8, 0); // DMA Transfer Interrupt Enable \r
145    SBIT(T1IE,     0xB8, 1); // Timer 1 Interrupt Enable \r
146    SBIT(T2IE,     0xB8, 2); // Timer 2 Interrupt Enable \r
147    SBIT(T3IE,     0xB8, 3); // Timer 3 Interrupt Enable \r
148    SBIT(T4IE,     0xB8, 4); // Timer 4 Interrupt Enable \r
149    SBIT(P0IE,     0xB8, 5); // Port 0 Interrupt Enable \r
150 SFR(IP1,      0xB9) // Interrupt Priority 1\r
151 SFR(ADCL,     0xBA) // ADC Data Low\r
152 SFR(ADCH,     0xBB) // ADC Data High\r
153 SFR(RNDL,     0xBC) // Random Number Generator Data Low Byte\r
154 SFR(RNDH,     0xBD) // Random Number Generator Data High Byte\r
155 SFR(SLEEP,    0xBE) // Sleep Mode Control\r
156 SFR(IRCON,    0xC0) // Interrupt Flags 4\r
157    SBIT(DMAIF,    0xC0, 0); // DMA Complete Interrupt Flag \r
158    SBIT(T1IF,     0xC0, 1); // Timer 1 Interrupt Flag \r
159    SBIT(T2IF,     0xC0, 2); // Timer 2 Interrupt Flag \r
160    SBIT(T3IF,     0xC0, 3); // Timer 3 Interrupt Flag \r
161    SBIT(T4IF,     0xC0, 4); // Timer 4 Interrupt Flag \r
162    SBIT(P0IF,     0xC0, 5); // Port 0 Interrupt Flag \r
163    SBIT(STIF,     0xC0, 7); // Sleep Timer Interrupt Flag \r
164 SFR(U0DBUF,   0xC1) // USART 0 Receive/Transmit Data Buffer\r
165 SFR(U0BAUD,   0xC2) // USART 0 Baud Rate Control\r
166 SFR(T2CNF,    0xC3) // Timer 2 Configuration\r
167 SFR(U0UCR,    0xC4) // USART 0 UART Control\r
168 SFR(U0GCR,    0xC5) // USART 0 Generic Control\r
169 SFR(CLKCON,   0xC6) // Clock Control\r
170 SFR(MEMCTR,   0xC7) // Memory Arbiter Control\r
171 SFR(WDCTL,    0xC9) // Watchdog Timer Control\r
172 SFR(T3CNT,    0xCA) // Timer 3 Counter\r
173 SFR(T3CTL,    0xCB) // Timer 3 Control\r
174 SFR(T3CCTL0,  0xCC) // Timer 3 Channel 0 Capture/Compare Control\r
175 SFR(T3CC0,    0xCD) // Timer 3 Channel 0 Capture/Compare Value\r
176 SFR(T3CCTL1,  0xCE) // Timer 3 Channel 1 Capture/Compare Control\r
177 SFR(T3CC1,    0xCF) // Timer 3 Channel 1 Capture/Compare Value\r
178 SFR(PSW,      0xD0) // Program Status Word\r
179    SBIT(P,        0xD0, 0); // Parity Flag \r
180    SBIT(F1,       0xD0, 1); // User-Defined Flag\r
181    SBIT(OV,       0xD0, 2); // Overflow Flag \r
182    SBIT(RS0,      0xD0, 3); // Register Bank Select 0 \r
183    SBIT(RS1,      0xD0, 4); // Register Bank Select 1 \r
184    SBIT(F0,       0xD0, 5); // User-Defined Flag\r
185    SBIT(AC,       0xD0, 6); // Auxiliary Carry Flag \r
186    SBIT(CY,       0xD0, 7); // Carry Flag \r
187 SFR(DMAIRQ,   0xD1) // DMA Interrupt Flag\r
188 SFR(DMA1CFGL, 0xD2) // DMA Channel 1-4 Configuration Address Low Byte\r
189 SFR(DMA1CFGH, 0xD3) // DMA Channel 1-4 Configuration Address High Byte\r
190 SFR(DMA0CFGL, 0xD4) // DMA Channel 0 Configuration Address Low Byte\r
191 SFR(DMA0CFGH, 0xD5) // DMA Channel 0 Configuration Address High Byte\r
192 SFR(DMAARM,   0xD6) // DMA Channel Arm\r
193 SFR(DMAREQ,   0xD7) // DMA Channel Start Request and Status\r
194 SFR(TIMIF,    0xD8) // Timers 1/3/4 Interrupt Mask/Flag\r
195    SBIT(T3OVFIF,  0xD8, 0); // Timer 3 overflow interrupt flag 0:no pending 1:pending\r
196    SBIT(T3CH0IF,  0xD8, 1); // Timer 3 channel 0 interrupt flag 0:no pending 1:pending\r
197    SBIT(T3CH1IF,  0xD8, 2); // Timer 3 channel 1 interrupt flag 0:no pending 1:pending\r
198    SBIT(T4OVFIF,  0xD8, 3); // Timer 4 overflow interrupt flag 0:no pending 1:pending\r
199    SBIT(T4CH0IF,  0xD8, 4); // Timer 4 channel 0 interrupt flag 0:no pending 1:pending\r
200    SBIT(T4CH1IF,  0xD8, 5); // Timer 4 channel 1 interrupt flag 0:no pending 1:pending\r
201    SBIT(OVFIM,    0xD8, 6); // Timer 1 overflow interrupt mask\r
202 SFR(RFD,      0xD9) // RF Data\r
203 SFR(T1CC0L,   0xDA) // Timer 1 Channel 0 Capture/Compare Value Low\r
204 SFR(T1CC0H,   0xDB) // Timer 1 Channel 0 Capture/Compare Value High\r
205 SFR(T1CC1L,   0xDC) // Timer 1 Channel 1 Capture/Compare Value Low\r
206 SFR(T1CC1H,   0xDD) // Timer 1 Channel 1 Capture/Compare Value High\r
207 SFR(T1CC2L,   0xDE) // Timer 1 Channel 2 Capture/Compare Value Low\r
208 SFR(T1CC2H,   0xDF) // Timer 1 Channel 2 Capture/Compare Value High\r
209 SFR(ACC,      0xE0) // Accumulator\r
210    SBIT(ACC_0,    0xE0, 0); // Accumulator bit 0\r
211    SBIT(ACC_1,    0xE0, 1); // Accumulator bit 1\r
212    SBIT(ACC_2,    0xE0, 2); // Accumulator bit 2\r
213    SBIT(ACC_3,    0xE0, 3); // Accumulator bit 3\r
214    SBIT(ACC_4,    0xE0, 4); // Accumulator bit 4\r
215    SBIT(ACC_5,    0xE0, 5); // Accumulator bit 5\r
216    SBIT(ACC_6,    0xE0, 6); // Accumulator bit 6\r
217    SBIT(ACC_7,    0xE0, 7); // Accumulator bit 7\r
218 SFR(RFST,     0xE1) // RF CSMA-CA / Strobe Processor\r
219 SFR(T1CNTL,   0xE2) // Timer 1 Counter Low\r
220 SFR(T1CNTH,   0xE3) // Timer 1 Counter High\r
221 SFR(T1CTL,    0xE4) // Timer 1 Control and Status\r
222 SFR(T1CCTL0,  0xE5) // Timer 1 Channel 0 Capture/Compare Control\r
223 SFR(T1CCTL1,  0xE6) // Timer 1 Channel 1 Capture/Compare Control\r
224 SFR(T1CCTL2,  0xE7) // Timer 1 Channel 2 Capture/Compare Control\r
225 SFR(IRCON2,   0xE8) // Interrupt Flags 5\r
226    SBIT(P2IF,     0xE8, 0); // Port 2 Interrupt Flag \r
227    SBIT(UTX0IF,   0xE8, 1); // USART0 TX Interrupt Flag \r
228    SBIT(UTX1IF,   0xE8, 2); // USART1 TX Interrupt Flag \r
229    SBIT(P1IF,     0xE8, 3); // Port 1 Interrupt Flag \r
230    SBIT(WDTIF,    0xE8, 4); // Watchdog Timer Interrupt Flag \r
231 SFR(RFIF,     0xE9) // RF Interrupt Flags\r
232 SFR(T4CNT,    0xEA) // Timer 4 Counter\r
233 SFR(T4CTL,    0xEB) // Timer 4 Control\r
234 SFR(T4CCTL0,  0xEC) // Timer 4 Channel 0 Capture/Compare Control\r
235 SFR(T4CC0,    0xED) // Timer 4 Channel 0 Capture/Compare Value\r
236 SFR(T4CCTL1,  0xEE) // Timer 4 Channel 1 Capture/Compare Control\r
237 SFR(T4CC1,    0xEF) // Timer 4 Channel 1 Capture/Compare Value\r
238 SFR(B,        0xF0) // B Register\r
239    SBIT(B_0,      0xF0, 0); // Register B bit 0\r
240    SBIT(B_1,      0xF0, 1); // Register B bit 1\r
241    SBIT(B_2,      0xF0, 2); // Register B bit 2\r
242    SBIT(B_3,      0xF0, 3); // Register B bit 3\r
243    SBIT(B_4,      0xF0, 4); // Register B bit 4\r
244    SBIT(B_5,      0xF0, 5); // Register B bit 5\r
245    SBIT(B_6,      0xF0, 6); // Register B bit 6\r
246    SBIT(B_7,      0xF0, 7); // Register B bit 7\r
247 SFR(PERCFG,   0xF1) // Peripheral Control\r
248 SFR(ADCCFG,   0xF2) // ADC Input Configuration\r
249 SFR(P0SEL,    0xF3) // Port 0 Function Select\r
250 SFR(P1SEL,    0xF4) // Port 1 Function Select\r
251 SFR(P2SEL,    0xF5) // Port 2 Function Select\r
252 SFR(P1INP,    0xF6) // Port 1 Input Mode\r
253 SFR(P2INP,    0xF7) // Port 2 Input Mode\r
254 SFR(U1CSR,    0xF8) // USART 1 Control and Status\r
255    SBIT(ACTIVE,   0xF8, 0); // USART transmit/receive active status 0:idle 1:busy\r
256    SBIT(TX_BYTE,  0xF8, 1); // Transmit byte status 0:Byte not transmitted 1:Last byte transmitted\r
257    SBIT(RX_BYTE,  0xF8, 2); // Receive byte status 0:No byte received 1:Received byte ready\r
258    SBIT(ERR,      0xF8, 3); // UART parity error status 0:No error 1:parity error\r
259    SBIT(FE,       0xF8, 4); // UART framing error status 0:No error 1:incorrect stop bit level\r
260    SBIT(SLAVE,    0xF8, 5); // SPI master or slave mode select 0:master 1:slave\r
261    SBIT(RE,       0xF8, 6); // UART receiver enable 0:disabled 1:enabled\r
262    SBIT(MODE,     0xF8, 7); // USART mode select 0:SPI 1:UART\r
263 SFR(U1DBUF,   0xF9) // USART 1 Receive/Transmit Data Buffer\r
264 SFR(U1BAUD,   0xFA) // USART 1 Baud Rate Control\r
265 SFR(U1UCR,    0xFB) // USART 1 UART Control\r
266 SFR(U1GCR,    0xFC) // USART 1 Generic Control\r
267 SFR(P0DIR,    0xFD) // Port 0 Direction\r
268 SFR(P1DIR,    0xFE) // Port 1 Direction\r
269 SFR(P2DIR,    0xFF) // Port 2 Direction\r
270 \r
271 // From Table 45 : Overview of RF registers\r
272 \r
273 SFRX(MDMCTRL0H,  0xDF02); // Modem Control 0,  high\r
274 SFRX(MDMCTRL0L,  0xDF03); // Modem Control 0,  low\r
275 SFRX(MDMCTRL1H,  0xDF04); // Modem Control 1,  high\r
276 SFRX(MDMCTRL1L,  0xDF05); // Modem Control 1,  low\r
277 SFRX(RSSIH,      0xDF06); // RSSI and CCA Status and Control,  high\r
278 SFRX(RSSIL,      0xDF07); // RSSI and CCA Status and Control,  low\r
279 SFRX(SYNCWORDH,  0xDF08); // Synchronisation Word Control,  high\r
280 SFRX(SYNCWORDL,  0xDF09); // Synchronisation Word Control,  low\r
281 SFRX(TXCTRLH,    0xDF0A); // Transmit Control,  high\r
282 SFRX(TXCTRLL,    0xDF0B); // Transmit Control,  low\r
283 SFRX(RXCTRL0H,   0xDF0C); // Receive Control 0,  high\r
284 SFRX(RXCTRL0L,   0xDF0D); // Receive Control 0,  low\r
285 SFRX(RXCTRL1H,   0xDF0E); // Receive Control 1,  high\r
286 SFRX(RXCTRL1L,   0xDF0F); // Receive Control 1,  low\r
287 SFRX(FSCTRLH,    0xDF10); // Frequency Synthesizer Control and Status,  high\r
288 SFRX(FSCTRLL,    0xDF11); // Frequency Synthesizer Control and Status,  low\r
289 SFRX(CSPX,       0xDF12); // CSP X Data\r
290 SFRX(CSPY,       0xDF13); // CSP Y Data\r
291 SFRX(CSPZ,       0xDF14); // CSP Z Data\r
292 SFRX(CSPCTRL,    0xDF15); // CSP Control\r
293 SFRX(CSPT,       0xDF16); // CSP T Data\r
294 SFRX(RFPWR,      0xDF17); // RF Power Control\r
295 SFRX(FSMTCH,     0xDF20); // Finite State Machine Time Constants,  high\r
296 SFRX(FSMTCL,     0xDF21); // Finite State Machine Time Constants,  low\r
297 SFRX(MANANDH,    0xDF22); // Manual AND Override,  high\r
298 SFRX(MANANDL,    0xDF23); // Manual AND Override,  low\r
299 SFRX(MANORH,     0xDF24); // Manual OR Override,  high\r
300 SFRX(MANORL,     0xDF25); // Manual OR Override,  low\r
301 SFRX(AGCCTRLH,   0xDF26); // AGC Control,  high\r
302 SFRX(AGCCTRLL,   0xDF27); // AGC Control,  low\r
303 SFRX(FSMSTATE,   0xDF39); // Finite State Machine State Status\r
304 SFRX(ADCTSTH,    0xDF3A); // ADC Test,  high\r
305 SFRX(ADCTSTL,    0xDF3B); // ADC Test,  low\r
306 SFRX(DACTSTH,    0xDF3C); // DAC Test,  high\r
307 SFRX(DACTSTL,    0xDF3D); // DAC Test,  low\r
308 SFRX(IEEE_ADDR0, 0xDF43); // IEEE Address 0\r
309 SFRX(IEEE_ADDR1, 0xDF44); // IEEE Address 1\r
310 SFRX(IEEE_ADDR2, 0xDF45); // IEEE Address 2\r
311 SFRX(IEEE_ADDR3, 0xDF46); // IEEE Address 3\r
312 SFRX(IEEE_ADDR4, 0xDF47); // IEEE Address 4\r
313 SFRX(IEEE_ADDR5, 0xDF48); // IEEE Address 5\r
314 SFRX(IEEE_ADDR6, 0xDF49); // IEEE Address 6\r
315 SFRX(IEEE_ADDR7, 0xDF4A); // IEEE Address 7\r
316 SFRX(PANIDH,     0xDF4B); // PAN Identifier,  high\r
317 SFRX(PANIDL,     0xDF4C); // PAN Identifier,  low\r
318 SFRX(SHORTADDRH, 0xDF4D); // Short Address,  high\r
319 SFRX(SHORTADDRL, 0xDF4E); // Short Address,  low\r
320 SFRX(IOCFG0,     0xDF4F); // I/O Configuration 0\r
321 SFRX(IOCFG1,     0xDF50); // I/O Configuration 1\r
322 SFRX(IOCFG2,     0xDF51); // I/O Configuration 2\r
323 SFRX(IOCFG3,     0xDF52); // I/O Configuration 3\r
324 SFRX(RXFIFOCNT,  0xDF53); // RX FIFO Count\r
325 SFRX(FSMTC1,     0xDF54); // Finite State Machine Control\r
326 SFRX(CHVER,      0xDF60); // Chip Version\r
327 SFRX(CHIPID,     0xDF61); // Chip Identification\r
328 SFRX(RFSTATUS,   0xDF62); // RF Status\r
329 \r
330 // SFRs also accesible through XDATA space\r
331 \r
332 SFRX(X_U0CSR,    0xDF86) // USART 0 Control and Status\r
333 SFRX(X_P0IFG,    0xDF89) // Port 0 Interrupt Status Flag\r
334 SFRX(X_P1IFG,    0xDF8A) // Port 1 Interrupt Status Flag\r
335 SFRX(X_P2IFG,    0xDF8B) // Port 2 Interrupt Status Flag\r
336 SFRX(X_PICTL,    0xDF8C) // Port Interrupt Control\r
337 SFRX(X_P1IEN,    0xDF8D) // Port 1 Interrupt Mask\r
338 SFRX(X_P0INP,    0xDF8F) // Port 0 Input Mode\r
339 SFRX(X_RFIM,     0xDF91) // RF Interrupt Mask\r
340 SFRX(X_MPAGE,    0xDF93) // Memory Page Select\r
341 SFRX(X_T2CMP,    0xDF94) // Timer 2 Compare Value\r
342 SFRX(X_ST0,      0xDF95) // Sleep Timer 0\r
343 SFRX(X_ST1,      0xDF96) // Sleep Timer 1\r
344 SFRX(X_ST2,      0xDF97) // Sleep Timer 2\r
345 SFRX(X_T2PEROF0, 0xDF9C) // Timer 2 Overflow Capture/Compare 0\r
346 SFRX(X_T2PEROF1, 0xDF9D) // Timer 2 Overflow Capture/Compare 1\r
347 SFRX(X_T2PEROF2, 0xDF9E) // Timer 2 Overflow Capture/Compare 2\r
348 SFRX(X_T2OF0,    0xDFA1) // Timer 2 Overflow Count 0\r
349 SFRX(X_T2OF1,    0xDFA2) // Timer 2 Overflow Count 1\r
350 SFRX(X_T2OF2,    0xDFA3) // Timer 2 Overflow Count 2\r
351 SFRX(X_T2CAPLPL, 0xDFA4) // Timer 2 Period Low Byte\r
352 SFRX(X_T2CAPHPH, 0xDFA5) // Timer 2 Period High Byte\r
353 SFRX(X_T2TLD,    0xDFA6) // Timer 2 Timer Value Low Byte\r
354 SFRX(X_T2THD,    0xDFA7) // Timer 2 Timer Value High Byte\r
355 SFRX(X_FWT,      0xDFAB) // Flash Write Timing\r
356 SFRX(X_FADDRL,   0xDFAC) // Flash Address Low Byte\r
357 SFRX(X_FADDRH,   0xDFAD) // Flash Address High Byte\r
358 SFRX(X_FCTL,     0xDFAE) // Flash Control\r
359 SFRX(X_FWDATA,   0xDFAF) // Flash Write Data\r
360 SFRX(X_ENCDI,    0xDFB1) // Encryption Input Data\r
361 SFRX(X_ENCDO,    0xDFB2) // Encryption Output Data\r
362 SFRX(X_ENCCS,    0xDFB3) // Encryption Control and Status\r
363 SFRX(X_ADCCON1,  0xDFB4) // ADC Control 1\r
364 SFRX(X_ADCCON2,  0xDFB5) // ADC Control 2\r
365 SFRX(X_ADCCON3,  0xDFB6) // ADC Control 3\r
366 SFRX(X_ADCL,     0xDFBA) // ADC Data Low\r
367 SFRX(X_ADCH,     0xDFBB) // ADC Data High\r
368 SFRX(X_RNDL,     0xDFBC) // Random Number Generator Data Low Byte\r
369 SFRX(X_RNDH,     0xDFBD) // Random Number Generator Data High Byte\r
370 SFRX(X_SLEEP,    0xDFBE) // Sleep Mode Control\r
371 SFRX(X_U0DBUF,   0xDFC1) // USART 0 Receive/Transmit Data Buffer\r
372 SFRX(X_U0BAUD,   0xDFC2) // USART 0 Baud Rate Control\r
373 SFRX(X_T2CNF,    0xDFC3) // Timer 2 Configuration\r
374 SFRX(X_U0UCR,    0xDFC4) // USART 0 UART Control\r
375 SFRX(X_U0GCR,    0xDFC5) // USART 0 Generic Control\r
376 SFRX(X_CLKCON,   0xDFC6) // Clock Control\r
377 SFRX(X_MEMCTR,   0xDFC7) // Memory Arbiter Control\r
378 SFRX(X_WDCTL,    0xDFC9) // Watchdog Timer Control\r
379 SFRX(X_T3CNT,    0xDFCA) // Timer 3 Counter\r
380 SFRX(X_T3CTL,    0xDFCB) // Timer 3 Control\r
381 SFRX(X_T3CCTL0,  0xDFCC) // Timer 3 Channel 0 Capture/Compare Control\r
382 SFRX(X_T3CC0,    0xDFCD) // Timer 3 Channel 0 Capture/Compare Value\r
383 SFRX(X_T3CCTL1,  0xDFCE) // Timer 3 Channel 1 Capture/Compare Control\r
384 SFRX(X_T3CC1,    0xDFCF) // Timer 3 Channel 1 Capture/Compare Value\r
385 SFRX(X_DMAIRQ,   0xDFD1) // DMA Interrupt Flag\r
386 SFRX(X_DMA1CFGL, 0xDFD2) // DMA Channel 1-4 Configuration Address Low Byte\r
387 SFRX(X_DMA1CFGH, 0xDFD3) // DMA Channel 1-4 Configuration Address High Byte\r
388 SFRX(X_DMA0CFGL, 0xDFD4) // DMA Channel 0 Configuration Address Low Byte\r
389 SFRX(X_DMA0CFGH, 0xDFD5) // DMA Channel 0 Configuration Address High Byte\r
390 SFRX(X_DMAARM,   0xDFD6) // DMA Channel Arm\r
391 SFRX(X_DMAREQ,   0xDFD7) // DMA Channel Start Request and Status\r
392 SFRX(X_TIMIF,    0xDFD8) // Timers 1/3/4 Interrupt Mask/Flag\r
393 SFRX(X_RFD,      0xDFD9) // RF Data\r
394 SFRX(X_T1CC0L,   0xDFDA) // Timer 1 Channel 0 Capture/Compare Value Low\r
395 SFRX(X_T1CC0H,   0xDFDB) // Timer 1 Channel 0 Capture/Compare Value High\r
396 SFRX(X_T1CC1L,   0xDFDC) // Timer 1 Channel 1 Capture/Compare Value Low\r
397 SFRX(X_T1CC1H,   0xDFDD) // Timer 1 Channel 1 Capture/Compare Value High\r
398 SFRX(X_T1CC2L,   0xDFDE) // Timer 1 Channel 2 Capture/Compare Value Low\r
399 SFRX(X_T1CC2H,   0xDFDF) // Timer 1 Channel 2 Capture/Compare Value High\r
400 SFRX(X_RFST,     0xDFE1) // RF CSMA-CA / Strobe Processor\r
401 SFRX(X_T1CNTL,   0xDFE2) // Timer 1 Counter Low\r
402 SFRX(X_T1CNTH,   0xDFE3) // Timer 1 Counter High\r
403 SFRX(X_T1CTL,    0xDFE4) // Timer 1 Control and Status\r
404 SFRX(X_T1CCTL0,  0xDFE5) // Timer 1 Channel 0 Capture/Compare Control\r
405 SFRX(X_T1CCTL1,  0xDFE6) // Timer 1 Channel 1 Capture/Compare Control\r
406 SFRX(X_T1CCTL2,  0xDFE7) // Timer 1 Channel 2 Capture/Compare Control\r
407 SFRX(X_RFIF,     0xDFE9) // RF Interrupt Flags\r
408 SFRX(X_T4CNT,    0xDFEA) // Timer 4 Counter\r
409 SFRX(X_T4CTL,    0xDFEB) // Timer 4 Control\r
410 SFRX(X_T4CCTL0,  0xDFEC) // Timer 4 Channel 0 Capture/Compare Control\r
411 SFRX(X_T4CC0,    0xDFED) // Timer 4 Channel 0 Capture/Compare Value\r
412 SFRX(X_T4CCTL1,  0xDFEE) // Timer 4 Channel 1 Capture/Compare Control\r
413 SFRX(X_T4CC1,    0xDFEF) // Timer 4 Channel 1 Capture/Compare Value\r
414 SFRX(X_PERCFG,   0xDFF1) // Peripheral Control\r
415 SFRX(X_ADCCFG,   0xDFF2) // ADC Input Configuration\r
416 SFRX(X_P0SEL,    0xDFF3) // Port 0 Function Select\r
417 SFRX(X_P1SEL,    0xDFF4) // Port 1 Function Select\r
418 SFRX(X_P2SEL,    0xDFF5) // Port 2 Function Select\r
419 SFRX(X_P1INP,    0xDFF6) // Port 1 Input Mode\r
420 SFRX(X_P2INP,    0xDFF7) // Port 2 Input Mode\r
421 SFRX(X_U1CSR,    0xDFF8) // USART 1 Control and Status\r
422 SFRX(X_U1DBUF,   0xDFF9) // USART 1 Receive/Transmit Data Buffer\r
423 SFRX(X_U1BAUD,   0xDFFA) // USART 1 Baud Rate Control\r
424 SFRX(X_U1UCR,    0xDFFB) // USART 1 UART Control\r
425 SFRX(X_U1GCR,    0xDFFC) // USART 1 Generic Control\r
426 SFRX(X_P0DIR,    0xDFFD) // Port 0 Direction\r
427 SFRX(X_P1DIR,    0xDFFE) // Port 1 Direction\r
428 SFRX(X_P2DIR,    0xDFFF) // Port 2 Direction\r
429 \r
430 #endif //REG_CC2430_H\r