Contiki 2.6
|
00001 /* 00002 * Copyright (c) 2011, George Oikonomou - <oikonomou@users.sourceforge.net> 00003 * All rights reserved. 00004 * 00005 * Redistribution and use in source and binary forms, with or without 00006 * modification, are permitted provided that the following conditions 00007 * are met: 00008 * 1. Redistributions of source code must retain the above copyright 00009 * notice, this list of conditions and the following disclaimer. 00010 * 2. Redistributions in binary form must reproduce the above copyright 00011 * notice, this list of conditions and the following disclaimer in the 00012 * documentation and/or other materials provided with the distribution. 00013 * 3. Neither the name of the Institute nor the names of its contributors 00014 * may be used to endorse or promote products derived from this software 00015 * without specific prior written permission. 00016 * 00017 * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND 00018 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 00019 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 00020 * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE 00021 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 00022 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 00023 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 00024 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 00025 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 00026 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 00027 * SUCH DAMAGE. 00028 * 00029 * This file is part of the Contiki operating system. 00030 */ 00031 00032 /** 00033 * \file 00034 * Definitions for TI/Chipcon cc2530, cc2531 and cc2533 SFR registers. 00035 * 00036 * Based on information in: 00037 * "CC253x System-on-Chip Solution for 2.4-GHz IEEE 802.15.4 and ZigBee® 00038 * Applications" 00039 * Literature Number: SWRU191B. April 2009–Revised September 2010 00040 * 00041 * \author 00042 * George Oikonomou - <oikonomou@users.sourceforge.net> 00043 */ 00044 00045 #ifndef __CC253X_H__ 00046 #define __CC253X_H__ 00047 00048 /*---------------------------------------------------------------------------*/ 00049 /* Compiler Abstraction */ 00050 #include <compiler.h> 00051 /*--------------------------------------------------------------------------- 00052 * Interrupt Vectors 00053 * (Table 2.5, page 40) 00054 *---------------------------------------------------------------------------*/ 00055 #define RFERR_VECTOR 0 /* RF TXFIFO underflow and RXFIFO overflow. */ 00056 #define ADC_VECTOR 1 /* ADC end of conversion */ 00057 #define URX0_VECTOR 2 /* USART 0 RX complete */ 00058 #define URX1_VECTOR 3 /* USART 1 RX complete */ 00059 #define ENC_VECTOR 4 /* AES encryption/decryption complete */ 00060 #define ST_VECTOR 5 /* Sleep Timer compare */ 00061 #define P2INT_VECTOR 6 /* Port 2 inputs/USB/I2C */ 00062 #define UTX0_VECTOR 7 /* USART 0 TX complete */ 00063 #define DMA_VECTOR 8 /* DMA transfer complete */ 00064 #define T1_VECTOR 9 /* Timer 1 (16-bit) capture/compare/overflow */ 00065 #define T2_VECTOR 10 /* Timer 2 (MAC Timer) */ 00066 #define T3_VECTOR 11 /* Timer 3 (8-bit) compare/overflow */ 00067 #define T4_VECTOR 12 /* Timer 4 (8-bit) compare/overflow */ 00068 #define P0INT_VECTOR 13 /* Port 0 inputs */ 00069 #define UTX1_VECTOR 14 /* USART1 TX complete */ 00070 #define P1INT_VECTOR 15 /* Port 1 inputs */ 00071 #define RF_VECTOR 16 /* RF general interrupts */ 00072 #define WDT_VECTOR 17 /* Watchdog overflow in timer mode */ 00073 /*--------------------------------------------------------------------------- 00074 * Special Function Registers and BITs 00075 * (Table 2.1, page 27) 00076 *---------------------------------------------------------------------------*/ 00077 /* 8051 Internals */ 00078 SFR(P0, 0x80); /* Port 0 */ 00079 SBIT(P0_7, 0x80, 7); /* Port 0 bit 7 */ 00080 SBIT(P0_6, 0x80, 6); /* Port 0 bit 6 */ 00081 SBIT(P0_5, 0x80, 5); /* Port 0 bit 5 */ 00082 SBIT(P0_4, 0x80, 4); /* Port 0 bit 4 */ 00083 SBIT(P0_3, 0x80, 3); /* Port 0 bit 3 */ 00084 SBIT(P0_2, 0x80, 2); /* Port 0 bit 2 */ 00085 SBIT(P0_1, 0x80, 1); /* Port 0 bit 1 */ 00086 SBIT(P0_0, 0x80, 0); /* Port 0 bit 0 */ 00087 SFR(SP, 0x81); /* Stack pointer */ 00088 SFR(DPL0, 0x82); /* Data pointer 0 low byte */ 00089 SFR(DPH0, 0x83); /* Data pointer 0 high byte */ 00090 SFR(DPL1, 0x84); /* Data pointer 1 low byte */ 00091 SFR(DPH1, 0x85); /* Data pointer 1 high byte */ 00092 SFR(PCON, 0x87); /* Power mode control */ 00093 SFR(TCON, 0x88); /* Interrupt flags */ 00094 SBIT(URX1IF, 0x88, 7); /* USART1 RX interrupt flag */ 00095 SBIT(ADCIF, 0x88, 5); /* ADC interrupt flag */ 00096 SBIT(URX0IF, 0x88, 3); /* USART0 RX interrupt flag */ 00097 SBIT(IT1, 0x88, 2); /* Reserved. Must always be set to 1 */ 00098 SBIT(RFERRIF, 0x88, 1); /* RF TXFIFO/RXFIFO interrupt flag */ 00099 SBIT(IT0, 0x88, 0); /* Reserved. Must always be set to 1 */ 00100 SFR(P1, 0x90); /* Port 1 */ 00101 SBIT(P1_7, 0x90, 7); /* Port 1 bit 7 */ 00102 SBIT(P1_6, 0x90, 6); /* Port 1 bit 6 */ 00103 SBIT(P1_5, 0x90, 5); /* Port 1 bit 5 */ 00104 SBIT(P1_4, 0x90, 4); /* Port 1 bit 4 */ 00105 SBIT(P1_3, 0x90, 3); /* Port 1 bit 3 */ 00106 SBIT(P1_2, 0x90, 2); /* Port 1 bit 2 */ 00107 SBIT(P1_1, 0x90, 1); /* Port 1 bit 1 */ 00108 SBIT(P1_0, 0x90, 0); /* Port 1 bit 0 */ 00109 SFR(DPS, 0x92); /* Data pointer select */ 00110 SFR(S0CON, 0x98); /* Interrupt flags 2 */ 00111 SBIT(ENCIF_1, 0x98, 1); /* AES Interrupt flag 1 */ 00112 SBIT(ENCIF_0, 0x98, 0); /* AES Interrupt flag 0 */ 00113 SFR(IEN2, 0x9A); /* Interrupt enable 2 */ 00114 SFR(S1CON, 0x9B); /* Interrupt flags 3 */ 00115 SFR(P2, 0xA0); /* Port 2 */ 00116 SBIT(P2_7, 0xA0, 7); /* Port 2 bit 7 */ 00117 SBIT(P2_6, 0xA0, 6); /* Port 2 bit 6 */ 00118 SBIT(P2_5, 0xA0, 5); /* Port 2 bit 5 */ 00119 SBIT(P2_4, 0xA0, 4); /* Port 2 bit 4 */ 00120 SBIT(P2_3, 0xA0, 3); /* Port 2 bit 3 */ 00121 SBIT(P2_2, 0xA0, 2); /* Port 2 bit 2 */ 00122 SBIT(P2_1, 0xA0, 1); /* Port 2 bit 1 */ 00123 SBIT(P2_0, 0xA0, 0); /* Port 2 bit 0 */ 00124 SFR(IEN0, 0xA8); /* Interrupt enable 0 */ 00125 SBIT(EA, 0xA8, 7); /* All interrupts - enable/disable */ 00126 SBIT(STIE, 0xA8, 5); /* Sleep Timer interrupt enable */ 00127 SBIT(ENCIE, 0xA8, 4); /* AES encryption/decryption interrupt enable */ 00128 SBIT(URX1IE, 0xA8, 3); /* USART1 RX interrupt enable */ 00129 SBIT(URX0IE, 0xA8, 2); /* USART0 RX interrupt enable */ 00130 SBIT(ADCIE, 0xA8, 1); /* ADC interrupt enable */ 00131 SBIT(RFERRIE, 0xA8, 0); /* RF TXFIFO/RXFIFO interrupt enable */ 00132 SFR(IP0, 0xA9); /* Interrupt priority 0 */ 00133 SFR(IEN1, 0xB8); /* Interrupt enable 1 */ 00134 SBIT(P0IE, 0xB8, 5); /* Port 0 interrupt enable */ 00135 SBIT(T4IE, 0xB8, 4); /* Timer 4 interrupt enable */ 00136 SBIT(T3IE, 0xB8, 3); /* Timer 3 interrupt enable */ 00137 SBIT(T2IE, 0xB8, 2); /* Timer 2 interrupt enable */ 00138 SBIT(T1IE, 0xB8, 1); /* Timer 1 interrupt enable */ 00139 SBIT(DMAIE, 0xB8, 0); /* DMA Transfer interrupt enable */ 00140 SFR(IP1, 0xB9); /* Interrupt priority 1 */ 00141 SFR(IRCON, 0xC0); /* Interrupt flags 4 */ 00142 SBIT(STIF, 0xC0, 7); /* Sleep Timer interrupt flag */ 00143 SBIT(P0IF, 0xC0, 5); /* Port 0 interrupt flag */ 00144 SBIT(T4IF, 0xC0, 4); /* Timer 4 interrupt flag */ 00145 SBIT(T3IF, 0xC0, 3); /* Timer 3 interrupt flag */ 00146 SBIT(T2IF, 0xC0, 2); /* Timer 2 interrupt flag */ 00147 SBIT(T1IF, 0xC0, 1); /* Timer 1 interrupt flag */ 00148 SBIT(DMAIF, 0xC0, 0); /* DMA-complete interrupt flag */ 00149 SFR(PSW, 0xD0); /* Program status word */ 00150 SBIT(CY, 0xD0, 7); /* Carry flag */ 00151 SBIT(AC, 0xD0, 6); /* Auxiliary carry flag */ 00152 SBIT(F0, 0xD0, 5); /* User-defined flag 1, bit addressable */ 00153 SBIT(RS1, 0xD0, 4); /* Register bank select, bit 1 */ 00154 SBIT(RS0, 0xD0, 3); /* Register bank select, bit 0 */ 00155 SBIT(OV, 0xD0, 2); /* Overflow flag */ 00156 SBIT(F1, 0xD0, 1); /* User-defined flag 0, bit addressable */ 00157 SBIT(P, 0xD0, 0); /* Parity flag */ 00158 SFR(ACC, 0xE0); /* Accumulator */ 00159 SBIT(ACC_7, 0xE0, 7); /* Accumulator bit 7 */ 00160 SBIT(ACC_6, 0xE0, 6); /* Accumulator bit 6 */ 00161 SBIT(ACC_5, 0xE0, 5); /* Accumulator bit 5 */ 00162 SBIT(ACC_4, 0xE0, 4); /* Accumulator bit 4 */ 00163 SBIT(ACC_3, 0xE0, 3); /* Accumulator bit 3 */ 00164 SBIT(ACC_2, 0xE0, 2); /* Accumulator bit 2 */ 00165 SBIT(ACC_1, 0xE0, 1); /* Accumulator bit 1 */ 00166 SBIT(ACC_0, 0xE0, 0); /* Accumulator bit 0 */ 00167 SFR(IRCON2, 0xE8); /* Interrupt flags 5 */ 00168 SBIT(WDTIF, 0xE8, 4); /* Watchdog Timer interrupt flag */ 00169 SBIT(P1IF, 0xE8, 3); /* Port 1 Interrupt flag */ 00170 SBIT(UTX1IF, 0xE8, 2); /* USART1 TX interrupt flag */ 00171 SBIT(UTX0IF, 0xE8, 1); /* USART0 TX interrupt flag */ 00172 SBIT(P2IF, 0xE8, 0); /* Port 2 interrupt flag */ 00173 SFR(B, 0xF0); /* B Register */ 00174 SBIT(B_7, 0xF0, 7); /* Register B bit 7 */ 00175 SBIT(B_6, 0xF0, 6); /* Register B bit 6 */ 00176 SBIT(B_5, 0xF0, 5); /* Register B bit 5 */ 00177 SBIT(B_4, 0xF0, 4); /* Register B bit 4 */ 00178 SBIT(B_3, 0xF0, 3); /* Register B bit 3 */ 00179 SBIT(B_2, 0xF0, 2); /* Register B bit 2 */ 00180 SBIT(B_1, 0xF0, 1); /* Register B bit 1 */ 00181 SBIT(B_0, 0xF0, 0); /* Register B bit 0 */ 00182 00183 /* ADC */ 00184 SFR(ADCCON1, 0xB4); /* ADC control 1 */ 00185 SFR(ADCCON2, 0xB5); /* ADC control 2 */ 00186 SFR(ADCCON3, 0xB6); /* ADC control 3 */ 00187 SFR(ADCL, 0xBA); /* ADC data low */ 00188 SFR(ADCH, 0xBB); /* ADC data high */ 00189 SFR(RNDL, 0xBC); /* Random number generator data low */ 00190 SFR(RNDH, 0xBD); /* Random number generator data high */ 00191 00192 /* AES Coprocessor */ 00193 SFR(ENCDI, 0xB1); /* Encryption/decryption input data */ 00194 SFR(ENCDO, 0xB2); /* Encryption/decryption output data */ 00195 SFR(ENCCS, 0xB3); /* Encryption/decryption control and status */ 00196 00197 /* DMA Controller */ 00198 SFR(DMAIRQ, 0xD1); /* DMA interrupt flag */ 00199 SFR(DMA1CFGL, 0xD2); /* DMA channel 1–4 configuration address low */ 00200 SFR(DMA1CFGH, 0xD3); /* DMA channel 1–4 configuration address high */ 00201 SFR(DMA0CFGL, 0xD4); /* DMA channel 0 configuration address low */ 00202 SFR(DMA0CFGH, 0xD5); /* DMA channel 0 configuration address high */ 00203 SFR(DMAARM, 0xD6); /* DMA channel armed */ 00204 SFR(DMAREQ, 0xD7); /* DMA channel start request and status */ 00205 00206 /* I/O */ 00207 SFR(P0IFG, 0x89); /* Port 0 interrupt status flag */ 00208 SFR(P1IFG, 0x8A); /* Port 1 interrupt status flag */ 00209 SFR(P2IFG, 0x8B); /* Port 2 interrupt status flag */ 00210 SFR(PICTL, 0x8C); /* Port pins interrupt mask and edge */ 00211 SFR(P0IEN, 0xAB); /* Port 0 interrupt mask */ 00212 SFR(P1IEN, 0x8D); /* Port 1 interrupt mask */ 00213 SFR(P2IEN, 0xAC); /* Port 2 interrupt mask */ 00214 SFR(P0INP, 0x8F); /* Port 0 input Mode */ 00215 SFR(PERCFG, 0xF1); /* Peripheral I/O control */ 00216 SFR(APCFG, 0xF2); /* Analog peripheral I/O configuration */ 00217 SFR(P0SEL, 0xF3); /* Port 0 function select */ 00218 SFR(P1SEL, 0xF4); /* Port 1 function select */ 00219 SFR(P2SEL, 0xF5); /* Port 2 function select */ 00220 SFR(P1INP, 0xF6); /* Port 1 input mode */ 00221 SFR(P2INP, 0xF7); /* Port 2 input mode */ 00222 SFR(P0DIR, 0xFD); /* Port 0 direction */ 00223 SFR(P1DIR, 0xFE); /* Port 1 direction */ 00224 SFR(P2DIR, 0xFF); /* Port 2 direction */ 00225 SFR(PMUX, 0xAE); /* Power-down signal mux */ 00226 00227 /* Memory */ 00228 SFR(MPAGE, 0x93); /* Memory page select */ 00229 SFR(_XPAGE, 0x93); /* Memory page select - SDCC name */ 00230 SFR(MEMCTR, 0xC7); /* Memory system control */ 00231 SFR(FMAP, 0x9F); /* Flash-memory bank mapping */ 00232 SFR(PSBANK, 0x9F); /* Flash-memory bank mapping - SDCC name */ 00233 00234 /* RF */ 00235 SFR(RFIRQF1, 0x91); /* RF interrupt flags MSB */ 00236 SFR(RFD, 0xD9); /* RF data */ 00237 SFR(RFST, 0xE1); /* RF command strobe */ 00238 SFR(RFIRQF0, 0xE9); /* RF interrupt flags LSB */ 00239 SFR(RFERRF, 0xBF); /* RF error interrupt flags */ 00240 00241 /* Sleep Timer */ 00242 SFR(ST0, 0x95); /* Sleep Timer 0 */ 00243 SFR(ST1, 0x96); /* Sleep Timer 1 */ 00244 SFR(ST2, 0x97); /* Sleep Timer 2 */ 00245 SFR(STLOAD, 0xAD); /* Sleep-timer load status */ 00246 SFR(SLEEPCMD, 0xBE); /* Sleep-mode control command */ 00247 SFR(SLEEPSTA, 0x9D); /* Sleep-mode control status */ 00248 00249 /* Power Management and Clocks */ 00250 SFR(CLKCONCMD, 0xC6); /* Clock control command */ 00251 SFR(CLKCONSTA, 0x9E); /* Clock control status */ 00252 00253 /* Timer 1 */ 00254 SFR(T1CC0L, 0xDA); /* Timer 1 channel 0 capture/compare value low */ 00255 SFR(T1CC0H, 0xDB); /* Timer 1 channel 0 capture/compare value high */ 00256 SFR(T1CC1L, 0xDC); /* Timer 1 channel 1 capture/compare value low */ 00257 SFR(T1CC1H, 0xDD); /* Timer 1 channel 1 capture/compare value high */ 00258 SFR(T1CC2L, 0xDE); /* Timer 1 channel 2 capture/compare value low */ 00259 SFR(T1CC2H, 0xDF); /* Timer 1 channel 2 capture/compare value high */ 00260 SFR(T1CNTL, 0xE2); /* Timer 1 counter low */ 00261 SFR(T1CNTH, 0xE3); /* Timer 1 counter high */ 00262 SFR(T1CTL, 0xE4); /* Timer 1 control and status */ 00263 SFR(T1CCTL0, 0xE5); /* Timer 1 channel 0 capture/compare control */ 00264 SFR(T1CCTL1, 0xE6); /* Timer 1 channel 1 capture/compare control */ 00265 SFR(T1CCTL2, 0xE7); /* Timer 1 channel 2 capture/compare control */ 00266 SFR(T1STAT, 0xAF); /* Timer 1 status */ 00267 00268 /* Timer 2 (MAC Timer) */ 00269 SFR(T2CTRL, 0x94); /* Timer 2 control */ 00270 SFR(T2EVTCFG, 0x9C); /* Timer 2 event configuration */ 00271 SFR(T2IRQF, 0xA1); /* Timer 2 interrupt flags */ 00272 SFR(T2M0, 0xA2); /* Timer 2 multiplexed register 0 */ 00273 SFR(T2M1, 0xA3); /* Timer 2 multiplexed register 1 */ 00274 SFR(T2MOVF0, 0xA4); /* Timer 2 multiplexed overflow register 0 */ 00275 SFR(T2MOVF1, 0xA5); /* Timer 2 multiplexed overflow register 1 */ 00276 SFR(T2MOVF2, 0xA6); /* Timer 2 multiplexed overflow register 2 */ 00277 SFR(T2IRQM, 0xA7); /* Timer 2 interrupt mask */ 00278 SFR(T2MSEL, 0xC3); /* Timer 2 multiplex select */ 00279 00280 /* Timer 3 */ 00281 SFR(T3CNT, 0xCA); /* Timer 3 counter */ 00282 SFR(T3CTL, 0xCB); /* Timer 3 control */ 00283 SFR(T3CCTL0, 0xCC); /* Timer 3 channel 0 compare control */ 00284 SFR(T3CC0, 0xCD); /* Timer 3 channel 0 compare value */ 00285 SFR(T3CCTL1, 0xCE); /* Timer 3 channel 1 compare control */ 00286 SFR(T3CC1, 0xCF); /* Timer 3 channel 1 compare value */ 00287 00288 /* Timer 4 */ 00289 SFR(T4CNT, 0xEA); /* Timer 4 counter */ 00290 SFR(T4CTL, 0xEB); /* Timer 4 control */ 00291 SFR(T4CCTL0, 0xEC); /* Timer 4 channel 0 compare control */ 00292 SFR(T4CC0, 0xED); /* Timer 4 channel 0 compare value */ 00293 SFR(T4CCTL1, 0xEE); /* Timer 4 channel 1 compare control */ 00294 SFR(T4CC1, 0xEF); /* Timer 4 channel 1 compare value */ 00295 00296 /* Timer 1, 3, 4 join Interrupts */ 00297 SFR(TIMIF, 0xD8); /* Timers 1/3/4 joint interrupt mask/flags */ 00298 SBIT(OVFIM, 0xD8, 6); /* Timer 1 overflow interrupt mask */ 00299 SBIT(T4CH1IF, 0xD8, 5); /* Timer 4 channel 1 interrupt flag */ 00300 SBIT(T4CH0IF, 0xD8, 4); /* Timer 4 channel 0 interrupt flag */ 00301 SBIT(T4OVFIF, 0xD8, 3); /* Timer 4 overflow interrupt flag */ 00302 SBIT(T3CH1IF, 0xD8, 2); /* Timer 3 channel 1 interrupt flag */ 00303 SBIT(T3CH0IF, 0xD8, 1); /* Timer 3 channel 0 interrupt flag */ 00304 SBIT(T3OVFIF, 0xD8, 0); /* Timer 3 overflow interrupt flag */ 00305 00306 /* USART 0 */ 00307 SFR(U0CSR, 0x86); /* USART 0 control and status */ 00308 SFR(U0DBUF, 0xC1); /* USART 0 receive/transmit data buffer */ 00309 SFR(U0BAUD, 0xC2); /* USART 0 baud-rate control */ 00310 SFR(U0UCR, 0xC4); /* USART 0 UART control */ 00311 SFR(U0GCR, 0xC5); /* USART 0 generic control */ 00312 00313 /* USART 1 */ 00314 SFR(U1CSR, 0xF8); /* USART 1 control and status */ 00315 SBIT(MODE, 0xF8, 7); /* USART mode select */ 00316 SBIT(RE, 0xF8, 6); /* UART receiver enable */ 00317 SBIT(SLAVE, 0xF8, 5); /* SPI master- or slave mode select */ 00318 SBIT(FE, 0xF8, 4); /* UART framing error status */ 00319 SBIT(ERR, 0xF8, 3); /* UART parity error status */ 00320 SBIT(RX_BYTE, 0xF8, 2); /* Receive byte status */ 00321 SBIT(TX_BYTE, 0xF8, 1); /* Transmit byte status */ 00322 SBIT(ACTIVE, 0xF8, 0); /* USART transmit/receive active status */ 00323 SFR(U1DBUF, 0xF9); /* USART 1 receive/transmit data buffer */ 00324 SFR(U1BAUD, 0xFA); /* USART 1 baud-rate control */ 00325 SFR(U1UCR, 0xFB); /* USART 1 UART control */ 00326 SFR(U1GCR, 0xFC); /* USART 1 Generic control */ 00327 00328 /* Watchdog Timer */ 00329 SFR(WDCTL, 0xC9); /* Watchdog Timer Control */ 00330 /*--------------------------------------------------------------------------- 00331 * XREG Registers (0x6000–0x63FF), excluding RF and USB registers 00332 * (Table 2.2, page 31) 00333 *---------------------------------------------------------------------------*/ 00334 SFRX(MONMUX , 0x61A6); /* Operational amplifier mode control (cc2530/31) */ 00335 SFRX(OPAMPMC, 0x61A6); /* Battery monitor MUX (cc2533) */ 00336 /* I2C registers - cc2533 only */ 00337 SFRX(I2CCFG, 0x6230); /* I2C control */ 00338 SFRX(I2CSTAT, 0x6231); /* I2C status */ 00339 SFRX(I2CDATA, 0x6232); /* I2C data */ 00340 SFRX(I2CADDR, 0x6233); /* I2C own slave address */ 00341 SFRX(I2CWC, 0x6234); /* Wrapper Control */ 00342 SFRX(I2CIO, 0x6235); /* GPIO */ 00343 /* End I2C registers */ 00344 SFRX(OBSSEL0, 0x6243); /* Observation output control - register 0 */ 00345 SFRX(OBSSEL1, 0x6244); /* Observation output control - register 1 */ 00346 SFRX(OBSSEL2, 0x6245); /* Observation output control - register 2 */ 00347 SFRX(OBSSEL3, 0x6246); /* Observation output control - register 3 */ 00348 SFRX(OBSSEL4, 0x6247); /* Observation output control - register 4 */ 00349 SFRX(OBSSEL5, 0x6248); /* Observation output control - register 5 */ 00350 SFRX(CHVER, 0x6249); /* Chip version */ 00351 SFRX(CHIPID, 0x624A); /* Chip identification */ 00352 00353 /* TR0 below is renamed to TESTREG0 to avoid namespace conflicts with the 00354 * bit-addressable TCON.TR0 on the default 8051. See SDCC bug 3513300 */ 00355 SFRX(TESTREG0, 0x624B); /* Test register 0 */ 00356 00357 SFRX(DBGDATA, 0x6260); /* Debug interface write data */ 00358 SFRX(SRCRC, 0x6262); /* Sleep reset CRC */ 00359 SFRX(BATTMON, 0x6264); /* Battery monitor */ 00360 SFRX(IVCTRL, 0x6265); /* Analog control register */ 00361 SFRX(FCTL, 0x6270); /* Flash control */ 00362 SFRX(FADDRL, 0x6271); /* Flash address low */ 00363 SFRX(FADDRH, 0x6272); /* Flash address high */ 00364 SFRX(FWDATA, 0x6273); /* Flash write data */ 00365 SFRX(CHIPINFO0, 0x6276); /* Chip information byte 0 */ 00366 SFRX(CHIPINFO1, 0x6277); /* Chip information byte 1 */ 00367 SFRX(IRCTL, 0x6281); /* Timer 1 IR generation control */ 00368 SFRX(CLD, 0x6290); /* Clock-loss detection */ 00369 SFRX(XX_T1CCTL0, 0x62A0); /* Timer 1 channel 0 capture/compare control (additional XREG mapping of SFR) */ 00370 SFRX(XX_T1CCTL1, 0x62A1); /* Timer 1 channel 1 capture/compare control (additional XREG mapping of SFR register) */ 00371 SFRX(XX_T1CCTL2, 0x62A2); /* Timer 1 channel 2 capture/compare control (additional XREG mapping of SFR register) */ 00372 SFRX(T1CCTL3, 0x62A3); /* Timer 1 channel 3 capture/compare control */ 00373 SFRX(T1CCTL4, 0x62A4); /* Timer 1 channel 4 capture/compare control */ 00374 SFRX(XX_T1CC0L, 0x62A6); /* Timer 1 channel 0 capture/compare value low (additional XREG mapping of SFR register) */ 00375 SFRX(XX_T1CC0H, 0x62A7); /* Timer 1 channel 0 capture/compare value high (additional XREG mapping of SFR register) */ 00376 SFRX(XX_T1CC1L, 0x62A8); /* Timer 1 channel 1 capture/compare value low (additional XREG mapping of SFR register) */ 00377 SFRX(XX_T1CC1H, 0x62A9); /* Timer 1 channel 1 capture/compare value high (additional XREG mapping of SFR register) */ 00378 SFRX(XX_T1CC2L, 0x62AA); /* Timer 1 channel 2 capture/compare value low (additional XREG mapping of SFR register) */ 00379 SFRX(XX_T1CC2H, 0x62AB); /* Timer 1 channel 2 capture/compare value high (additional XREG mapping of SFR register) */ 00380 SFRX(T1CC3L, 0x62AC); /* Timer 1 channel 3 capture/compare value low */ 00381 SFRX(T1CC3H, 0x62AD); /* Timer 1 channel 3 capture/compare value high */ 00382 SFRX(T1CC4L, 0x62AE); /* Timer 1 channel 4 capture/compare value low */ 00383 SFRX(T1CC4H, 0x62AF); /* Timer 1 channel 4 capture/compare value high */ 00384 SFRX(STCC, 0x62B0); /* Sleep Timer capture control */ 00385 SFRX(STCS, 0x62B1); /* Sleep Timer capture status */ 00386 SFRX(STCV0, 0x62B2); /* Sleep Timer capture value byte 0 */ 00387 SFRX(STCV1, 0x62B3); /* Sleep Timer capture value byte 1 */ 00388 SFRX(STCV2, 0x62B4); /* Sleep Timer capture value byte 2 */ 00389 SFRX(OPAMPC, 0x62C0); /* Operational amplifier control */ 00390 SFRX(OPAMPS, 0x62C1); /* Operational amplifier status */ 00391 SFRX(CMPCTL, 0x62D0); /* Analog comparator control and status */ 00392 /*--------------------------------------------------------------------------- 00393 * Radio Registers 00394 * (Sec. 23, page 211) 00395 *---------------------------------------------------------------------------*/ 00396 SFRX(RFCORE_RAM, 0x6000); /* RF Core Memory Map (0x6000 to 0x0617F) */ 00397 SFRX(RXFIFO, 0x6000); /* TXFIFO Direct Access (0x6000 to 0x607F) */ 00398 SFRX(TXFIFO, 0x6080); /* TXFIFO Direct Access (0x6080 to 0x60FF) */ 00399 00400 SFRX(SRC_ADDR_TABLE, 0x6100); /* Source Address Table Start */ 00401 00402 /* Source Address Matching Result */ 00403 SFRX(SRCRESMASK0, 0x6160); /* Extended address matching */ 00404 SFRX(SRCRESMASK1, 0x6161); /* Short address matching */ 00405 SFRX(SRCRESMASK2, 0x6162); /* Source address match - 24-bit mask */ 00406 SFRX(SRCRESINDEX, 0x6163); /* Bit index of least-significant 1 in SRCRESMASK */ 00407 00408 /* Source Address Matching Control */ 00409 SFRX(SRCEXTPENDEN0, 0x6164); /* Ext. Address bit-mask 0 (LSB) */ 00410 SFRX(SRCEXTPENDEN1, 0x6165); /* Ext. Address bit-mask 1 */ 00411 SFRX(SRCEXTPENDEN2, 0x6166); /* Ext. Address bit-mask 2 (MSB) */ 00412 SFRX(SRCSHORTPENDEN0, 0x6167); /* Short Address bit-mask 0 (LSB) */ 00413 SFRX(SRCSHORTPENDEN1, 0x6168); /* Short Address bit-mask 1 */ 00414 SFRX(SRCSHORTPENDEN2, 0x6169); /* Short Address bit-mask 2 (MSB) */ 00415 00416 /* Local Address Information (used during destination address filtering) */ 00417 SFRX(EXT_ADDR0, 0x616A); /* IEEE extended address 0 */ 00418 SFRX(EXT_ADDR1, 0x616B); /* IEEE extended address 1 */ 00419 SFRX(EXT_ADDR2, 0x616C); /* IEEE extended address 2 */ 00420 SFRX(EXT_ADDR3, 0x616D); /* IEEE extended address 3 */ 00421 SFRX(EXT_ADDR4, 0x616E); /* IEEE extended address 4 */ 00422 SFRX(EXT_ADDR5, 0x616F); /* IEEE extended address 5 */ 00423 SFRX(EXT_ADDR6, 0x6170); /* IEEE extended address 6 */ 00424 SFRX(EXT_ADDR7, 0x6171); /* IEEE extended address 7 */ 00425 SFRX(PAN_ID0, 0x6172); /* PAN ID 0 */ 00426 SFRX(PAN_ID1, 0x6173); /* PAN ID 1 */ 00427 SFRX(SHORT_ADDR0, 0x6174); /* Short Address 0 */ 00428 SFRX(SHORT_ADDR1, 0x6175); /* Short Address 1 */ 00429 00430 SFRX(FRMFILT0, 0x6180); /* Frame Filtering 0 */ 00431 SFRX(FRMFILT1, 0x6181); /* Frame Filtering 1 */ 00432 SFRX(SRCMATCH, 0x6182); /* Source Address Matching and Pending Bits */ 00433 SFRX(SRCSHORTEN0, 0x6183); /* Short Address Matching 0 */ 00434 SFRX(SRCSHORTEN1, 0x6184); /* Short Address Matching 1 */ 00435 SFRX(SRCSHORTEN2, 0x6185); /* Short Address Matching 2 */ 00436 SFRX(SRCEXTEN0, 0x6186); /* Extended Address Matching 0 */ 00437 SFRX(SRCEXTEN1, 0x6187); /* Extended Address Matching 1 */ 00438 SFRX(SRCEXTEN2, 0x6188); /* Extended Address Matching 2 */ 00439 SFRX(FRMCTRL0, 0x6189); /* Frame Handling */ 00440 SFRX(FRMCTRL1, 0x618A); /* Frame Handling */ 00441 SFRX(RXENABLE, 0x618B); /* RX Enabling */ 00442 SFRX(RXMASKSET, 0x618C); /* RX Enabling */ 00443 SFRX(RXMASKCLR, 0x618D); /* RX Disabling */ 00444 SFRX(FREQTUNE, 0x618E); /* Crystal Oscillator Frequency Tuning */ 00445 SFRX(FREQCTRL, 0x618F); /* RF Frequency Control */ 00446 SFRX(TXPOWER, 0x6190); /* Controls the Output Power */ 00447 SFRX(TXCTRL, 0x6191); /* Controls the TX Settings */ 00448 SFRX(FSMSTAT0, 0x6192); /* Radio Status Register */ 00449 SFRX(FSMSTAT1, 0x6193); /* Radio Status Register */ 00450 SFRX(FIFOPCTRL, 0x6194); /* FIFOP Threshold */ 00451 SFRX(FSMCTRL, 0x6195); /* FSM Options */ 00452 SFRX(CCACTRL0, 0x6196); /* CCA Threshold */ 00453 SFRX(CCACTRL1, 0x6197); /* Other CCA Options */ 00454 SFRX(RSSI, 0x6198); /* RSSI Status Register */ 00455 SFRX(RSSISTAT, 0x6199); /* RSSI Valid Status Register */ 00456 SFRX(RXFIRST, 0x619A); /* First Byte in RXFIFO */ 00457 SFRX(RXFIFOCNT, 0x619B); /* Number of Bytes in RXFIFO */ 00458 SFRX(TXFIFOCNT, 0x619C); /* Number of Bytes in TXFIFO */ 00459 SFRX(RXFIRST_PTR, 0x619D); /* RXFIFO Pointer */ 00460 SFRX(RXLAST_PTR, 0x619E); /* RXFIFO Pointer */ 00461 SFRX(RXP1_PTR, 0x619F); /* RXFIFO Pointer */ 00462 SFRX(TXFIRST_PTR, 0x61A1); /* TXFIFO Pointer */ 00463 SFRX(TXLAST_PTR, 0x61A2); /* TXFIFO Pointer */ 00464 SFRX(RFIRQM0, 0x61A3); /* RF Interrupt Masks 0 */ 00465 SFRX(RFIRQM1, 0x61A4); /* RF Interrupt Masks 1 */ 00466 SFRX(RFERRM, 0x61A5); /* RF Error Interrupt Mask */ 00467 SFRX(RFRND, 0x61A7); /* Random Data */ 00468 SFRX(MDMCTRL0, 0x61A8); /* Controls Modem 0 */ 00469 SFRX(MDMCTRL1, 0x61A9); /* Controls Modem 1 */ 00470 SFRX(FREQEST, 0x61AA); /* Estimated RF Frequency Offset */ 00471 SFRX(RXCTRL, 0x61AB); /* Tune Receive Section */ 00472 SFRX(FSCTRL, 0x61AC); /* Tune Frequency Synthesizer */ 00473 SFRX(FSCAL0, 0x61AD); /* Tune Frequency Calibration 0 */ 00474 SFRX(FSCAL1, 0x61AE); /* Tune Frequency Calibration 1 */ 00475 SFRX(FSCAL2, 0x61AF); /* Tune Frequency Calibration 2 */ 00476 SFRX(FSCAL3, 0x61B0); /* Tune Frequency Calibration 3 */ 00477 SFRX(AGCCTRL0, 0x61B1); /* AGC Dynamic Range Control */ 00478 SFRX(AGCCTRL1, 0x61B2); /* AGC Reference Level */ 00479 SFRX(AGCCTRL2, 0x61B3); /* AGC Gain Override */ 00480 SFRX(AGCCTRL3, 0x61B4); /* AGC Control */ 00481 SFRX(ADCTEST0, 0x61B5); /* ADC Tuning 0 */ 00482 SFRX(ADCTEST1, 0x61B6); /* ADC Tuning 1 */ 00483 SFRX(ADCTEST2, 0x61B7); /* ADC Tuning 2 */ 00484 SFRX(MDMTEST0, 0x61B8); /* Test Register for Modem 0 */ 00485 SFRX(MDMTEST1, 0x61B9); /* Test Register for Modem 1 */ 00486 SFRX(DACTEST0, 0x61BA); /* DAC Override Value */ 00487 SFRX(DACTEST1, 0x61BB); /* DAC Override Value */ 00488 SFRX(DACTEST2, 0x61BC); /* DAC Test Setting */ 00489 SFRX(ATEST, 0x61BD); /* Analog Test Control */ 00490 SFRX(PTEST0, 0x61BE); /* Override Power-Down Register 0 */ 00491 SFRX(PTEST1, 0x61BF); /* Override Power-Down Register 1 */ 00492 SFRX(TXFILTCFG, 0x61FA); /* TX Filter Configuration */ 00493 SFRX(RFC_OBS_CTRL0, 0x61EB); /* RF Observation Mux Control 0 */ 00494 SFRX(RFC_OBS_CTRL1, 0x61EC); /* RF Observation Mux Control 1 */ 00495 SFRX(RFC_OBS_CTRL2, 0x61ED); /* RF Observation Mux Control 2 */ 00496 00497 /* Command Strobe/CSMA-CA Processor Registers */ 00498 SFRX(CSPPROG0, 0x61C0); /* CSP Program Memory, Byte 0 */ 00499 SFRX(CSPPROG1, 0x61C1); /* CSP Program Memory, Byte 1 */ 00500 SFRX(CSPPROG2, 0x61C2); /* CSP Program Memory, Byte 2 */ 00501 SFRX(CSPPROG3, 0x61C3); /* CSP Program Memory, Byte 3 */ 00502 SFRX(CSPPROG4, 0x61C4); /* CSP Program Memory, Byte 4 */ 00503 SFRX(CSPPROG5, 0x61C5); /* CSP Program Memory, Byte 5 */ 00504 SFRX(CSPPROG6, 0x61C6); /* CSP Program Memory, Byte 6 */ 00505 SFRX(CSPPROG7, 0x61C7); /* CSP Program Memory, Byte 7 */ 00506 SFRX(CSPPROG8, 0x61C8); /* CSP Program Memory, Byte 8 */ 00507 SFRX(CSPPROG9, 0x61C9); /* CSP Program Memory, Byte 9 */ 00508 SFRX(CSPPROG10, 0x61CA); /* CSP Program Memory, Byte 10 */ 00509 SFRX(CSPPROG11, 0x61CB); /* CSP Program Memory, Byte 11 */ 00510 SFRX(CSPPROG12, 0x61CC); /* CSP Program Memory, Byte 12 */ 00511 SFRX(CSPPROG13, 0x61CD); /* CSP Program Memory, Byte 13 */ 00512 SFRX(CSPPROG14, 0x61CE); /* CSP Program Memory, Byte 14 */ 00513 SFRX(CSPPROG15, 0x61CF); /* CSP Program Memory, Byte 15 */ 00514 SFRX(CSPPROG16, 0x61D0); /* CSP Program Memory, Byte 16 */ 00515 SFRX(CSPPROG17, 0x61D1); /* CSP Program Memory, Byte 17 */ 00516 SFRX(CSPPROG18, 0x61D2); /* CSP Program Memory, Byte 18 */ 00517 SFRX(CSPPROG19, 0x61D3); /* CSP Program Memory, Byte 19 */ 00518 SFRX(CSPPROG20, 0x61D4); /* CSP Program Memory, Byte 20 */ 00519 SFRX(CSPPROG21, 0x61D5); /* CSP Program Memory, Byte 21 */ 00520 SFRX(CSPPROG22, 0x61D6); /* CSP Program Memory, Byte 22 */ 00521 SFRX(CSPPROG23, 0x61D7); /* CSP Program Memory, Byte 23 */ 00522 SFRX(CSPCTRL, 0x61E0); /* CSP Control Bit */ 00523 SFRX(CSPSTAT, 0x61E1); /* CSP Status Register */ 00524 SFRX(CSPX, 0x61E2); /* CSP X Register */ 00525 SFRX(CSPY, 0x61E3); /* CSP Y Register */ 00526 SFRX(CSPZ, 0x61E4); /* CSP Z Register */ 00527 SFRX(CSPT, 0x61E5); /* CSP T Register */ 00528 /*--------------------------------------------------------------------------- 00529 * cc2531 USB Registers 00530 * (Sec. 21.12, page 196) 00531 *---------------------------------------------------------------------------*/ 00532 SFRX(USBADDR, 0x6200); /* Function Address */ 00533 SFRX(USBPOW, 0x6201); /* Power/Control Register */ 00534 SFRX(USBIIF, 0x6202); /* IN Endpoints and EP0 Interrupt Flags */ 00535 SFRX(USBOIF, 0x6204); /* OUT-Endpoint Interrupt Flags */ 00536 SFRX(USBCIF, 0x6206); /* Common USB Interrupt Flags */ 00537 SFRX(USBIIE, 0x6207); /* IN Endpoints and EP0 Interrupt-Enable Mask */ 00538 SFRX(USBOIE, 0x6209); /* Out Endpoints Interrupt Enable Mask */ 00539 SFRX(USBCIE, 0x620B); /* Common USB Interrupt-Enable Mask */ 00540 SFRX(USBFRML, 0x620C); /* Current Frame Number (Low Byte) */ 00541 SFRX(USBFRMH, 0x620D); /* Current Frame Number (High Byte) */ 00542 SFRX(USBINDEX, 0x620E); /* Current-Endpoint Index Register */ 00543 SFRX(USBCTRL, 0x620F); /* USB Control Register */ 00544 SFRX(USBMAXI, 0x6210); /* Max. Packet Size for IN Endpoint{1–5} */ 00545 SFRX(USBCS0, 0x6211); /* EP0 Control and Status (USBINDEX = 0) */ 00546 SFRX(USBCSIL, 0x6211); /* IN EP{1–5} Control and Status, Low */ 00547 SFRX(USBCSIH, 0x6212); /* IN EP{1–5} Control and Status, High */ 00548 SFRX(USBMAXO, 0x6213); /* Max. Packet Size for OUT EP{1–5} */ 00549 SFRX(USBCSOL, 0x6214); /* OUT EP{1–5} Control and Status, Low */ 00550 SFRX(USBCSOH, 0x6215); /* OUT EP{1–5} Control and Status, High */ 00551 SFRX(USBCNT0, 0x6216); /* Number of Received Bytes in EP0 FIFO (USBINDEX = 0) */ 00552 SFRX(USBCNTL, 0x6216); /* Number of Bytes in EP{1–5} OUT FIFO, Low */ 00553 SFRX(USBCNTH, 0x6217); /* Number of Bytes in EP{1–5} OUT FIFO, High */ 00554 SFRX(USBF0, 0x6220); /* Endpoint-0 FIFO */ 00555 SFRX(USBF1, 0x6222); /* Endpoint-1 FIFO */ 00556 SFRX(USBF2, 0x6224); /* Endpoint-2 FIFO */ 00557 SFRX(USBF3, 0x6226); /* Endpoint-3 FIFO */ 00558 SFRX(USBF4, 0x6228); /* Endpoint-4 FIFO */ 00559 SFRX(USBF5, 0x622A); /* Endpoint-5 FIFO */ 00560 /*--------------------------------------------------------------------------- 00561 * SFR Access via XDATA (0x7080 - 0x70FF) 00562 *---------------------------------------------------------------------------*/ 00563 SFRX(X_P0, 0x7080); /* Port 0 - Read Only */ 00564 SFRX(X_U0CSR, 0x7086); /* USART 0 control and status */ 00565 SFRX(X_P0IFG, 0x7089); /* Port 0 interrupt status flag */ 00566 SFRX(X_P1IFG, 0x708A); /* Port 1 interrupt status flag */ 00567 SFRX(X_P2IFG, 0x708B); /* Port 2 interrupt status flag */ 00568 SFRX(X_PICTL, 0x708C); /* Port pins interrupt mask and edge */ 00569 SFRX(X_P1IEN, 0x708D); /* Port 1 interrupt mask */ 00570 SFRX(X_P0INP, 0x708F); /* Port 0 input Mode */ 00571 SFRX(X_P1, 0x7090); /* Port 1 - Read Only */ 00572 SFRX(X_RFIRQF1, 0x7091); /* RF interrupt flags MSB */ 00573 SFRX(X_MPAGE, 0x7093); /* Memory page select */ 00574 SFRX(X__XPAGE, 0x7093); /* Memory page select - SDCC name */ 00575 SFRX(X_T2CTRL, 0x7094); /* Timer 2 control */ 00576 SFRX(X_ST0, 0x7095); /* Sleep Timer 0 */ 00577 SFRX(X_ST1, 0x7096); /* Sleep Timer 1 */ 00578 SFRX(X_ST2, 0x7097); /* Sleep Timer 2 */ 00579 SFRX(X_T2EVTCFG, 0x709C); /* Timer 2 event configuration */ 00580 SFRX(X_SLEEPSTA, 0x709D); /* Sleep-mode control status */ 00581 SFRX(X_CLKCONSTA, 0x709E); /* Clock control status */ 00582 SFRX(X_FMAP, 0x709F); /* Flash-memory bank mapping */ 00583 SFRX(X_PSBANK, 0x709F); /* Flash-memory bank mapping - SDCC name */ 00584 SFRX(X_P2, 0x70A0); /* Port 2 - Read Only */ 00585 SFRX(X_T2IRQF, 0x70A1); /* Timer 2 interrupt flags */ 00586 SFRX(X_T2M0, 0x70A2); /* Timer 2 multiplexed register 0 */ 00587 SFRX(X_T2M1, 0x70A3); /* Timer 2 multiplexed register 1 */ 00588 SFRX(X_T2MOVF0, 0x70A4); /* Timer 2 multiplexed overflow register 0 */ 00589 SFRX(X_T2MOVF1, 0x70A5); /* Timer 2 multiplexed overflow register 1 */ 00590 SFRX(X_T2MOVF2, 0x70A6); /* Timer 2 multiplexed overflow register 2 */ 00591 SFRX(X_T2IRQM, 0x70A7); /* Timer 2 interrupt mask */ 00592 SFRX(X_P0IEN, 0x70AB); /* Port 0 interrupt mask */ 00593 SFRX(X_P2IEN, 0x70AC); /* Port 2 interrupt mask */ 00594 SFRX(X_STLOAD, 0x70AD); /* Sleep-timer load status */ 00595 SFRX(X_PMUX, 0x70AE); /* Power-down signal mux */ 00596 SFRX(X_T1STAT, 0x70AF); /* Timer 1 status */ 00597 SFRX(X_ENCDI, 0x70B1); /* Encryption/decryption input data */ 00598 SFRX(X_ENCDO, 0x70B2); /* Encryption/decryption output data */ 00599 SFRX(X_ENCCS, 0x70B3); /* Encryption/decryption control and status */ 00600 SFRX(X_ADCCON1, 0x70B4); /* ADC control 1 */ 00601 SFRX(X_ADCCON2, 0x70B5); /* ADC control 2 */ 00602 SFRX(X_ADCCON3, 0x70B6); /* ADC control 3 */ 00603 SFRX(X_ADCL, 0x70BA); /* ADC data low */ 00604 SFRX(X_ADCH, 0x70BB); /* ADC data high */ 00605 SFRX(X_RNDL, 0x70BC); /* Random number generator data low */ 00606 SFRX(X_RNDH, 0x70BD); /* Random number generator data high */ 00607 SFRX(X_SLEEPCMD, 0x70BE); /* Sleep-mode control command */ 00608 SFRX(X_RFERRF, 0x70BF); /* RF error interrupt flags */ 00609 SFRX(X_U0DBUF, 0x70C1); /* USART 0 receive/transmit data buffer */ 00610 SFRX(X_U0BAUD, 0x70C2); /* USART 0 baud-rate control */ 00611 SFRX(X_T2MSEL, 0x70C3); /* Timer 2 multiplex select */ 00612 SFRX(X_U0UCR, 0x70C4); /* USART 0 UART control */ 00613 SFRX(X_U0GCR, 0x70C5); /* USART 0 generic control */ 00614 SFRX(X_CLKCONCMD, 0x70C6); /* Clock control command */ 00615 SFRX(X_MEMCTR, 0x70C7); /* Memory system control */ 00616 SFRX(X_WDCTL, 0x70C9); /* Watchdog Timer Control */ 00617 SFRX(X_T3CNT, 0x70CA); /* Timer 3 counter */ 00618 SFRX(X_T3CTL, 0x70CB); /* Timer 3 control */ 00619 SFRX(X_T3CCTL0, 0x70CC); /* Timer 3 channel 0 compare control */ 00620 SFRX(X_T3CC0, 0x70CD); /* Timer 3 channel 0 compare value */ 00621 SFRX(X_T3CCTL1, 0x70CE); /* Timer 3 channel 1 compare control */ 00622 SFRX(X_T3CC1, 0x70CF); /* Timer 3 channel 1 compare value */ 00623 SFRX(X_DMAIRQ, 0x70D1); /* DMA interrupt flag */ 00624 SFRX(X_DMA1CFGL, 0x70D2); /* DMA channel 1–4 configuration address low */ 00625 SFRX(X_DMA1CFGH, 0x70D3); /* DMA channel 1–4 configuration address high */ 00626 SFRX(X_DMA0CFGL, 0x70D4); /* DMA channel 0 configuration address low */ 00627 SFRX(X_DMA0CFGH, 0x70D5); /* DMA channel 0 configuration address high */ 00628 SFRX(X_DMAARM, 0x70D6); /* DMA channel armed */ 00629 SFRX(X_DMAREQ, 0x70D7); /* DMA channel start request and status */ 00630 SFRX(X_TIMIF, 0x70D8); /* Timers 1/3/4 joint interrupt mask/flags */ 00631 SFRX(X_RFD, 0x70D9); /* RF data */ 00632 SFRX(X_T1CC0L, 0x70DA); /* Timer 1 channel 0 capture/compare value low */ 00633 SFRX(X_T1CC0H, 0x70DB); /* Timer 1 channel 0 capture/compare value high */ 00634 SFRX(X_T1CC1L, 0x70DC); /* Timer 1 channel 1 capture/compare value low */ 00635 SFRX(X_T1CC1H, 0x70DD); /* Timer 1 channel 1 capture/compare value high */ 00636 SFRX(X_T1CC2L, 0x70DE); /* Timer 1 channel 2 capture/compare value low */ 00637 SFRX(X_T1CC2H, 0x70DF); /* Timer 1 channel 2 capture/compare value high */ 00638 SFRX(X_RFST, 0x70E1); /* RF command strobe */ 00639 SFRX(X_T1CNTL, 0x70E2); /* Timer 1 counter low */ 00640 SFRX(X_T1CNTH, 0x70E3); /* Timer 1 counter high */ 00641 SFRX(X_T1CTL, 0x70E4); /* Timer 1 control and status */ 00642 SFRX(X_T1CCTL0, 0x70E5); /* Timer 1 channel 0 capture/compare control */ 00643 SFRX(X_T1CCTL1, 0x70E6); /* Timer 1 channel 1 capture/compare control */ 00644 SFRX(X_T1CCTL2, 0x70E7); /* Timer 1 channel 2 capture/compare control */ 00645 SFRX(X_RFIRQF0, 0x70E9); /* RF interrupt flags LSB */ 00646 SFRX(X_T4CNT, 0x70EA); /* Timer 4 counter */ 00647 SFRX(X_T4CTL, 0x70EB); /* Timer 4 control */ 00648 SFRX(X_T4CCTL0, 0x70EC); /* Timer 4 channel 0 compare control */ 00649 SFRX(X_T4CC0, 0x70ED); /* Timer 4 channel 0 compare value */ 00650 SFRX(X_T4CCTL1, 0x70EE); /* Timer 4 channel 1 compare control */ 00651 SFRX(X_T4CC1, 0x70EF); /* Timer 4 channel 1 compare value */ 00652 SFRX(X_PERCFG, 0x70F1); /* Peripheral I/O control */ 00653 SFRX(X_APCFG, 0x70F2); /* Analog peripheral I/O configuration */ 00654 SFRX(X_P0SEL, 0x70F3); /* Port 0 function select */ 00655 SFRX(X_P1SEL, 0x70F4); /* Port 1 function select */ 00656 SFRX(X_P2SEL, 0x70F5); /* Port 2 function select */ 00657 SFRX(X_P1INP, 0x70F6); /* Port 1 input mode */ 00658 SFRX(X_P2INP, 0x70F7); /* Port 2 input mode */ 00659 SFRX(X_U1CSR, 0x70F8); /* USART 1 control and status */ 00660 SFRX(X_U1DBUF, 0x70F9); /* USART 1 receive/transmit data buffer */ 00661 SFRX(X_U1BAUD, 0x70FA); /* USART 1 baud-rate control */ 00662 SFRX(X_U1UCR, 0x70FB); /* USART 1 UART control */ 00663 SFRX(X_U1GCR, 0x70FC); /* USART 1 Generic control */ 00664 SFRX(X_P0DIR, 0x70FD); /* Port 0 direction */ 00665 SFRX(X_P1DIR, 0x70FE); /* Port 1 direction */ 00666 SFRX(X_P2DIR, 0x70FF); /* Port 2 direction */ 00667 /*--------------------------------------------------------------------------- 00668 * Information Page (Read Only) 00669 *---------------------------------------------------------------------------*/ 00670 SFRX(X_INFOPAGE, 0x7800); /* Start of Information Page */ 00671 SFRX(X_IEEE_ADDR, 0x780C); /* Start of unique IEEE Address */ 00672 00673 #endif /* __CC253X_H__ */