CC2510-CC2511DK [TAOS]

Low-Power SoC (System-on-Chip) with MCU, Memory, 2.4 GHz RF Transceiver, and USB Controller; 低功耗的SoC (系统级芯片)与MCU,存储器, 2.4 GHz射频收发器和USB控制器
CC2510-CC2511DK
型号: CC2510-CC2511DK
厂家: TEXAS ADVANCED OPTOELECTRONIC SOLUTIONS    TEXAS ADVANCED OPTOELECTRONIC SOLUTIONS
描述:

Low-Power SoC (System-on-Chip) with MCU, Memory, 2.4 GHz RF Transceiver, and USB Controller
低功耗的SoC (系统级芯片)与MCU,存储器, 2.4 GHz射频收发器和USB控制器

存储 射频 控制器
文件: 总244页 (文件大小:2899K)
中文:  中文翻译
下载:  下载PDF数据表文档文件
CC2510Fx / CC2511Fx  
Low-Power SoC (System-on-Chip) with MCU, Memory,  
2.4 GHz RF Transceiver, and USB Controller  
Applications  
2400-2483.5 MHz ISM/SRD band systems  
Consumer electronics  
Wireless keyboard and mouse  
Wireless voice-quality audio  
RF enabled remote controls  
Wireless sports and leisure equipment  
Low power telemetry  
CC2511Fx: USB dongles  
Product Description  
The CC2510Fx/CC2511Fx is a true low-cost 2.4  
GHz system-on-chip (SoC) designed for low-  
power  
wireless  
applications.  
The  
CC2510Fx/CC2511Fx combines the excellent  
performance of the state-of-the-art RF  
transceiver CC2500 with an industry-standard  
enhanced 8051 MCU, up to 32 kB of in-system  
programmable flash memory and 4 kB of  
RAM, and many other powerful features. The  
small 6x6 mm package makes it very suited  
for applications with size limitations.  
The CC2510Fx/CC2511Fx is highly suited for  
systems where very low power consumption is  
required. This is ensured by several advanced  
low-power operating modes. The CC2511Fx  
adds a full-speed USB controller to the feature  
set of the CC2510Fx. Interfacing to a PC using  
the USB interface is quick and easy, and the  
high data rate (12 Mbps) of the USB interface  
avoids the bottlenecks of RS-232 or low-speed  
USB interfaces.  
Key Features  
Radio  
MCU, Memory, and Peripherals  
o
High-performance RF transceiver based on  
the market-leading CC2500  
o
o
o
High performance and low power 8051  
microcontroller core.  
8/16/32 kB in-system programmable flash,  
and 1/2/4 kB RAM  
o
Excellent receiver selectivity and blocking  
performance  
o
o
o
High sensitivity (-103 dBm at 2.4 kBaud)  
Programmable data rate up to 500 kBaud  
Programmable output power up to 1 dBm for  
all supported frequencies  
Full-Speed USB Controller with 1 kB USB  
FIFO (CC2511Fx )  
o
o
o
o
o
o
o
o
o
I2S interface  
7-12 bit ADC with up to eight inputs  
128-bit AES security coprocessor  
Powerful DMA functionality  
Two USARTs  
16-bit timer with DSM mode  
Three 8-bit timers  
o
o
Frequency range: 2400 – 2483.5 MHz  
Digital RSSI / LQI support  
Current Consumption  
o
Low current consumption (RX: 17.1 mA @  
2.4 kBaud, TX: 18.5 mA @ -6 dBm output  
power)  
Hardware debug support  
21 (CC2510Fx ) or 19 (CC2511Fx ) GPIO pins  
o
0.3 µA in PM3 (the operating mode with the  
lowest power consumption)  
General  
o
o
Wide supply voltage range (2.0V – 3.6V)  
Green package: RoHS compliant and no  
antimony or bromine, 6x6mm QLP36  
SWRS055D  
Page 1 of 243  
C2510Fx / CC2511Fx  
Table of Contents  
1
2
ABBREVIATIONS.................................................................................................................................... 4  
REGISTER CONVENTIONS.................................................................................................................. 5  
3
KEY FEATURES (IN MORE DETAILS) .............................................................................................. 6  
HIGH-PERFORMANCE AND LOW-POWER 8051-COMPATIBLE MICROCONTROLLER....................................... 6  
8/16/32 KB NON-VOLATILE PROGRAM MEMORY AND 1/2/4 KB DATA MEMORY......................................... 6  
FULL-SPEED USB CONTROLLER (CC2511FX )................................................................................................ 6  
I2S INTERFACE.............................................................................................................................................. 6  
HARDWARE AES ENCRYPTION/DECRYPTION............................................................................................... 6  
PERIPHERAL FEATURES ................................................................................................................................ 6  
LOW POWER ................................................................................................................................................. 6  
2.4 GHZ RADIO WITH BASEBAND MODEM ................................................................................................... 7  
3.1  
3.2  
3.3  
3.4  
3.5  
3.6  
3.7  
3.8  
4
ABSOLUTE MAXIMUM RATINGS...................................................................................................... 8  
5
5.1  
5.2  
OPERATING CONDITIONS .................................................................................................................. 8  
CC2510FX OPERATING CONDITIONS.............................................................................................................. 8  
CC2511FX OPERATING CONDITIONS .............................................................................................................. 8  
6
GENERAL CHARACTERISTICS.......................................................................................................... 9  
7
ELECTRICAL SPECIFICATIONS...................................................................................................... 10  
CURRENT CONSUMPTION ........................................................................................................................... 10  
RF RECEIVE SECTION................................................................................................................................. 13  
RF TRANSMIT SECTION .............................................................................................................................. 15  
CRYSTAL OSCILLATORS ............................................................................................................................. 16  
32.768 KHZ CRYSTAL OSCILLATOR ........................................................................................................... 17  
LOW POWER RC OSCILLATOR.................................................................................................................... 18  
HIGH SPEED RC OSCILLATOR .................................................................................................................... 18  
FREQUENCY SYNTHESIZER CHARACTERISTICS........................................................................................... 19  
ANALOG TEMPERATURE SENSOR ............................................................................................................... 19  
7.1  
7.2  
7.3  
7.4  
7.5  
7.6  
7.7  
7.8  
7.9  
7.10 7-12 BIT ADC............................................................................................................................................. 20  
7.11 CONTROL AC CHARACTERISTICS ............................................................................................................... 21  
7.12 SPI AC CHARACTERISTICS......................................................................................................................... 22  
7.13 DEBUG INTERFACE AC CHARACTERISTICS ................................................................................................ 23  
7.14 PORT OUTPUTS AC CHARACTERISTICS ...................................................................................................... 24  
7.15 TIMER INPUTS AC CHARACTERISTICS........................................................................................................ 24  
7.16 DC CHARACTERISTICS ............................................................................................................................... 24  
8
PIN AND I/O PORT CONFIGURATION ............................................................................................ 26  
9
9.1  
9.2  
CIRCUIT DESCRIPTION ..................................................................................................................... 30  
CPU AND PERIPHERALS ............................................................................................................................. 31  
RADIO ........................................................................................................................................................ 33  
10  
APPLICATION CIRCUIT..................................................................................................................... 33  
10.1 BIAS RESISTOR ........................................................................................................................................... 33  
10.2 BALUN AND RF MATCHING........................................................................................................................ 33  
10.3 CRYSTAL .................................................................................................................................................... 34  
10.4 USB (CC2511FX) ......................................................................................................................................... 34  
10.5 POWER SUPPLY DECOUPLING..................................................................................................................... 34  
10.6 PCB LAYOUT RECOMMENDATIONS............................................................................................................ 37  
11  
8051 CPU.................................................................................................................................................. 38  
11.1 8051 INTRODUCTION .................................................................................................................................. 38  
11.2 MEMORY .................................................................................................................................................... 38  
11.3 CPU REGISTERS ......................................................................................................................................... 52  
11.4 INSTRUCTION SET SUMMARY ..................................................................................................................... 54  
11.5 INTERRUPTS................................................................................................................................................ 58  
12  
DEBUG INTERFACE............................................................................................................................. 68  
12.1 DEBUG MODE............................................................................................................................................. 68  
12.2 DEBUG COMMUNICATION........................................................................................................................... 68  
12.3 DEBUG LOCK BIT ....................................................................................................................................... 69  
12.4 DEBUG COMMANDS.................................................................................................................................... 70  
SWRS055D  
Page 2 of 243  
C2510Fx / CC2511Fx  
13  
PERIPHERALS....................................................................................................................................... 74  
13.1 POWER MANAGEMENT AND CLOCKS.......................................................................................................... 74  
13.2 RESET......................................................................................................................................................... 81  
13.3 FLASH CONTROLLER .................................................................................................................................. 82  
13.4 I/O PORTS................................................................................................................................................... 88  
13.5 DMA CONTROLLER ................................................................................................................................... 99  
13.6 16-BIT TIMER, TIMER 1............................................................................................................................. 111  
13.7 MAC TIMER (TIMER 2) ............................................................................................................................ 123  
13.8 SLEEP TIMER ............................................................................................................................................ 125  
13.9 8-BIT TIMERS, TIMER 3 AND TIMER 4 ....................................................................................................... 129  
13.10 ADC......................................................................................................................................................... 140  
13.11 RANDOM NUMBER GENERATOR............................................................................................................... 146  
13.12 AES COPROCESSOR.................................................................................................................................. 147  
13.13 WATCHDOG TIMER................................................................................................................................... 150  
13.14 USART.................................................................................................................................................... 152  
13.15 I2S ............................................................................................................................................................ 163  
13.16 USB CONTROLLER ................................................................................................................................... 170  
14  
RADIO.................................................................................................................................................... 187  
14.1 COMMAND STROBES ................................................................................................................................ 187  
14.2 RADIO REGISTERS .................................................................................................................................... 189  
14.3 INTERRUPTS.............................................................................................................................................. 189  
14.4 TX/RX DATA TRANSFER ......................................................................................................................... 191  
14.5 DATA RATE PROGRAMMING..................................................................................................................... 192  
14.6 RECEIVER CHANNEL FILTER BANDWIDTH................................................................................................ 192  
14.7 DEMODULATOR, SYMBOL SYNCHRONIZER, AND DATA DECISION............................................................ 193  
14.8 PACKET HANDLING HARDWARE SUPPORT ............................................................................................... 194  
14.9 MODULATION FORMATS........................................................................................................................... 197  
14.10 RECEIVED SIGNAL QUALIFIERS AND LINK QUALITY INFORMATION......................................................... 198  
14.11 FORWARD ERROR CORRECTION WITH INTERLEAVING.............................................................................. 202  
14.12 RADIO CONTROL ...................................................................................................................................... 203  
14.13 FREQUENCY PROGRAMMING .................................................................................................................... 206  
14.14 VCO......................................................................................................................................................... 207  
14.15 OUTPUT POWER PROGRAMMING .............................................................................................................. 207  
14.16 SELECTIVITY ............................................................................................................................................ 209  
14.17 SYSTEM CONSIDERATIONS AND GUIDELINES............................................................................................ 211  
14.18 RADIO REGISTERS .................................................................................................................................... 213  
15  
VOLTAGE REGULATORS ................................................................................................................ 231  
15.1 VOLTAGE REGULATOR POWER-ON........................................................................................................... 231  
16  
17  
18  
RADIO TEST OUTPUT SIGNALS..................................................................................................... 231  
REGISTER OVERVIEW..................................................................................................................... 232  
PACKAGE DESCRIPTION (QLP 36)................................................................................................ 236  
18.1 RECOMMENDED PCB LAYOUT FOR PACKAGE (QLP 36) .......................................................................... 237  
18.2 SOLDERING INFORMATION........................................................................................................................ 237  
18.3 TRAY SPECIFICATION ............................................................................................................................... 237  
18.4 CARRIER TAPE AND REEL SPECIFICATION................................................................................................ 238  
19  
20  
21  
ORDERING INFORMATION............................................................................................................. 238  
REFERENCES ...................................................................................................................................... 239  
GENERAL INFORMATION............................................................................................................... 240  
21.1 DOCUMENT HISTORY ............................................................................................................................... 240  
21.2 PRODUCT STATUS DEFINITIONS ............................................................................................................... 241  
22  
23  
ADDRESS INFORMATION................................................................................................................ 242  
TI WORLDWIDE TECHNICAL SUPPORT..................................................................................... 242  
SWRS055D  
Page 3 of 243  
C2510Fx / CC2511Fx  
1
Abbreviations  
Delta-Sigma  
LFSR  
LNA  
Linear Feedback Shift Register  
Low-Noise Amplifier  
∆Σ  
ADC  
AES  
AGC  
ARIB  
Analog to Digital Converter  
Advanced Encryption Standard  
Automatic Gain Control  
LO  
Local Oscillator  
LQI  
Link Quality Indication  
Least Significant Bit / Byte  
Medium Access Control  
Microcontroller Unit  
LSB  
Association of Radio Industries and  
Businesses  
MAC  
MCU  
MISO  
MOSI  
MSB  
NA  
BCD  
BER  
BOD  
CBC  
Binary Coded Decimal  
Bit Error Rate  
Master In Slave Out  
Brown Out Detector  
Cipher Block Chaining  
Master Out Slave In  
Most Significant Bit / Byte  
Not Applicable  
CBC-MAC  
Cipher Block Chaining Message  
Authentication Code  
OFB  
PA  
Output Feedback (encryption)  
Power Amplifier  
CCA  
CCM  
CFB  
Clear Channel Assessment  
Counter mode + CBC-MAC  
Cipher Feedback  
PCB  
PER  
PLL  
Printed Circuit Board  
Packet Error Rate  
CFR  
CMOS  
CPU  
CRC  
CTR  
DAC  
DMA  
DSM  
ECB  
EM  
Code of Federal Regulations  
Complementary Metal Oxide Semiconductor  
Central Processing Unit  
Cyclic Redundancy Check  
Counter mode (encryption)  
Digital to Analog Converter  
Direct Memory Access  
Phase Locked Loop  
PM{0-3}  
PMC  
POR  
PWM  
Px_n  
QLP  
RAM  
RCOSC  
RF  
Power Mode 0-3  
Power Management Controller  
Power On Reset  
Pulse Width Modulator  
Port x pin n (x = 0, 1, or 2 and n = 0, 1, 2, .., 7)  
Quad Leadless Package  
Random Access Memory  
RC Oscillator  
Delta-Sigma Modulator  
Electronic Code Book  
Evaluation Module  
Radio Frequency  
ENOB  
EP{0-5}  
ESD  
ESR  
ETSI  
Effective Number of Bits  
USB Endpoints 0 – 5  
RoHS  
RSSI  
RX  
Restriction on Hazardous Substances  
Receive Signal Strength Indicator  
Receive  
Electro Static Discharge  
Equivalent Series Resistance  
SCK  
SFD  
SFR  
SINAD  
SPI  
Serial Clock  
European Telecommunications Standard  
Institute  
Start of Frame Delimiter  
Special Function Register  
Signal-to-noise and distortion ratio  
Serial Peripheral Interface  
Static Random Access Memory  
Transmit / Receive  
FCC  
FIFO  
GPIO  
HSSD  
I2S  
Federal Communications Commission  
First In First Out  
General Purpose Input / Output  
High Speed Serial Debug  
Inter-IC Sound  
SRAM  
T/R  
TX  
Transmit  
I/O  
Input / Output  
UART  
USART  
Universal Asynchronous Receiver/Transmitter  
I/Q  
In-phase / Quadrature-phase  
Intermediate Frequency  
I/O Controller  
Universal Synchronous/Asynchronous  
Receiver/Transmitter  
IF  
IOC  
ISM  
ISR  
IV  
USB  
Universal Serial Bus  
Voltage Controlled Oscillator  
Variable Gain Amplifier  
Watchdog Timer  
Industrial, Scientific and Medical  
Interrupt Service Routine  
Initialization Vector  
VCO  
VGA  
WDT  
XOSC  
JEDEC  
kbps  
KB  
Joint Electron Device Engineering Council  
kilo bits per second  
Crystal Oscillator  
Kilo Bytes (1024 bytes)  
SWRS055D  
Page 4 of 243  
C2510Fx / CC2511Fx  
2 Register Conventions  
Each SFR is described in a separate table. The table heading is given in the following format:  
REGISTER NAME (SFR Address) - Register Description.  
Each RF register is described in a separate table. The table heading is given in the following format:  
XDATA Address: REGISTER NAME - Register Description  
All register descriptions include a symbol denoted R/W describing the accessibility of each bit in the  
register. The register values are always given in binary notation unless prefixed by ‘0x’, which  
indicates hexadecimal notation.  
Symbol  
R/W  
R
Access Mode  
Read/write  
Read only  
R0  
Read as 0  
R1  
Read as 1  
W
Write only  
W0  
W1  
H0  
Write as 0  
Write as 1  
Hardware clear  
Hardware set  
H1  
Table 1: Register Bit Conventions  
SWRS055D  
Page 5 of 243  
C2510Fx / CC2511Fx  
3
Key Features (in more details)  
3.1 High-Performance and Low-Power  
8051-Compatible Microcontroller  
Typically used to connect to external  
DAC or ADC  
Optimized 8051 core which typically  
gives 8x the performance of a standard  
8051  
3.5 Hardware AES Encryption/Decryption  
128-bit AES supported in hardware  
Two data pointers  
coprocessor  
In-circuit interactive debugging is  
supported by the IAR Embedded  
Workbench through a simple two-wire  
serial interface  
3.6 Peripheral Features  
Powerful DMA Controller  
Power On Reset/Brown-Out Detection  
3.2 8/16/32 kB Non-volatile Program  
Memory and 1/2/4 kB Data Memory  
ADC with eight individual input  
channels, single-ended or differential  
(CC2511Fx has six channels) and  
configurable resolution  
8, 16, or 32 kB of non-volatile flash  
memory,  
in-system  
programmable  
through a simple two-wire interface or  
by the 8051 core  
Programmable watchdog timer  
Five timers: one general 16-bit timer  
with DSM mode, two general 8-bit  
timers, one MAC timer, and one sleep  
timer  
Minimum flash memory endurance:  
1000 write/erase cycles  
Programmable read and write lock of  
portions of flash memory for software  
security  
Two  
programmable  
master/slave SPI or UART operation  
USARTs  
for  
1, 2, or 4 kB of internal SRAM  
21 configurable general-purpose digital  
I/O-pins (CC2511Fx has 19)  
3.3 Full-Speed USB Controller (CC2511Fx )  
Random number generator  
5 bi-directional endpoints in addition to  
control endpoint 0  
3.7 Low Power  
Full-Speed, 12 Mbps transfer rate  
Four flexible power modes for reduced  
power consumption  
Support for Bulk, Interrupt, and  
Isochronous endpoints  
System can wake up on external  
interrupt or when the Sleep Timer  
expires  
1024 bytes of dedicated endpoint FIFO  
memory  
0.5 µA current consumption in PM2,  
where external interrupts or the Sleep  
Timer can wake up the system  
8 – 512 byte data packet size supported  
Configurable FIFO size for IN and OUT  
direction of endpoint  
0.3 µA current consumption in PM3,  
where external interrupts can wake up  
the system  
3.4 I2S Interface  
Industry standard I2S interface for  
Low-power fully static CMOS design  
transfer of digital audio data  
System clock source is either a high  
speed crystal oscillator (24 – 27 MHz for  
CC2510Fx and 48 MHz for CC2511Fx) or a  
high speed RC oscillator (12 – 13.5 MHz  
for CC2510Fx and 12 MHz for CC2511Fx).  
The high speed crystal oscillator must  
be used when the radio is active.  
Full duplex  
Mono and stereo support  
Configurable sample rate and sample  
size  
Support for µ-law compression and  
expansion  
SWRS055D  
Page 6 of 243  
C2510Fx / CC2511Fx  
Clock source for ultra-low power  
operation can be either a low-power RC  
oscillator or an optional 32.768 kHz  
crystal oscillator  
2-FSK, GFSK and MSK supported  
Optional automatic whitening and de-  
whitening of data  
Programmable Carrier Sense (CS)  
Very fast transition to active mode from  
power modes enables ultra low average  
power consumption in low duty-cycle  
systems  
indicator  
Programmable  
Preamble  
Quality  
Indicator for detecting preambles and  
improved protection against sync word  
detection in random noise  
3.8 2.4 GHz Radio with Baseband Modem  
Support for automatic Clear Channel  
Assessment (CCA) before transmitting  
(for listen-before-talk systems  
Based on the industry leading CC2500  
radio core  
Few external components: On-chip  
frequency synthesizer, no external filters  
or RF switch needed  
Support for per-package Link Quality  
Indication (LQI)  
Suited for systems targeting compliance  
with EN 300 328, EN 300 440, FCC  
CFR47 Part 15 and ARIB STD-T-66  
Flexible support for packet oriented  
systems: On-chip support for sync word  
detection, address check, flexible packet  
length, and automatic CRC handling  
When transmitting in band 2480-  
2483.5MHz under FCC, duty-cycling or  
reducing output power might be needed  
Supports use of DMA for both RX and  
TX resulting in minimal CPU intervention  
even on high data rates  
Programmable channel filter bandwidth  
SWRS055D  
Page 7 of 243  
 
C2510Fx / CC2511Fx  
4
Absolute Maximum Ratings  
Under no circumstances must the absolute maximum ratings given in Table 2 be violated. Stress  
exceeding one or more of the limiting values may cause permanent damage to the device.  
Parameter  
Min  
-0.3  
-0.3  
Max  
Units Condition  
Supply voltage (VDD)  
Voltage on any digital pin  
3.9  
V
V
All supply pins must have the same voltage  
VDD + 0.3,  
max 3.9  
Voltage on the pins RF_P, RF_N  
and DCOUPL  
-0.3  
2.0  
V
Voltage ramp-up rate  
Input RF level  
120  
+10  
150  
260  
750  
kV/µs  
dBm  
°C  
Storage temperature range  
Solder reflow temperature  
ESD CC2510Fx  
-50  
Device not programmed  
According to IPC/JEDEC J-STD-020D  
°C  
V
According to JEDEC STD 22, method A114, Human  
Body Model (HBM)  
500  
750  
500  
V
V
V
According to JEDEC STD 22, C101C, Charged Device  
Model (CDM)  
ESD CC2510Fx  
ESD CC2511x  
ESD CC2511x  
According to JEDEC STD 22, method A114, Human  
Body Model (HBM)  
According to JEDEC STD 22, C101C, Charged Device  
Model (CDM)  
Table 2: Absolute Maximum Ratings  
Caution!  
ESD  
sensitive  
device.  
Precaution should be used when handling  
the device in order to prevent permanent  
damage.  
5
Operating Conditions  
5.1 CC2510Fx Operating Conditions  
The operating conditions for CC2510Fx are listed in Table 3 below.  
Parameter  
Min  
-40  
2.0  
Max  
85  
Unit  
°C  
Condition  
Operating ambient temperature, TA  
Operating supply voltage (VDD)  
3.6  
V
All supply pins must have the same voltage  
Table 3: Operating Conditions for CC2510Fx  
5.2 CC2511Fx Operating Conditions  
The operating conditions for CC2511Fx are listed in Table 4 below.  
Parameter  
Min  
0
Max  
85  
Unit  
°C  
Condition  
Operating ambient temperature, TA  
Operating supply voltage (VDD)  
3.0  
3.6  
V
All supply pins must have the same voltage  
Table 4: Operating Conditions for CC2511Fx  
SWRS055D  
Page 8 of 243  
 
 
 
C2510Fx / CC2511Fx  
6
General Characteristics  
TA = 25 °C, VDD = 3.0 V if nothing else stated  
Parameter  
Min  
Typ  
Max  
Unit  
Condition/Note  
Radio part  
Frequency range  
2400  
2483.5  
MHz  
There will be spurious signals at n/2·crystal  
oscillator frequency (n is an integer number).  
RF frequencies at n/2·crystal oscillator  
frequency should therefore be avoided (e.g.  
2405, 2418, 2431, 2444, 2457, 2470 and  
2483 MHz when using a 26 MHz crystal).  
Data rate  
1.2  
1.2  
26  
500  
250  
500  
kBaud  
kBaud  
kBaud  
2-FSK  
GFSK  
(Shaped) MSK (also known as differential  
offset QPSK)  
Optional Manchester encoding (the data rate  
in kbps will be half the baud rate)  
Wake-Up Timing  
PM1 Æ Active Mode  
4
µs  
µs  
Digital regulator on. HS RCOSC and high  
speed crystal oscillator off. 32.768 kHz  
XOSC or low power RCOSC running.  
SLEEP.OSC_PD=1and CLKCON.OSC=1  
PM2/3Æ Active Mode  
100  
Digital regulator off. HS RCOSC and high  
speed crystal oscillator off. 32.768 kHz  
XOSC or low power RCOSC running (PM2).  
No crystal oscillators or RC oscillators are  
running in PM3.  
SLEEP.OSC_PD=1and CLKCON.OSC=1  
Table 5: General Characteristics  
SWRS055D  
Page 9 of 243  
C2510Fx / CC2511Fx  
7
Electrical Specifications  
7.1 Current Consumption  
TA = 25 °C, VDD = 3.0 V if nothing else stated. All measurement results are obtained using the  
CC2510EM reference design ([1]).  
Parameter  
Min  
Typ  
4.8  
4.6  
Max  
Unit  
mA  
mA  
Condition  
Active mode, full  
speed (high speed  
crystal oscillator)1.  
System clock running at 26 MHz.  
System clock running at 24 MHz.  
Digital regulator on. High speed crystal oscillator and low power  
RCOSC running. No peripherals running.  
Low CPU activity.  
Low CPU activity: No flash access (i.e. only cache hit), no RAM  
access  
2.5  
mA  
System clock running at 26 MHz.  
Active mode, full  
speed (HS  
Digital regulator on. HS RCOSC and low power RCOSC running.  
System clock running at 13 MHz. No peripherals running.  
RCOSC)1.  
Low CPU activity.  
Low CPU activity: No flash access (i.e. only cache hit), no RAM  
access  
Digital regulator on. High speed crystal oscillator and low power  
RCOSC running. Radio in RX mode (sensitivity optimized  
MDMCFG2.DEM_DCFILT_OFF=0)  
Active mode with  
radio in RX  
19.8  
17.1  
19.8  
mA  
mA  
mA  
2.4 kBaud, input at sensitivity limit, system clock running at 26 MHz.  
2.4 kBaud, input at sensitivity limit, system clock running at 203 kHz.  
2.4 kBaud, input well above sensitivity limit, system clock running at  
26 MHz.  
21.5  
18.8  
19.0  
mA  
mA  
mA  
10 kBaud, input at sensitivity limit, system clock running at 26 MHz.  
10 kBaud, input at sensitivity limit, system clock running at 203 kHz.  
10 kBaud, input well above sensitivity limit, system clock running at  
26 MHz.  
22.9  
20.5  
mA  
mA  
250 kBaud, input at sensitivity limit, system clock running at 26 MHz.  
250 kBaud, input at sensitivity limit, system clock running at 1.625  
MHz.  
19.6  
mA  
250 kBaud, input well above sensitivity limit, system clock running at  
26 MHz. See Figure 2 for typical variation over operating conditions  
19.7  
17.5  
mA  
mA  
500 kBaud, input at sensitivity limit, system clock running at 26 MHz.  
500 kBaud, input at sensitivity limit, system clock running at 3.25  
MHz.  
16.7  
mA  
500 kBaud, input well above sensitivity limit  
Digital regulator on. High speed crystal oscillator and low power  
RCOSC running. Radio in RX mode (current optimized  
MDMCFG2.DEM_DCFILT_OFF=1)  
17.4  
14.7  
17.4  
mA  
mA  
mA  
2.4 kBaud, input at sensitivity limit, system clock running at 26 MHz.  
2.4 kBaud, input at sensitivity limit, system clock running at 203 kHz.  
2.4 kBaud, input well above sensitivity limit, system clock running at  
26 MHz.  
19.4  
15.7  
16.9  
mA  
mA  
mA  
10 kBaud, input at sensitivity limit, system clock running at 26 MHz.  
10 kBaud, input at sensitivity limit, system clock running at 203 kHz.  
10 kBaud, input well above sensitivity limit, system clock running at  
26 MHz.  
1 Note: In order to reduce the current consumption in active mode, the clock speed can be reduced by  
setting CLKCON.CLKSPD 000 (see section 13.1 for details). Figure 1 shows typical current  
consumption in active mode for different clock speeds  
SWRS055D  
Page 10 of 243  
 
 
C2510Fx / CC2511Fx  
Parameter  
Min  
Typ  
Max  
Unit  
Condition  
System clock running at 24 MHz.  
Active mode with  
radio in RX  
Digital regulator on. High speed crystal oscillator and low power  
RCOSC running. Radio in RX mode (sensitivity optimized  
MDMCFG2.DEM_DCFILT_OFF=0)  
20.6  
22.1  
22.7  
20.8  
mA  
mA  
mA  
mA  
2.4 kBaud, input at sensitivity limit  
10 kBaud, input at sensitivity limit  
250 kBaud, input at sensitivity limit  
500 kBaud, input at sensitivity limit  
System clock running at 26 MHz.  
Active mode with  
radio in TX  
Digital regulator on. High speed crystal oscillator and low power  
RCOSC running. Radio in TX mode  
26  
mA  
0 dBm output power (PA_TABLE0=0xFE). See Table 7 for typical  
variation over operating conditions  
18.5  
15.5  
26  
mA  
mA  
mA  
-6 dBm output power (PA_TABLE0=0x7F)  
-12 dBm output power (PA_TABLE0=0x95)  
System clock running at 24 MHz.  
Digital regulator on. High speed crystal oscillator and low power  
RCOSC running. Radio in TX mode w/0 dBm output power  
(PA_TABLE0=0xFE)  
PM0  
PM1  
4.3  
mA  
Same as active mode, but the CPU is not running (see 13.1.2.2 for  
details). System clock running at 26 MHz  
220  
Digital regulator on. HS RCOSC and high speed crystal oscillator off.  
32.768 kHz XOSC or low power RCOSC running (see 13.1.2.3 for  
details)  
µA  
PM2  
PM3  
0.5  
0.3  
1
1
Digital regulator off. HS RCOSC and high speed crystal oscillator off.  
Low power RCOSC running (see 13.1.2.4 for details)  
µA  
µA  
Digital regulator off. No crystal oscillators or RC oscillators are  
running (see 13.1.2.5 for details)  
Peripheral  
Current  
Add to the figures above if the peripheral unit is activated  
Consumption  
Timer 1  
Timer 2  
Timer 3  
Timer 4  
ADC  
2.7  
1.3  
1.6  
2
When running  
When running  
When running  
When running  
During conversion  
µA/MHz  
µA/MHz  
µA/MHz  
µA/MHz  
mA  
1.2  
Table 6: Current Consumption  
SWRS055D  
Page 11 of 243  
 
C2510Fx / CC2511Fx  
Current Consumption Active Mode. No Peripherals Running.  
fxosc = 26 MHz  
6,0  
5,0  
4,0  
3,0  
2,0  
1,0  
0,0  
HS XOSC  
HS RCOSC  
0
2
4
6
8
10 12 14 16 18 20 22 24 26 28  
Clock Speed [MHz]  
Measurements done for all valid CLKCON.CLKSPDsettings  
(000 – 111 for HS XOSC, 001 – 111 for HS RCOSC)  
Figure 1: Current Consumption (Active Mode) vs. Clock Speed  
Typical Variation in RX Current Consumption over  
Temperature and Input Power Level.  
Data Rate = 250 kBaud  
25.0  
23.0  
21.0  
19.0  
17.0  
15.0  
-40 °C  
+25 °C  
+85 °C  
-120  
-100  
-80  
-60  
-40  
-20  
0
Input Power Level [dBm]  
Figure 2: Typical Variation in RX Current Consumption over Temperature and Input Power Level.  
Data Rate = 250 kBaud.  
Supply Voltage, VDD = 2 V  
Supply Voltage, VDD = 3 V  
Supply Voltage, VDD = 3.6 V  
Temperature [°C]  
Current [mA]  
-40  
26  
+25  
+85  
26  
-40  
+25  
26  
+85  
-40  
+25  
+85  
25.6  
26.3  
26.3  
26.5  
26.2  
26.6  
Table 7: Typical Variation in TX Current Consumption over Temperature and Supply Voltage  
SWRS055D  
Page 12 of 243  
C2510Fx / CC2511Fx  
7.2 RF Receive Section  
TA = 25 °C, VDD = 3.0 V if nothing else stated. All measurement results are obtained using the  
CC2510EM reference design ([1]).  
Parameter  
Min  
Typ  
Max  
Unit Condition/Note  
kHz User programmable (see Section 14.6). The bandwidth limits are  
Digital channel  
filter bandwidth  
58  
812  
proportional to crystal frequency (given values assume a 26.0 MHz  
crystal).  
2.4 kBaud data rate, sensitivity optimized, MDMCFG2.DEM_DCFILT_OFF=0  
(2-FSK, 1% packet error rate, 20 bytes packet length, 203 kHz digital channel filter bandwidth)  
The RX current consumption can be reduced by approximately 2.4 mA  
by setting MDMCFG2.DEM_DCFILT_OFF=1. The typical sensitivity is then  
-101 dBm.  
Receiver  
sensitivity  
-103  
dBm  
The sensitivity can be improved to typically -105 dBm with  
MDMCFG2.DEM_DCFILT_OFF=0 by changing registers TEST2and  
TEST1(see Page 227). The temperature range is then from 0 oC to +85  
oC.  
Saturation  
-10  
23  
dBm  
dB  
Adjacent  
channel  
rejection  
Desired channel 3 dB above the sensitivity limit. 250 kHz channel  
spacing  
Alternate  
channel  
rejection  
32  
dB  
Desired channel 3 dB above the sensitivity limit. 250 kHz channel  
spacing  
See Figure 54 for plot of selectivity versus frequency offset  
Blocking  
±10 MHz offset  
±20 MHz offset  
±50 MHz offset  
64  
70  
71  
dB  
dB  
dB  
Wanted signal 3 dB above sensitivity level.  
Compliant with ETSI EN 300 440 class 2 receiver requirements.  
10 kBaud data rate, sensitivity optimized, MDMCFG2.DEM_DCFILT_OFF=0  
(2-FSK, 1% packet error rate, 20 bytes packet length, 232 kHz digital channel filter bandwidth)  
Receiver  
sensitivity  
-98  
dBm The RX current consumption can be reduced by approximately 2.2 mA  
by setting MDMCFG2.DEM_DCFILT_OFF=1. The typical sensitivity is then  
-97 dBm.  
The sensitivity can be improved to typically -100 dBm with  
MDMCFG2.DEM_DCFILT_OFF=0 by changing registers TEST2and  
TEST1(see Page 227). The temperature range is then from 0 oC to +85  
oC.  
Saturation  
-9  
dBm  
Adjacent  
channel  
rejection  
19  
dB  
Desired channel 3 dB above the sensitivity limit. 250 kHz channel  
spacing  
Alternate  
channel  
rejection  
25  
dB  
Desired channel 3 dB above the sensitivity limit. 250 kHz channel  
spacing  
See Figure 55 for plot of selectivity versus frequency offset  
Blocking  
±10 MHz offset  
±20 MHz offset  
±50 MHz offset  
59  
65  
66  
dB  
dB  
dB  
Wanted signal 3 dB above sensitivity level.  
Compliant with ETSI EN 300 440 class 2 receiver requirements.  
SWRS055D  
Page 13 of 243  
C2510Fx / CC2511Fx  
Parameter  
Min  
Typ  
Max  
Unit Condition/Note  
250 kBaud data rate, sensitivity optimized, MDMCFG2.DEM_DCFILT_OFF=0  
(MSK, 1% packet error rate, 20 bytes packet length, 540 kHz digital channel filter bandwidth)  
Receiver  
-90  
dBm See Table 9 for typical variation over operating conditions  
sensitivity  
Saturation  
-11  
21  
dBm  
Adjacent  
channel  
rejection  
dB  
dB  
Desired channel 3 dB above the sensitivity limit. 750 kHz channel  
spacing  
Alternate  
channel  
rejection  
30  
Desired channel 3 dB above the sensitivity limit. 750 kHz channel  
spacing  
See Figure 56 for plot of selectivity versus frequency offset  
Blocking  
±10 MHz offset  
±20 MHz offset  
±50 MHz offset  
46  
53  
55  
dB  
dB  
dB  
Wanted signal 3 dB above sensitivity level.  
Compliant with ETSI EN 300 440 class 2 receiver requirements.  
500 kBaud data rate, sensitivity optimized, MDMCFG2.DEM_DCFILT_OFF=0 (MDMCFG2.DEM_DCFILT_OFF=1cannot  
be used for data rates >100 kBaud)  
(MSK, 1% packet error rate, 20 bytes packet length, 812 kHz digital channel filter bandwidth)  
Receiver  
-82  
dBm  
sensitivity  
Saturation  
-15  
12  
dBm  
dB  
Adjacent  
channel  
rejection  
Desired channel 3 dB above the sensitivity limit. 1 MHz channel spacing  
Desired channel 3 dB above the sensitivity limit. 1 MHz channel spacing  
See Figure 58 for plot of selectivity versus frequency offset  
Alternate  
channel  
rejection  
23  
dB  
General  
Spurious  
emissions  
Conducted measurement in a 50 single ended load. Complies with EN  
300 328, EN 300 440 class 2, FCC CFR47, Part 15 and ARIB STD-T-66.  
25 MHz –  
1 GHz  
-57  
-47  
dBm  
dBm  
Above 1 GHz  
Table 8: RF Receive Section  
Supply Voltage, VDD = 2 V  
Supply Voltage, VDD = 3 V  
Supply Voltage, VDD = 3.6 V  
Temperature [°C]  
Sensitivity [dBm]  
-40  
+25  
+85  
-40  
-90  
+25  
+85  
-40  
+25  
+85  
-91.5  
-90.3  
-88.7  
-89.6  
-88.1  
-88.7  
-89.3  
-88.4  
Table 9: Typical Variation in Sensitivity over Temperature and Supply Voltage @ 2.44 GHz and  
250 kBaud Data Rate  
SWRS055D  
Page 14 of 243  
 
C2510Fx / CC2511Fx  
7.3 RF Transmit Section  
TA = 25 °C, VDD = 3.0 V if nothing else stated. All measurement results are obtained using the  
CC2510EM reference designs ([1]).  
Parameter  
Min  
Typ  
Max  
Unit  
Condition/Note  
Differential load  
impedance  
80 + j74  
Differential impedance as seen from the RF-port (RF_P and  
RF_N) towards the antenna. Follow the CC2510EM  
reference design [1] available from TI’s website.  
Output power, highest  
setting  
+1  
dBm  
dBm  
Output power is programmable and is available across the  
entire frequency band. See Figure 3 typical variation over  
operating conditions (output power is 0 dBm)  
Delivered to a 50 single-ended load via the CC2510EM  
reference design [1] RF matching network.  
Output power, lowest  
setting  
-30  
Output power is programmable and is available across the  
entire frequency band  
Delivered to a 50 single-ended load via the CC2510EM  
reference design [1] RF matching network.  
Occupied bandwidth  
(99%)  
-28  
-27  
dBc  
dBc  
2.4 kBaud, 38.2 kHz deviation, 2-FSK, 250 kHz channel  
spacing  
10 kBaud, 38.2 kHz deviation, 2-FSK, 250 kHz channel  
spacing  
-22  
-21  
dBc  
dBc  
250 kBaud, MSK, 750 kHz channel spacing  
500 kBaud, MSK, 1 MHz channel spacing  
0 dBm output power.  
Spurious emissions  
25 MHz – 1 GHz  
-36  
-54  
dBm  
dBm  
47 - 74, 87.5 - 118,  
174 - 230, and 470 -  
862 MHz  
1800-1900 MHz  
At 2·RF and 3·RF  
-47  
-41  
-30  
dBm  
dBm  
dBm  
Restricted band in Europe  
Restricted bands in USA  
Otherwise above  
1 GHz  
Table 10: RF Transmit Section  
Typical Variation in Output Power (0 dBm) over Frequency and  
Temperature  
2
0
Avg -40 °C  
Avg +85 °C  
Avg +25 °C  
-2  
-2  
2400 2408 2416 2424 2432 2440 2448 2456 2464 2472 2480  
Frequency [MHz]  
Figure 3: Typical Variation in Output Power over Frequency and Temperature  
(0 dBm output power)  
SWRS055D  
Page 15 of 243  
 
C2510Fx / CC2511Fx  
7.4 Crystal Oscillators  
7.4.1  
CC2510Fx Crystal Oscillator  
TA = 25 °C, VDD = 3.0 V if nothing else is stated.  
Parameter  
Min  
Typ  
Max  
Unit  
Condition/Note  
Crystal frequency  
24  
26  
27  
MHz  
Referred to as fXOSC. For operation in the range 24 – 26 MHz, please  
refer to Table 4 for Operating Conditions.  
Crystal frequency  
accuracy  
±40  
ppm  
This is the total tolerance including a) initial tolerance, b) crystal  
loading, c) aging, and d) temperature dependence.  
requirement  
The acceptable crystal tolerance depends on RF frequency and  
channel spacing / bandwidth.  
C0  
1
5
7
pF  
pF  
Simulated over operating conditions  
Simulated over operating conditions  
Simulated over operating conditions  
fXOSC = 26 MHz  
Load capacitance  
ESR  
10  
13  
20  
100  
Start-up time  
250  
µs  
Note: A Ripple counter of 12 bit is included to ensure duty-cycle  
requirements. Start-up time includes ripple counter delay until  
SLEEP.XOSC_STBis asserted  
Table 11: CC2510Fx Crystal Oscillator Parameters  
7.4.2  
CC2511Fx Crystal Oscillator  
TA = 25 °C, VDD = 3.0 V if nothing else is stated.  
Parameter  
Min  
Typ  
48  
Max Unit  
MHz  
Condition/Note  
Crystal frequency  
Referred to as fXOSC  
Crystal frequency  
accuracy  
±40  
ppm  
This is the total tolerance including a) initial tolerance, b) crystal  
loading, c) aging, and d) temperature dependence.  
requirement  
The acceptable crystal tolerance depends on RF frequency and  
channel spacing / bandwidth.  
C0  
Fundamental  
0.85  
1
1.15  
pF  
Simulated over operating conditions. Variation given by reference  
crystal NX2520SA from NDK  
3rd overtone  
Load capacitance  
ESR  
2
3
7
pF  
pF  
15  
16  
17  
60  
Simulated over operating conditions  
Simulated over operating conditions  
Start-up time  
Note: A Ripple counter of 14 bit is included to ensure duty-cycle  
requirements. Start-up time includes ripple counter delay until  
SLEEP.XOSC_STBis asserted  
Fundamental  
3rd overtone  
650  
3
µs  
ms  
Simulated value  
Table 12: CC2511Fx Crystal Oscillator Parameters  
SWRS055D  
Page 16 of 243  
 
 
C2510Fx / CC2511Fx  
7.5  
32.768 kHz Crystal Oscillator  
TA = 25 °C, VDD = 3.0V if nothing else is stated.  
Parameter  
Crystal frequency  
C0  
Min  
Typ  
32.768  
0.9  
Max  
Unit Condition/Note  
kHz  
2.0  
16  
pF  
pF  
kΩ  
ms  
Simulated over operating conditions  
Simulated over operating conditions  
Load capacitance  
ESR  
12  
40  
130  
Simulated over operating conditions  
Value is simulated  
Start-up time  
400  
Table 13: 32.768 kHz Crystal Oscillator Parameters  
SWRS055D  
Page 17 of 243  
 
 
C2510Fx / CC2511Fx  
7.6 Low Power RC Oscillator  
TA = 25 °C, VDD = 3.0 V if nothing else is stated.  
Parameter  
Min  
Typ  
Max  
Unit  
Condition/Note  
Calibrated frequency2  
32.0  
34.7  
36.0  
kHz  
Calibrated low power RC oscillator frequency is  
fXOSC / 750  
Frequency accuracy after  
calibration  
±1  
%
Temperature coefficient  
Supply voltage coefficient  
Initial calibration time  
+0.5  
+3  
2
Frequency drift when temperature changes after  
calibration  
%/°C  
%/V  
ms  
Frequency drift when supply voltage changes after  
calibration  
When the low power RC oscillator is enabled,  
calibration is continuously done in the background  
as long as the high speed crystal oscillator is  
running.  
Table 14: Low Power RC Oscillator Parameters  
7.7 High Speed RC Oscillator  
TA = 25 °C, VDD = 3.0 V if nothing else is stated.  
Parameter  
Min  
Typ  
13  
Max  
Unit  
MHz  
%
Condition/Note  
Calibrated frequency2  
12  
13.5  
Calibrated HS RCOSC frequency is fXOSC / 2  
Uncalibrated frequency  
accuracy  
±15  
Calibrated frequency  
accuracy  
%
±1  
Start-up time  
10  
µs  
Temperature coefficient  
-325  
Frequency drift when temperature changes after  
calibration  
ppm/°C  
Supply voltage coefficient  
Initial calibration time  
28  
ppm/V  
µs  
Frequency drift when supply voltage changes after  
calibration  
65  
The HS RCOSC will be calibrated once when the  
high speed crystal oscillator is selected as system  
clock source (CLKCON.OSCis set to 0), and also  
when the system wakes up from PM{1-3}. See  
13.1.5.1 for details).  
Table 15: High Speed RC Oscillator Parameters  
2
Min figures are given using fXOSC = 24 MHz. Typ figures are given using fXOSC = 26 MHz, and Max  
figures are given using fXOSC = 27 MHz  
SWRS055D  
Page 18 of 243  
 
 
 
 
C2510Fx / CC2511Fx  
7.8 Frequency Synthesizer Characteristics  
TA = 25 °C, VDD = 3.0 V if nothing else stated. All measurement results are obtained using the  
CC2510EM reference designs ([1]).  
Parameter  
Min  
Typ  
Max  
Unit  
Condition/Note  
Programmed frequency  
resolution  
367  
397  
412  
Hz  
24 - 27 MHz crystal.  
Frequency resolution = fXOSC / 216  
Synthesizer frequency  
tolerance  
±40  
ppm  
Given by crystal used. Required accuracy (including  
temperature and aging) depends on frequency band and  
channel bandwidth / spacing.  
RF carrier phase noise  
RF carrier phase noise  
RF carrier phase noise  
RF carrier phase noise  
RF carrier phase noise  
RF carrier phase noise  
RF carrier phase noise  
RF carrier phase noise  
PLL turn-on / hop time3  
-77  
-77  
dBc/Hz  
dBc/Hz  
dBc/Hz  
dBc/Hz  
dBc/Hz  
dBc/Hz  
dBc/Hz  
dBc/Hz  
µs  
@ 50 kHz offset from carrier  
@ 100 kHz offset from carrier  
@ 200 kHz offset from carrier  
@ 500 kHz offset from carrier  
@ 1 MHz offset from carrier  
@ 2 MHz offset from carrier  
@ 5 MHz offset from carrier  
@ 10 MHz offset from carrier  
-78  
-88  
-98  
-107  
-116  
-125  
88.4  
85.1  
95.8  
Time from leaving the IDLE state until arriving in the RX,  
FSTXON, or TX state, when not performing calibration.  
Crystal oscillator running.  
PLL RX/TX settling time3  
PLL TX/RX settling time3  
PLL calibration time3  
9.3  
20.7  
694  
9.6  
21.5  
721  
10.4  
23.3  
Settling time for the 1·IF frequency step from RX to TX  
Settling time for the 1·IF frequency step from TX to RX  
µs  
µs  
µs  
780.8  
Calibration can be initiated manually or automatically  
before entering or after leaving RX/TX.  
Table 16: Frequency Synthesizer Parameters  
7.9 Analog Temperature Sensor  
TA= 25 °C, VDD = 3.0V if nothing else stated. All measurement results are obtained using the  
CC2510EM reference designs ([1]).  
Parameter  
Min  
Typ  
Max  
Unit  
Condition/Note  
0.654  
0.750  
0.848  
0.946  
2.43  
0
V
V
V
V
Output voltage at -40 °C  
Output voltage at 0 °C  
Output voltage at +40 °C  
Output voltage at +80 °C  
Temperature coefficient  
mV/°C Fitted from -20 °C to +80 °C  
Error in calculated  
temperature, calibrated  
-2 *  
2 *  
°C  
From -20°C to +80°C when using 2.43 mV / °C, after 1-point  
calibration at room temperature  
* The indicated minimum and maximum error with 1-point  
calibration is based on measured values for typical process  
parameters  
Current consumption  
0.3  
mA  
increase when enabled  
Table 17: Analog Temperature Sensor Parameters  
3
Min figures are given using fXOSC = 27 MHz. Typ figures are given using fXOSC = 26 MHz, and Max  
figures are given using fXOSC = 24 MHz.  
SWRS055D  
Page 19 of 243  
 
 
 
C2510Fx / CC2511Fx  
7.10 7-12 bit ADC  
TA = 25 °C, VDD = 3.0V if nothing else stated. The numbers given here are based on tests performed  
in accordance with IEEE Std 1241-2000 [7]. The ADC data are from CC2430 characterization. As the  
CC2510x/C2511Fx uses the same ADC, the numbers listed in Table 18 should be good indicators of the  
performance to be expected from CC2510x and CC2511x. Note that these numbers will apply for 24 MHz  
operated systems (like CC2510x using a 24 MHz crystal or CC2511x using a 48 MHz crystal).  
Performance will be slightly different for other crystal frequencies (e.g. 26 MHz and 27 MHz).  
Parameter  
Min  
Typ  
Max  
Unit Condition/Note  
Input voltage  
0
0
0
AVDD  
AVDD  
AVDD  
V
V
V
AVDD is voltage on AVDD pin  
External reference voltage  
AVDD is voltage on AVDD pin  
AVDD is voltage on AVDD pin  
External reference voltage  
differential  
Input resistance, signal  
197  
Simulated using 4 MHz clock speed (see Section  
13.10.2.7)  
kΩ  
Full-Scale Signal4  
ENOB4  
2.97  
5.7  
V
Peak-to-peak, defines 0 dBFS  
7-bits setting  
bits  
Single ended input  
7.5  
9-bits setting  
9.3  
10-bits setting  
10.8  
6.5  
12-bits setting  
ENOB4  
bits  
7-bits setting  
Differential input  
8.3  
9-bits setting  
10.0  
11.5  
0-20  
10-bits setting  
12-bits setting  
Useful Power Bandwidth  
THD4  
kHz  
7-bits setting, both single and differential  
-Single ended input  
-Differential input  
-75.2  
-86.6  
dB  
dB  
12-bits setting, -6 dBFS  
12-bits setting, -6 dBFS  
Signal To Non-Harmonic Ratio4  
-Single ended input  
-Differential input  
70.2  
79.3  
dB  
dB  
12-bits setting  
12-bits setting  
Spurious Free Dynamic Range4  
-Single ended input  
-Differential input  
78.8  
88.9  
<-84  
dB  
dB  
dB  
12-bits setting, -6 dBFS  
12-bits setting, -6 dBFS  
CMRR, differential input  
12- bit setting, 1 kHz Sine (0 dBFS), limited by ADC  
resolution  
Crosstalk, single ended input  
<-84  
dB  
12- bit setting, 1 kHz Sine (0 dBFS), limited by ADC  
resolution  
Offset  
-3  
mV  
%
Mid. Scale  
Gain error  
DNL4  
0.68  
0.05  
0.9  
LSB 12-bits setting, mean  
LSB 12-bits setting, max  
LSB 12-bits setting, mean  
LSB 12-bits setting, max  
INL4  
4.6  
13.3  
35.4  
SINAD4  
dB  
7-bits setting  
4 Measured with 300 Hz Sine input and VDD as reference.  
SWRS055D  
Page 20 of 243  
 
 
C2510Fx / CC2511Fx  
Parameter  
Min  
Typ  
Max  
Unit Condition/Note  
Single ended input  
(-THD+N)  
46.8  
57.5  
66.6  
40.7  
51.6  
61.8  
70.8  
20  
dB  
dB  
dB  
dB  
dB  
dB  
dB  
9-bits setting  
10-bits setting  
12-bits setting  
7-bits setting  
9-bits setting  
10-bits setting  
12-bits setting  
7-bits setting  
9-bits setting  
10-bits setting  
12-bits setting  
SINAD4  
Differential input  
(-THD+N)  
Conversion time  
µs  
µs  
36  
68  
µs  
132  
µs  
Current consumption  
1.2  
mA  
Table 18: 7-12 bit ADC Characteristics  
7.11 Control AC Characteristics  
TA = 25 °C, VDD = 3.0 V if nothing else stated. All measurement results are obtained using the  
CC2510EM reference designs ([1]).  
Parameter  
Min  
Typ  
Max  
Unit  
Condition/Note  
System clock,  
fSYSCLK  
CC2510Fx  
tSYSCLK= 1/ fSYSCLK  
0.1875  
0.1875  
26  
13  
27  
MHz  
MHz  
High speed crystal oscillator used as source (HS XOSC)  
Calibrated HS RCOSC used as source.  
13.5  
HS  
HS  
XOSC  
RCOSC  
111  
000  
000  
111  
001  
001  
Min: fXOSC = 24 MHz, CLKCON.CLKSPD=  
Typ: fXOSC = 26 MHz, CLKCON.CLKSPD=  
Max: fXOSC = 27 MHz, CLKCON.CLKSPD=  
CC2511Fx  
0.1875  
0.1875  
24  
12  
24  
12  
MHz  
ns  
High speed crystal oscillator used as source.  
HS RCOSC used as source.  
Min: fXOSC = 48 MHz, CLKCON.CLKSPD= 111  
Typ and Max: fXOSC = 48 MHz, CLKCON.CLKSPD= 000  
RESET_N low  
width  
250  
See item 1, Figure 4. This is the shortest pulse that is  
guaranteed to be recognized as a reset pin request.  
Note: Shorter pulses may be recognized but will not lead to  
complete reset of all modules within the chip.  
Interrupt pulse  
width  
tSYSCLK  
See item 2, Figure 4. This is the shortest pulse that is  
guaranteed to be recognized as an interrupt request. In PM2/3  
the internal synchronizers are bypassed so this requirement  
does not apply in PM2/3.  
Table 19: Control Inputs AC Characteristics  
SWRS055D  
Page 21 of 243  
 
C2510Fx / CC2511Fx  
Figure 4: Control Inputs AC Characteristics  
7.12 SPI AC Characteristics  
TA = 25 °C, VDD = 3.0V if nothing else stated. All measurement results are obtained using the  
CC2510EM reference designs ([1]).  
Parameter  
Min  
Typ  
Max  
Unit  
Condition/Note  
SCK period  
See  
ns  
Master. See item 1, Figure 5  
Section  
13.14.3  
SCK duty cycle  
SSN low to SCK  
SCK to SSN high  
MISO setup  
50  
%
Master.  
2·tSYSCLK  
30  
See item 5, Figure 5  
ns  
ns  
ns  
ns  
ns  
%
See item 6, Figure 5  
10  
Master. See item 2, Figure 5  
Master. See item 3, Figure 5  
Master. See item 4, Figure 5, load = 10 pF  
Slave. See item 1, Figure 5  
Slave.  
MISO hold  
10  
SCK to MOSI  
SCK period  
25  
25  
100  
SCK duty cycle  
MOSI setup  
50  
10  
10  
ns  
ns  
ns  
Slave. See item 2, Figure 5  
Slave. See item 3, Figure 5  
Slave. See item 4, Figure 5, load = 10 pF  
MOSI hold  
SCK to MISO  
Table 20: SPI AC Characteristics  
SWRS055D  
Page 22 of 243  
C2510Fx / CC2511Fx  
Figure 5: SPI AC Characteristics  
7.13 Debug Interface AC Characteristics  
TA = 25 °C, VDD = 3.0 V if nothing else stated. All measurement results are obtained using the  
CC2510EM reference designs ([1]).  
Parameter  
Min  
Typ  
Max  
Unit  
Condition/Note  
Debug clock  
period  
125  
ns  
See item 1, Figure 6  
Note: CLKCON.CLKSPDmust be 000 or 001 when using  
the debug interface  
Debug data setup  
Debug data hold  
5
5
ns  
ns  
ns  
See item 2, Figure 6  
See item 3, Figure 6  
Clock to data  
delay  
10  
See item 4, Figure 6, load = 10 pF  
RESET_N inactive  
after P2_2 rising  
10  
ns  
See item , Figure 6  
Table 21: Debug Interface AC Characteristics  
SWRS055D  
Page 23 of 243  
C2510Fx / CC2511Fx  
Figure 6: Debug Interface AC Characteristics  
7.14 Port Outputs AC Characteristics  
TA = 25 °C, VDD = 3.0 V if nothing else stated. All measurement results are obtained using the  
CC2510EM reference designs ([1]).  
Parameter  
Min  
Typ  
Max  
Unit Condition/Note  
P0_[0:7], P1_[2:7],  
P2_[0:4] Port output  
rise time  
(PICTL.PADSC=0/  
PICTL.PADSC=1)  
3.15 /  
1.34  
ns  
Load = 10 pF  
Timing is with respect to 10% VDD and 90% VDD levels.  
Values are estimated  
P0_[0:7], P1_[2:7],  
P2_[0:4] Port output  
fall time  
(PICTL.PADSC=0/  
PICTL.PADSC=1)  
3.2 / 1.44  
ns  
Load = 10 pF  
Timing is with respect to 90% VDD and 10% VDD.  
Values are estimated  
Table 22: Port Outputs AC Characteristics  
7.15 Timer Inputs AC Characteristics  
TA = 25 °C, VDD = 3.0 V if nothing else stated. All measurement results are obtained using the  
CC2510EM reference designs ([1]).  
Parameter  
Min  
Typ  
Max  
Unit  
Condition/Note  
Input capture  
pulse width  
tSYSCLK  
Synchronizers determine the shortest input pulse that can be  
recognized. The synchronizers operate from the current  
system clock rate (see Table 19)  
Table 23: Timer Inputs AC Characteristics  
7.16 DC Characteristics  
The DC Characteristics of CC2510Fx/CC2511Fx are listed in Table 24 below.  
TA = 25 °C, VDD = 3.0 V if nothing else stated. All measurement results are obtained using the  
CC2510EM reference designs ([1]).  
Digital Inputs/Outputs  
Min  
Typ  
Max  
Unit Condition  
SWRS055D  
Page 24 of 243  
 
C2510Fx / CC2511Fx  
Logic "0" input voltage  
30  
%
%
Of VDD supply (2.0 – 3.6 V)  
Of VDD supply (2.0 – 3.6 V)  
Input equals 0 V  
Logic "1" input voltage  
70  
NA  
NA  
Logic "0" input current per pin  
Logic "1" input current per pin  
Total logic “0” input current all pins  
Total logic “1” input current all pins  
I/O pin pull-up and pull-down resistor  
12  
12  
70  
70  
nA  
nA  
nA  
nA  
kΩ  
Input equals VDD  
20  
Table 24: DC Characteristics  
SWRS055D  
Page 25 of 243  
C2510Fx / CC2511Fx  
8 Pin and I/O Port Configuration  
The CC2510Fx pin-out is shown in Figure 7 and Table 25. See Section 13.4 for details on the I/O  
configuration.  
35 333 331 322
1
P1_2  
27 RBIAS  
26  
DVDD 2  
AVDD  
P1_1  
3
25  
AVDD  
4
5
P1_0  
P0_0  
P0_1  
P0_2  
P0_3  
RF_N  
24  
23  
22  
RF_P  
6
7
8
9
AVDD  
21  
20  
19  
XOSC_Q1  
XOSC_Q2  
AVDD  
P0_4  
10 11 12 13 14 15 16 17 18  
AGND  
Exposed die  
attached pad  
Figure 7: CC2510Fx Pinout Top View  
Note: The exposed die attach pad must be connected to a solid ground plane as this is the ground  
connection for the chip.  
SWRS055D  
Page 26 of 243  
 
C2510Fx / CC2511Fx  
Pin  
Pin Name  
Pin Type  
Description  
AGND  
Ground  
The exposed die attach pad must be connected to a solid ground  
plane  
1
P1_2  
D I/O  
Port 1.2  
2
DVDD  
Power (Digital)  
D I/O  
2.0 V - 3.6 V digital power supply for digital I/O  
3
P1_1  
Port 1.1  
4
P1_0  
D I/O  
Port 1.0  
5
P0_0  
D I/O  
Port 0.0  
6
P0_1  
D I/O  
Port 0.1  
7
P0_2  
D I/O  
Port 0.2  
8
P0_3  
D I/O  
Port 0.3  
9
P0_4  
D I/O  
Port 0.4  
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
21  
22  
23  
DVDD  
Power (Digital)  
D I/O  
2.0 V - 3.6 V digital power supply for digital I/O  
P0_5  
Port 0.5  
P0_6  
D I/O  
Port 0.6  
P0_7  
D I/O  
Port 0.7  
P2_0  
D I/O  
Port 2.0  
P2_1  
D I/O  
Port 2.1  
P2_2  
D I/O  
Port 2.2  
P2_3/XOSC32_Q1  
P2_4/XOSC32_Q2  
AVDD  
D I/O  
Port 2.3/32.768 kHz crystal oscillator pin 1  
Port 2.4/32.768 kHz crystal oscillator pin 2  
2.0 V - 3.6 V analog power supply connection  
26 MHz crystal oscillator pin 2  
26 MHz crystal oscillator pin 1, or external clock input  
2.0 V - 3.6 V analog power supply connection  
D I/O  
Power (Analog)  
Analog I/O  
Analog I/O  
Power (Analog)  
RF I/O  
XOSC_Q2  
XOSC_Q1  
AVDD  
RF_P  
Positive RF input signal to LNA in receive mode  
Positive RF output signal from PA in transmit mode  
24  
RF_N  
RF I/O  
Negative RF input signal to LNA in receive mode  
Negative RF output signal from PA in transmit mode  
25  
26  
27  
28  
29  
30  
31  
32  
33  
34  
35  
36  
AVDD  
Power (Analog)  
Power (Analog)  
Analog I/O  
Power (Digital)  
Power (Digital)  
Power decoupling  
DI  
2.0 V – 3.6 V analog power supply connection  
AVDD  
2.0 V - 3.6 V analog power supply connection  
RBIAS  
GUARD  
AVDD_DREG  
DCOUPL  
RESET_N  
P1_7  
External precision bias resistor for reference current  
Power supply connection for digital noise isolation  
2.0 V - 3.6 V digital power supply for digital core voltage regulator  
1.8 V digital power supply decoupling  
Reset, active low  
Port 1.7  
D I/O  
P1_6  
D I/O  
Port 1.6  
P1_5  
D I/O  
Port 1.5  
P1_4  
D I/O  
Port 1.4  
P1_3  
D I/O  
Port 1.3  
Table 25: CC2510Fx Pin-out Overview  
SWRS055D  
Page 27 of 243  
C2510Fx / CC2511Fx  
The CC2511Fx pin-out is shown in Figure 8 and Table 26. See Section 13.4 for details on the I/O  
configuration.  
6 5 4 33 32 31 30 29 28  
1
P1_2  
27 R_BIAS  
26  
DVDD 2  
AVDD  
P1_1  
3
25  
AVDD  
P1_0 4  
RF_N  
24  
5
6
P0_0  
P0_1  
P0_2  
P0_3  
23  
22  
RF_P  
AVDD  
21 XOSC_Q1  
7
8
9
20  
XOSC_Q2  
P0_4  
AVDD  
19  
10 11 12 13 14 15 16 17 18  
AGND  
Exposed die  
attached pad  
Figure 8: CC2511Fx Pin-out Top View  
Note: The exposed die attach pad must be connected to a solid ground plane as this is the ground  
connection for the chip.  
SWRS055D  
Page 28 of 243  
 
C2510Fx / CC2511Fx  
Pin  
Pin Name  
Pin Type  
Description  
AGND  
Ground  
The exposed die attach pad must be connected to a solid ground  
plane  
1
P1_2  
D I/O  
Port 1.2  
2
DVDD  
P1_1  
Power (Digital) 2.0 V - 3.6 V digital power supply for digital I/O  
3
D I/O  
Port 1.1  
4
P1_0  
D I/O  
Port 1.0  
5
P0_0  
D I/O  
Port 0.0  
6
P0_1  
D I/O  
Port 0.1  
7
P0_2  
D I/O  
Port 0.2  
8
P0_3  
D I/O  
Port 0.3  
9
P0_4  
D I/O  
Port 0.4  
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
21  
22  
23  
DP  
USB I/O  
USB I/O  
USB Differential Data Bus Plus  
USB Differential Data Bus Minus  
DM  
DVDD  
P0_5  
Power (Digital) 2.0 V - 3.6 V digital power supply for digital I/O  
D I/O  
D I/O  
D I/O  
D I/O  
D I/O  
D I/O  
Port 0.5  
P2_0  
Port 2.0  
P2_1  
Port 2.1  
P2_2  
Port 2.2  
P2_3/XOSC32_Q1  
P2_4/XOSC32_Q2  
AVDD  
Port 2.3/32.768 kHz crystal oscillator pin 1  
Port 2.4/32.768 kHz crystal oscillator pin 2  
Power (Analog) 2.0 V - 3.6 V analog power supply connection  
XOSC_Q2  
XOSC_Q1  
AVDD  
Analog I/O  
Analog I/O  
48 MHz crystal oscillator pin 2  
48 MHz crystal oscillator pin 1, or external clock input  
Power (Analog) 2.0 V - 3.6 V analog power supply connection  
RF_P  
RF I/O  
Positive RF input signal to LNA in receive mode  
Positive RF output signal from PA in transmit mode  
24  
RF_N  
RF I/O  
Negative RF input signal to LNA in receive mode  
Negative RF output signal from PA in transmit mode  
25  
26  
27  
28  
29  
30  
AVDD  
Power (Analog) 2.0 V - 3.6 V analog power supply connection  
Power (Analog) 2.0 V - 3.6 V analog power supply connection  
AVDD  
RBIAS  
Analog I/O  
External precision bias resistor for reference current  
GUARD  
AVDD_DREG  
DCOUPL  
Power (Digital) Power supply connection for digital noise isolation  
Power (Digital) 2.0 V - 3.6 V digital power supply for digital core voltage regulator  
Power  
1.8 V digital power supply decoupling  
decoupling  
31  
32  
33  
34  
35  
36  
RESET_N  
P1_7  
DI  
Reset, active low  
Port 1.7  
D I/O  
D I/O  
D I/O  
D I/O  
D I/O  
P1_6  
Port 1.6  
P1_5  
Port 1.5  
P1_4  
Port 1.4  
P1_3  
Port 1.3  
Table 26: CC2511Fx Pin-out Overview  
SWRS055D  
Page 29 of 243  
C2510Fx / CC2511Fx  
9 Circuit Description  
VDD (2.0 - 3.6 V)  
ON-CHIP VOLTAGE  
REGULATOR  
DCOUPL  
DIGITAL  
RESET  
WATCHDOG TIMER  
RESET_N  
ANALOG  
MIXED  
POWER ON RESET  
XOSC_Q2  
XOSC_Q1  
HIGH SPEED  
CRYSTAL OSC  
(24 – 27 MHz)  
CLOCK MUX &  
CALIBRATION  
SLEEP TIMER  
P2_4  
P2_3  
P2_2  
P2_1  
P2_0  
32.768 kHz  
CRYSTAL OSC  
POWER MGT. CONTROLLER  
HIGH SPEED  
RC-OSC  
DEBUG  
INTERFACE  
LOW PWR  
RC-OSC  
1 KB  
FIFO SRAM  
CODE  
XDATA  
DATA  
SFR  
P1_7  
P1_6  
P1_5  
P1_4  
P1_3  
P1_2  
P1_1  
P1_0  
USB PHY  
USB BUS  
RAM  
USB  
8051 CPU  
CORE  
DM  
MEMORY  
ARBITRATOR  
4 KB  
SRAM  
32 KB  
FLASH  
UNIFIED  
FLASH  
DMA  
IRQ  
CTRL  
FLASH CTRL  
I2S  
AES  
ENCRYPTION &  
DECRYPTION  
P0_5  
P0_4  
P0_3  
P0_2  
P0_1  
P0_0  
RADIO / I2S REGISTERS  
RADIO DATA INTERFACE  
ADC  
AUDIO / DC  
AGC DEMODULATOR  
MODULATOR  
USART 0  
USART 1  
TIMER 1 (16-bit) +  
Module  
RECEIVE  
CHAIN  
TRANSMIT  
CHAIN  
TIMER 2 (8-bit MAC Timer)  
TIMER 3 (8-bit)  
TIMER 4 (8-bit)  
RF_P  
RF_N  
Figure 9: C C2510Fx/CC2511Fx Block Diagram  
modules related to power, test, and clock  
distribution. In the following subsections, a  
short description of each module that appears  
in Figure 9.  
A block diagram of CC2510Fx/CC2511Fx is  
shown in Figure 9. The modules can be  
divided into one out of three categories: CPU-  
related modules, radio-related modules, and  
SWRS055D  
Page 30 of 243  
 
C2510Fx / CC2511Fx  
9.1 CPU and Peripherals  
The 8051 CPU core is a single-cycle 8051-  
compatible core. It has three different memory  
all hardware peripherals, except USB, to the  
memory arbitrator. The SFR bus also provides  
access to the radio registers and I2S registers  
in the radio register bank even though these  
are indeed mapped into XDATA memory  
space.  
access  
buses  
(SFR,  
DATA  
and  
CODE/XDATA), a debug interface, and an  
extended interrupt unit servicing 18 interrupt  
sources. See Section 9.1 for details on the  
CPU.  
The 1/2/4 KB SRAM maps to the DATA  
memory space and part of the XDATA and  
CODE memory spaces. The memory is an  
ultra-low-power SRAM that retains its contents  
even when the digital part is powered off (PM2  
and PM3).  
The memory crossbar/arbitrator is at the  
heart of the system as it connects the CPU  
and DMA controller with the physical  
memories and all peripherals through the SFR  
bus. The memory arbitrator has four memory  
access points, access at which can map to  
one of three physical memories on the  
CC2510Fx and one of four physical memories  
on the CC2511Fx: a 1/2/4 KB SRAM, 8/16/32 KB  
flash memory, RF/I2S registers, and USB  
registers (CC2511Fx). The memory arbitrator is  
responsible for performing arbitration and  
sequencing between simultaneous memory  
accesses to the same physical memory.  
The 8/16/32 KB flash block provides in-circuit  
programmable non-volatile program memory  
for the device and maps into the CODE and  
XDATA memory spaces. Table 27 shows the  
available devices in the CC2510/CC2511  
family. The available devices differ only in  
flash memory size. Writing to the flash block is  
performed through a Flash Controller that  
allows page-wise (1024 byte) erasure and 2-  
byte-wise reprogramming. See Section 13.3  
for details.  
The SFR bus is drawn conceptually in the  
block diagram as a common bus that connects  
Device  
Flash [KB]  
CC2510-F8  
CC2511-F8  
CC2510-F16  
CC2511-F16  
CC2510-F32  
CC2511-F32  
8
8
16  
16  
32  
32  
Table 27: CC2510/CC2511 Flash Memory Options  
A versatile five-channel DMA controller is  
available in the system. It accesses memory  
using a unified memory space and has  
therefore access to all physical memories.  
Each channel is configured (trigger event,  
priority, transfer mode, addressing mode,  
source and destination pointers, and transfer  
count) with DMA descriptors anywhere in  
memory. Many of the hardware peripherals  
rely on the DMA controller for efficient  
operation (AES core, Flash Controller,  
USARTs, Timers, and ADC interface) by  
performing data transfers between a single  
SFR address and flash/SRAM. See 13.5 for  
details.  
of which is associated with one out of four  
interrupt priorities. An interrupt request is  
serviced even if the device is in PM1, PM2, or  
PM3 by bringing the CC2510Fx/CC2511Fx back to  
active mode.  
The debug interface implements a proprietary  
two-wire serial interface that is used for in-  
circuit debugging. Through this debug  
interface it is possible to perform an erasure of  
the entire flash memory, control which  
oscillators are enabled, stop and start  
execution of the user program, execute  
supplied instructions on the 8051 core, set  
code breakpoints, and single step through  
instructions in the code. Using these  
techniques it is possible to perform in-circuit  
The interrupt controller services 18 interrupt  
sources, divided into six interrupt groups, each  
SWRS055D  
Page 31 of 243  
 
 
C2510Fx / CC2511Fx  
debugging and external flash programming.  
See Section 12 for details.  
precision baud-rate generator, hence leaving  
the ordinary timers free for other uses. When  
configured as an SPI slave they sample the  
input signal using SCK directly instead of  
using some over-sampling scheme and are  
therefore well-suited for high data rates. See  
Section 13.14 for details.  
The I/O-controller is responsible for all  
general-purpose I/O pins. The CPU can  
configure whether peripheral modules control  
certain pins or if they are under software  
control. In the latter case, each pin can be  
configured as an input or output and it is also  
possible to configure the input mode to be pull-  
up, pull-down, or tristate. Each peripheral that  
connects to the I/O-pins can choose between  
two different I/O pin locations to ensure  
flexibility in various applications. See Section  
13.4 for details.  
The AES encryption/decryption core allows  
the user to encrypt and decrypt data using the  
AES algorithm with 128-bit keys. See Section  
13.12 for details.  
The ADC supports 7 to 12 bits of resolution in  
a 30 kHz to 4 kHz bandwidth respectively. DC  
and audio conversions with up to eight input  
channels (P0) are possible (CC2511Fx is limited  
to six channels). The inputs can be selected  
as single ended or differential. The reference  
voltage can be internal, AVDD, or a single  
ended or differential external signal. The ADC  
also has a temperature sensor input channel.  
The ADC can automate the process of  
The Sleep Timer is an ultra-low power timer  
which uses a 32.768 kHz crystal oscillator or a  
low power RC oscillator as clock source. The  
Sleep Timer runs continuously in all operating  
modes except active mode and PM3 and is  
typically used to get out of PM0, PM1, or PM2.  
See Section 13.8 for details.  
periodic sampling or conversion over  
sequence of channels. See Section 13.10 for  
details.  
a
A
built-in watchdog timer allows the  
CC2510Fx/CC2511Fx to reset itself in case the  
firmware hangs. When enabled, the watchdog  
timer must be cleared periodically, otherwise it  
will reset the device when it times out. See  
Section 13.13 for details.  
The USB allows the CC2511Fx to implement a  
Full-Speed USB 2.0 compatible device. The  
USB has a dedicated 1 KB SRAM that is used  
for the endpoint FIFOs. 5 endpoints are  
available in addition to control endpoint 0.  
Each of these endpoints must be configured  
as Bulk/Interrupt or Isochronous and can be  
used as IN, OUT or IN/OUT. Double buffering  
of packets is also supported for endpoints 1-5.  
The maximum FIFO memory available for  
each endpoint is as follows: 32 bytes for  
endpoint 0, 32 bytes for endpoint 1, 64 bytes  
for endpoint 2, 128 bytes for endpoint 3, 256  
bytes for endpoint 4, and 512 bytes for  
endpoint 5. When an endpoint is used as  
IN/OUT, the FIFO memory available for the  
endpoint can be distributed between IN and  
OUT depending on the demands of the  
application. The USB does not exist on the  
CC2510Fx. See Section 13.16 for details.  
Timer 1 is a 16-bit timer which supports typical  
timer/counter functions such as input capture,  
output compare, and PWM functions. The  
timer has a programmable prescaler, a 16-bit  
period value, and three independent  
capture/compare channels. Each of the  
channels can be used as PWM outputs or to  
capture the timing of edges on input signals. A  
second order Sigma-Delta noise shaper mode  
is also supported for audio applications. See  
Section 13.6 for details.  
Timer 2 (MAC timer) is specially designed to  
support time-slotted protocols in software. The  
timer has a configurable timer period and a  
programmable prescaler range. See Section  
13.7 for details.  
The I2S can be used to send/receive audio  
samples to/from an external sound processor  
or DAC and may operate at full or half duplex.  
Samples of up to 16-bits resolution can be  
used although the I2S can be configured to  
send more low order bits if necessary to be  
compliant with the resolution of the receiver  
(up to 32 bit). The maximum bit-rate supported  
is 3.5 Mbps. The I2S can be configured as a  
master or slave device and supports both  
mono and stereo. Automatic µ-Law expansion  
and compression can also be configured. See  
Section 13.15 for details.  
Timers 3 and Timer 4 are two 8-bit timers  
which supports typical timer/counter functions  
such as output compare and PWM functions.  
They have a programmable prescaler, an 8-bit  
period value, and two compare channels each,  
which can be used as PWM outputs. See  
Section 13.9 for details.  
USART  
0
and USART  
1
are each  
configurable as either an SPI master/slave or  
a UART. They provide hardware flow-control  
and double buffering on both RX and TX and  
are thus well suited for high-throughput, full-  
duplex applications. Each has its own high-  
SWRS055D  
Page 32 of 243  
C2510Fx / CC2511Fx  
9.2 Radio  
requiring very few external components. See  
Section 14 for details.  
CC2510Fx/CC2511Fx features an RF transceiver  
based on the industry-leading CC2500,  
10 Application Circuit  
Only a few external components are required  
for using the CC2510Fx/CC2511Fx. The  
recommended application circuit for CC2510Fx  
is shown in Figure 10. The recommended  
application circuits for CC2511Fx are shown in  
Figure 11 and Figure 12. The first of the  
recommended CC2511Fx circuit uses  
a
fundamental crystal and the second uses a 3rd  
overtone crystal. The external components are  
described in Table 28, and typical values are  
given inTable 29.  
10.1 Bias Resistor  
The bias resistor R271 is used to set an  
accurate bias current.  
10.2 Balun and RF Matching  
The balanced RF input and output of  
CC2510Fx/CC2511Fx share two common pins and  
are designed for a simple, low-cost matching  
and balun network on the printed circuit board.  
The RX- and TX switching at the  
CC2510Fx/CC2511Fx front-end is controlled by a  
dedicated on-chip function, eliminating the  
need for an external RX/TX-switch.  
C232, C242, and two inductive transmission  
PCB lines form the recommended balun that  
converts the differential RF port on CC2510Fx to  
a single-ended RF signal. For the CC2511Fx  
balun, the inductive PCB lines are replaced by  
L241 and L231. Note that either of the  
solutions (PCB lines or discrete components)  
can be used for both the chips. C241 and  
C231 are needed for DC blocking. Together  
with an appropriate LC filter network, the balun  
components also transform the impedance to  
match a 50 antenna (or cable). Component  
values for the RF balun and LC network are  
found in the latest CC2510EM and  
CC2511Dongle reference designs ([1] and [2]).  
Suggested values are also listed in Table 29.  
The balun and LC filter component values,  
their placement and layout are important in  
order to keep the performance of the  
CC2510Fx/CC2511Fx optimized. It is highly  
recommended to follow the CC2510EM /  
CC2511Dongle reference designs. Gerber  
files for the reference designs are available for  
download from the TI website  
A few passive external components combined  
with the internal RX/TX switch/termination  
circuitry ensures match in both RX and TX  
mode.  
Although CC2510Fx/CC2511Fx has a balanced  
RF input/output, the chip can be connected to  
a single-ended antenna with few external low  
cost capacitors and inductors.  
The  
passive  
matching/filtering  
network  
connected to CC2510Fx/CC2511Fx should have  
the following differential impedance as seen  
from the RF-port (RF_P and RF_N) towards  
the antenna:  
Zout = 80 + j74  
SWRS055D  
Page 33 of 243  
 
C2510Fx / CC2511Fx  
10.3 Crystal  
The loading capacitor values depend on the  
total load capacitance, CL, specified for the  
crystal. The total load capacitance seen  
between the crystal terminals should equal CL  
for the crystal to oscillate at the specified  
frequency. For the CC2510Fx using the crystal  
X1, the load capacitance CL is given as:  
The crystal oscillator for the CC2510Fx uses an  
external crystal X1, with two loading capacitors  
(C201 and C211).  
The CC2511Fx should use  
a
48 MHz  
fundamental (X3) or a 48 MHz 3rd overtone low  
cost external crystal (X4). Depending on the  
option selected, different loading capacitors  
(C203 and C214 or C202, C212, and C213)  
must be used. When X4 is used, an inductor  
(L281) must also be connected in series with  
C212.  
1
CL =  
+ CParasitic  
1
1
+
C211 C201  
The parasitic capacitance is constituted by pin  
input capacitance and PCB stray capacitance.  
Total parasitic capacitance is typically 2.5 pF.  
Note: The high speed crystal oscillator  
must be stable (SLEEP.XOSC_STB=1)  
before using the radio.  
The crystal oscillator is amplitude regulated.  
This means that a high current is used to start  
up the oscillations. When the amplitude builds  
up, the current is reduced to what is necessary  
to maintain approximately 0.4 Vpp signal  
swing. This ensures a fast start-up, and keeps  
the drive level to a minimum. The ESR of the  
crystal should be within the specification in  
order to ensure a reliable start-up  
The recommended application circuits also  
show the connections for an optional 32.768  
kHz crystal oscillator with external crystal X2  
and loading capacitors C181 and C171. This  
crystal can be used by the Sleep Timer if more  
accurate wake-up intervals are needed than  
what the internal RC oscillator can provide.  
When not using X2, P2_3 and P2_4 may be  
used as general IO pins.  
10.4 USB (CC2511Fx)  
the pull-up resistor does not provide current to  
the D+ line when VBUS is removed. The pull-up  
resistor may be connected directly between  
VBUS and the D+ line. As an alternative, if the  
CC2511Fx firmware needs the ability to  
disconnect from the USB bus, an I/O pin on  
the CC2511Fx can be used to control the pull-up  
resistor.  
For the CC2511Fx, the DP and DM pins need  
series resistors R262 and R263 for impedance  
matching and the D+ line must have a pull-up  
resistor, R264. The series resistors should  
match the 90  
±15% characteristic  
impedance of the USB bus.  
Notice that the pull-up resistor must be tied to  
a voltage source between 3.0 and 3.6 V  
(typically 3.3 V). The voltage source must be  
derived from or controlled by the VBUS power  
supply provided by the USB cable. In this way,  
10.5 Power Supply Decoupling  
The power supply must be properly decoupled  
close to the supply pins. Note that decoupling  
capacitors are not shown in the application  
circuit. The placement and the size of the  
decoupling capacitors are very important to  
achieve the optimum performance. TI provides  
reference designs that should be followed  
closely ([1] and [2]).  
SWRS055D  
Page 34 of 243  
C2510Fx / CC2511Fx  
Figure 10: Application Circuit for CC2510Fx (excluding supply decoupling capacitors)  
Figure 11: Application Circuit for CC2511Fx with Fundamental Crystal (excluding supply decoupling  
capacitors)  
SWRS055D  
Page 35 of 243  
 
 
C2510Fx / CC2511Fx  
Figure 12: Application Circuit for CC2511Fx with 3rd Overtone Crystal (excluding supply decoupling  
capacitors)  
Component  
C301  
Description  
Decoupling capacitor for on-chip voltage regulator to digital part  
Crystal loading capacitors (X3)  
Crystal loading capacitors (X4)  
Crystal loading capacitors (X1)  
RF balun DC blocking capacitors  
RF balun/matching capacitors  
C203/C214  
C202/C212/C213  
C201/C211  
C231/C241  
C232/C241  
C233/C234  
C181/C171  
L231/L241  
L232  
RF LC filter/matching capacitors  
Crystal loading capacitors if X2 is used.  
RF balun/matching inductors (inexpensive multi-layer type)  
RF LC filter inductor (inexpensive multi-layer type)  
Crystal inductor  
L281  
R271  
Resistor for internal bias current reference  
D+ Pull-up resistor  
R264  
R262/R263  
X1  
D+ / D- series resistors for impedance matching  
24 - 27 MHz crystal  
X2  
32.768 kHz crystal, optional  
X3  
48 MHz crystal (fundamental)  
X4  
48 MHz crystal (3rd overtone)  
Table 28: Overview of External Components (excluding supply decoupling capacitors)  
SWRS055D  
Page 36 of 243  
 
C2510Fx / CC2511Fx  
Component  
C301  
Value  
1 µF ±10%, 0402 X5R  
33 pF  
C203/C214  
C202  
56 pF  
C212  
10 nF  
C213  
33 pF  
C201, C211  
C231, C241  
C171, C181  
C232, C242  
C233  
27 pF ±5%, 0402 NP0  
100 pF ±5%, 0402 NP0  
15 pF ±5%, 0402 NP0  
1.0 pF ±0.25 pF, 0402 NP0  
1.8 pF ±0.25 pF, 0402 NP0  
1.5 pF ±0.25 pF, 0402 NP0  
C234  
L231, L232, L241  
L281  
1.2 nH ±0.3 nH, 0402 monolithic, Murata LQG-15 series  
470 nH ±10%, Murata LQM18NNR47K00  
56 k±1%, 0402  
R271  
R264  
1.5 k±5%  
R262/R263  
X1  
33 ±2%  
26.0 MHz surface mount crystal  
32.768 kHz surface mount crystal (optional)  
48.0 MHz surface mount crystal (fundamental)  
48.0 MHz surface mount crystal (3rd overtone)  
X2  
X3  
X4  
Table 29: Bill Of Materials for the CC2510Fx/CC2511Fx Application Circuits (subject to changes)  
10.6 PCB Layout Recommendations  
The top layer should be used for signal routing,  
and the open areas should be filled with  
metallization connected to ground using  
several vias.  
Each decoupling capacitor should be placed  
as close as possible to the supply pin it is  
supposed to decouple. The best routing is from  
the power line to the decoupling capacitor and  
then to the CC2510Fx supply pin. Supply power  
filtering is very important.  
The area under the chip is used for grounding  
and shall be connected to the bottom ground  
plane with several vias for good thermal  
performance and sufficiently low inductance to  
ground. In the CC2510EM reference designs  
[1] 9 vias are placed inside the exposed die  
attached pad. These vias should be “tented”  
(covered with solder mask) on the component  
side of the PCB to avoid migration of solder  
through the vias during the solder reflow  
process.  
Each decoupling capacitor ground pad should  
be connected to the ground plane using a  
separate via. Direct connections between  
neighboring power pins will increase noise  
coupling and should be avoided unless  
absolutely necessary.  
The external components should ideally be as  
small as possible (0402 is recommended) and  
surface  
mount  
devices  
are  
highly  
The solder paste coverage should not be  
100%. If it is, out gassing may occur during the  
reflow process, which may cause defects  
(splattering, solder balling). Using “tented” vias  
reduces the solder paste coverage below  
100%.  
recommended. Please note that components  
smaller than those specified may have differing  
characteristics.  
Schematic, BOM, and layout Gerber files are  
all available from the TI website for both the  
CC2510EM reference design [1] and the  
CC2511 USB Dongle reference design [2].  
See Figure 13 for top solder resist and top  
paste masks recommendations.  
SWRS055D  
Page 37 of 243  
C2510Fx / CC2511Fx  
Figure 13: Left: Top Solder Resist Mask (negative). Right: Top Paste Mask. Circles are Vias.  
11 8051 CPU  
This section describes the 8051 CPU core,  
with interrupts, memory, and instruction set.  
11.1 8051 Introduction  
The CC2510Fx/CC2511Fx includes an 8-bit CPU  
core which is an enhanced version of the  
industry standard 8051 core.  
A second data pointer  
Extended 18-source interrupt unit  
The 8051 core is object code compatible with  
the industry standard 8051 microcontroller.  
That is, object code compiled with an industry  
standard 8051 compiler or assembler  
executes on the 8051 core and is functionally  
equivalent. However, because the 8051 core  
uses a different instruction-timing than many  
other 8051 variants, existing code with timing  
loops may require modification. Also because  
the peripheral units such as timers and serial  
ports differ from those on other 8051 cores,  
code which includes instructions using the  
peripheral units SFRs will not work correctly.  
The enhanced 8051 core uses the standard  
8051 instruction set. Instructions execute  
faster than the standard 8051 due to the  
following:  
One clock per instruction cycle is used  
as opposed to 12 clocks per instruction  
cycle in the standard 8051.  
Wasted bus states are eliminated.  
Since an instruction cycle is aligned with  
memory fetch when possible, most of the  
single byte instructions are performed in a  
single clock cycle. In addition to the speed  
improvement, the enhanced 8051 core also  
includes architectural enhancements:  
11.2 Memory  
The 8051 CPU architecture has four different  
memory spaces. The 8051 has separate  
memory spaces for program memory and data  
memory. The 8051 memory spaces are the  
following (see Section 11.2.1 and 11.2.2 for  
details):  
DATA. An 8-bit read/write data memory  
space, which can be directly or indirectly,  
accessed by a single cycle CPU instruction,  
thus allowing fast access. The lower 128 bytes  
of the DATA memory space can be addressed  
either directly or indirectly, the upper 128 bytes  
only indirectly.  
CODE. A 16-bit read-only memory space for  
program memory.  
XDATA. A 16-bit read/write data memory  
space, which usually requires 4 - 5 CPU  
SWRS055D  
Page 38 of 243  
C2510Fx / CC2511Fx  
instruction cycles to access, thus giving slow  
access. XDATA assesses is also slower in  
hardware than DATA accesses as the CODE  
and XDATA memory spaces share a common  
bus on the CPU core (instruction pre-fetch  
from CODE can not be performed in parallel  
with XDATA accesses).  
11.2.1 Memory Map  
This section gives an overview of the memory  
map.  
Both the DATA and the SFR memory space is  
mapped to the XDATA and CODE memory  
space as shown in Figure 14, Figure 15, and  
Figure 16 (the CODE and XDATA memory  
spaces are mapped identically), and  
CC2510FX/CC2511FX has what can be called a  
unified memory space.  
SFR. A 7-bit read/write register memory  
space, which can be directly accessed by a  
single CPU instruction. For SFRs whose  
address is divisible by eight, each bit is also  
individually addressable.  
Mapping all the memory spaces to XDATA  
allows the DMA controller access to all  
physical memory and thus allows DMA  
transfers between the different 8051 memory  
spaces. This also means that any instruction  
that read, write, or manipulate an XDATA  
variable can be used on the entire unified  
memory space, except writing to or changing  
data in flash.  
The four different memory spaces are distinct  
in the 8051 architecture, but are partly  
overlapping in the CC2510Fx/CC2511Fx to ease  
DMA transfers and hardware debugger  
operation.  
How the different memory spaces are mapped  
onto the three physical memories (8/16/32 KB  
flash program memory, 1/2/48 KB SRAM, and  
hardware registers (SFR, radio, I2S, and USB  
(CC2511Fx)) is described in Section 11.2.1 and  
Section 11.2.2.  
Mapping all memory spaces to the CODE  
memory space is primarily done to allow  
program execution out of the SRAM/XDATA.  
SWRS055D  
Page 39 of 243  
 
C2510Fx / CC2511Fx  
Figure 14: CC2510F8/CC2511F8 Memory Mapping  
SWRS055D  
Page 40 of 243  
 
C2510Fx / CC2511Fx  
Figure 15: CC2510F16/CC2511F16 Memory Mapping  
SWRS055D  
Page 41 of 243  
C2510Fx / CC2511Fx  
Figure 16: CC2510F32/CC2511F32 Memory Mapping  
Details about the mapping of all 8051 memory  
spaces are given in the next section.  
Compilers/assemblers  
consideration that the first address of usable  
SRAM start at 0xF000 instead of 0x0000.  
must  
take  
into  
The 350 bytes of XDATA in location 0xFDA2-  
0xFEFF on CC2510F32 and CC2511F32 do not  
retain data when power modes PM2 or PM3  
are entered. Refer to Section 13.1.2 on Page  
75 for a detailed description of power modes.  
11.2.2 8051 Memory Space  
This section describes the details of each  
standard 8051 memory space. Any differences  
between  
the  
standard  
8051  
and  
CC2510Fx/CC2511Fx is described.  
The 256 bytes from 0xFF00 to 0xFFFF are the  
DATA memory space mapped to XDATA.  
These bytes are also reached through the  
DATA memory space.  
11.2.2.1 XDATA Memory Space  
On a standard 8051 this memory space would  
hold any extra RAM available.  
In addition the following is mapped into the  
XDATA memory space:  
The 8, 16, and 32 KB flash program memory is  
mapped into the address ranges 0x0000 -  
0x1FFF, 0x0000 - 0x3FFF, and 0x0000 -  
0x7FFF respectively.  
Radio registers are mapped into  
address range 0xDF00 - 0xDF3D.  
I2S registers are mapped into the  
The CC2510Fx/CC2511Fx has a total of 1, 2, or 4  
KB SRAM, starting at address 0xF000.  
address range 0xDF40 - 0xDF48.  
SWRS055D  
Page 42 of 243  
C2510Fx / CC2511Fx  
11.2.2.4 SFR Memory Space  
All SFR except the registers shown in  
gray in Table 30 are mapped into  
address range 0xDF80-0xDFFF.  
The SFR memory space is identical to a  
standard 8051.  
The USB registers are mapped into the  
address range 0xDE00 - 0xDE3F on the  
CC2511Fx, but are not implemented on  
the CC2510Fx.  
The 128 hardware SFRs are accessed through  
this memory space.  
Unlike on a standard 8051, the SFRs are also  
accessible through the XDATA and CODE  
memory space at the address range 0xDF80 -  
0xDFFF.  
This memory mapping allows the DMA  
controller (and the CPU) access to all the  
physical memories in a single unified address  
space.  
Some CPU-specific SFRs reside inside the  
CPU core and can only be accessed using the  
SFR memory space and not through the  
duplicate mapping into XDATA/CODE memory  
space. These registers are shown in gray in  
Table 30. Be aware that these registers can  
not be accessed using DMA.  
Be aware that access to unimplemented areas  
in the unified memory space will give an  
undefined result.  
11.2.2.2 CODE Memory Space  
On a standard 8051 this memory space would  
hold the program memory, where the MCU  
reads the program/instructions.  
11.2.3 Physical Memory  
11.2.3.1 SRAM  
All memory spaces are mapped into the CODE  
memory space and the mapping is identical to  
the XDATA memory space, hence the  
CC2510Fx/CC2511Fx has what can be referred to  
as a unified memory space.  
The CC2510Fx/CC2511Fx contains static RAM. At  
power-on the contents of RAM is undefined.  
The RAM size is 1, 2, or 4 KB in total, mapped  
to the memory range 0xF000 – 0xFFFF. In the  
F8 version, memory range 0xF400 - 0xFFFF is  
unimplemented while on the F16 version,  
Due to this, the CC2510Fx/CC2511Fx allows  
execution of a program stored in SRAM. This  
allows the program to be easily updated  
without writing to flash (which have a limited  
erase/write cycles) This is particularly useful  
on the CC2511Fx, where parts of the firmware  
can be downloaded from the windows USB  
driver.  
memory range 0xF800  
unimplemented.  
0xFFFF is  
The memory locations 0xFDA2 - 0xFEFF  
consisting of 350 bytes in unified memory  
space do not retain data when power modes  
PM2 or PM3 is entered. All other RAM memory  
locations are retained in all power modes.  
Executing a program from SRAM instead of  
flash will also result in a lower power  
consumption and may be interesting for battery  
powered devices.  
11.2.3.2 Flash Memory  
The on-chip flash memory consists of 8192,  
16384, or 32768 bytes (F8, F16, and F32). The  
flash memory is primarily intended to hold  
program code. The flash memory has the  
following features:  
11.2.2.3 DATA Memory Space  
The 8-bit address range of DATA memory  
space is mapped into address 0xFF00 –  
0xFFFF and is accessible through the unified  
memory space. Just like on a standard 8051,  
the upper 128 byte share address with the  
SFR and can only be accessed indirectly, the  
stack is normally located here. The lower 48  
bytes are reserved, and hold 4 register banks  
used by the MCU. The 16 bytes on addresses  
0x20 to 0x2F are bit addressable.  
Flash page erase time: 20 ms  
Flash chip (mass) erase time: 200 ms  
Flash write time (2 bytes): 20 µs  
Data retention (at room temperature):  
100 years  
Program/erase endurance: Minimum  
1,000 cycles  
The DATA memory will retain its contents in all  
four power modes.  
The flash memory consists of the Flash Main  
Pages (up to 32 times 1 KB) which is where  
the CPU reads program code and data. The  
flash memory also contains  
a
Flash  
SWRS055D  
Page 43 of 243  
 
C2510Fx / CC2511Fx  
Information Page (1 KB) which contains the  
Flash Lock Bits. The lock protect bits are  
written as a normal flash write to FWDATA but  
the Debug Interface needs to select the Flash  
Information Page first instead of the Flash  
Main Page. The Information Page is selected  
through the Debug Configuration which is  
written through the Debug Interface only. The  
Flash Controller (see Section 13.3) is used to  
write and erase the contents of the flash main  
memory.  
11.2.3.3 Special Function Registers  
The Special Function Registers (SFRs) control  
several of the features of the 8051 CPU core  
and/or peripherals. Many of the 8051 core  
SFRs are identical to the standard 8051 SFRs.  
However, there are additional SFRs that  
control features that are not available in the  
standard 8051. The additional SFRs are used  
to interface with the peripheral units and RF  
transceiver.  
Table 30 shows the address to all SFRs in  
CC2510Fx/CC2511Fx. The 8051 internal SFRs are  
shown with grey background, while the other  
SFRs are specific to CC2510Fx/CC2511Fx.  
When the CPU reads instructions from flash  
memory, it fetches the next instruction through  
a cache. The instruction cache is provided  
mainly to reduce power consumption by  
reducing the amount of time the flash memory  
itself is accessed. The use of the instruction  
Note: All internal SFRs (shown with grey  
background in Table 30, can only be accessed  
through SFR memory space as these registers  
are not mapped into XDATA memory space.  
cache  
may  
be  
disabled  
with  
the  
MEMCTR.CACHDIS register bit, but doing so  
will increase power consumption.  
Table 31 lists the additional SFRs that are not  
standard 8051 peripheral SFRs or CPU-  
internal SFRs. The additional SFRs are  
described in the relevant sections for each  
peripheral function.  
8 Bytes  
80  
88  
90  
98  
P0  
SP  
DPL0  
P1IFG  
DPS  
DPH0  
DPL1  
DPH1  
U0CSR  
PCON  
P0INP  
87  
8F  
97  
9F  
A7  
AF  
B7  
BF  
TCON  
P1  
P0IFG  
RFIM  
P2IFG  
PICTL  
P1IEN  
MPAGE  
S1CON  
WOREVT0  
FWT  
ENDIAN  
T2PR  
S0CON  
IEN2  
T2CT  
T2CTL  
A0 P2  
WORIRQ WORCTRL  
IP0  
WOREVT1  
FADDRL  
ADCCON1  
RNDL  
WORTIME0  
FADDRH  
ADCCON2  
RNDH  
WORTIME1  
FCTL  
A8 IEN0  
B0  
FWDATA  
ENCDI  
IP1  
ENCDO  
ADCL  
ENCCS  
ADCH  
ADCCON3  
SLEEP  
B8 IEN1  
C0 IRCON  
C8  
U0DBUF  
WDCTL  
DMAIRQ  
RFD  
U0BAUD  
T3CNT  
U0UCR  
U0GCR  
T3CC0  
CLKCON  
T3CCTL1  
MEMCTR C7  
T3CC1 CF  
DMAREQ D7  
T1CC2H DF  
T1CCTL2 E7  
T3CTL  
T3CCTL0  
D0 PSW  
D8 TIMIF  
E0 ACC  
E8 IRCON2  
DMA1CFGL DMA1CFGH DMA0CFGL DMA0CFGH DMAARM  
T1CC0L  
T1CNTL  
T4CNT  
T1CC0H  
T1CNTH  
T4CTL  
T1CC1L  
T1CTL  
T1CC1H  
T1CCTL0  
T4CC0  
T1CC2L  
T1CCTL1  
T4CCTL1  
P1INP  
RFST  
RFIF  
T4CCTL0  
P1SEL  
T4CC1  
P2INP  
P2DIR  
EF  
F7  
FF  
F0  
B
PERCFG ADCCFG  
U1DBUF U1BAUD  
P0SEL  
P2SEL  
F8 U1CSR  
U1UCR  
U1GCR  
P0DIR  
P1DIR  
Table 30: SFR Address Overview  
SWRS055D  
Page 44 of 243  
 
 
C2510Fx / CC2511Fx  
Register  
Name  
SFR  
Address  
Module  
Description  
Retention5  
ADCCON1  
ADCCON2  
ADCCON3  
ADCL  
0xB4  
0xB5  
0xB6  
0xBA  
0xBB  
0xBC  
0xBD  
0xB1  
0xB2  
0xB3  
0xD1  
0xD2  
ADC  
ADC  
ADC  
ADC  
ADC  
ADC  
ADC  
AES  
AES  
AES  
DMA  
DMA  
DMA  
DMA  
DMA  
DMA  
DMA  
FLASH  
FLASH  
FLASH  
FLASH  
FLASH  
IOC  
ADC Control 1  
Y
Y
Y
Y
Y
Y
ADC Control 2  
ADC Control 3  
ADC Data Low  
ADCH  
ADC Data High  
RNDL  
Random Number Generator Data Low  
RNDH  
Random Number Generator Data High  
Encryption/Decryption Input Data  
Encryption/Decryption Output Data  
Encryption/Decryption Control and Status  
DMA Interrupt Flag  
Y
ENCDI  
N
ENCDO  
ENCCS  
DMAIRQ  
DMA1CFGL  
N
N
Y
DMA Channel 1-4 Configuration Address Low  
DMA Channel 1-4 Configuration Address High  
DMA Channel 0 Configuration Address Low  
DMA Channel 0 Configuration Address High  
DMA Channel Arm  
Y
DMA1CFGH 0xD3  
DMA0CFGL 0xD4  
DMA0CFGH 0xD5  
Y
Y
Y
DMAARM  
DMAREQ  
FWT  
0xD6  
0xD7  
0xAB  
0xAC  
0xAD  
0xAE  
0xAF  
0x89  
0x8A  
0x8B  
0x8C  
0x8D  
0x8F  
0xF1  
0xF2  
0xF3  
0xF4  
0xF5  
0xF6  
0xF7  
0xFD  
0xFE  
0xFF  
0xC7  
Y
DMA Channel Start Request and Status  
Flash Write Timing  
Y
Y
FADDRL  
FADDRH  
FCTL  
Flash Address Low  
Y
Flash Address High  
Y
Flash Control  
[7:1]Y, [1:0]N  
FWDATA  
P0IFG  
Flash Write Data  
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Port 0 Interrupt Status Flag  
Port 1 Interrupt Status Flag  
Port 2 Interrupt Status Flag  
Port Pins Interrupt Mask and Edge  
Port 1 Interrupt Mask  
P1IFG  
IOC  
P2IFG  
IOC  
PICTL  
IOC  
P1IEN  
IOC  
P0INP  
IOC  
Port 0 Input Mode  
PERCFG  
ADCCFG  
P0SEL  
P1SEL  
P2SEL  
P1INP  
IOC  
Peripheral I/O Control  
IOC  
ADC Input Configuration  
Port 0 Function Select  
IOC  
IOC  
Port 1 Function Select  
IOC  
Port 2 Function Select  
IOC  
Port 1 Input Mode  
P2INP  
IOC  
Port 2 Input Mode  
P0DIR  
IOC  
Port 0 Direction  
P1DIR  
IOC  
Port 1 Direction  
P2DIR  
IOC  
Port 2 Direction  
MEMCTR  
MEMORY  
Memory System Control  
5
Registers without retention are in their reset state after PM2 or PM3. This is only applicable for  
registers / bits that are defined as R/W  
SWRS055D  
Page 45 of 243  
 
C2510Fx / CC2511Fx  
Register  
Name  
SFR  
Address  
Module  
Description  
Retention5  
SLEEP  
0xBE  
0xC6  
0x91  
0xD9  
0xE9  
0xE1  
0xA1  
0xA2  
0xA3  
0xA5  
0xA4  
0xA6  
0xDA  
0xDB  
0xDC  
0xDD  
0xDE  
0xDF  
0xE2  
0xE3  
0xE4  
0xE5  
0xE6  
0xE7  
0x9C  
0x9D  
0x9E  
0xCA  
0xCB  
0xCC  
0xCD  
0xCE  
0xCF  
0xEA  
0xEB  
0xEC  
0xED  
0xEE  
0xEF  
0xD8  
0x86  
0xC1  
PMC  
Sleep Mode Control  
Clock Control  
[6:2]Y, [7,1:0]N  
CLKCON  
RFIM  
PMC  
Y
RF  
RF Interrupt Mask  
RF Data  
Y
RFD  
RF  
N
Y
RFIF  
RF  
RF Interrupt flags  
RF Strobe Commands  
Sleep Timer Interrupts  
Sleep Timer Control  
RFST  
RF  
NA  
Y
WORIRQ  
WORCTRL  
WOREVT0  
WOREVT1  
WORTIME0  
WORTIME1  
T1CC0L  
T1CC0H  
T1CC1L  
T1CC1H  
T1CC2L  
T1CC2H  
T1CNTL  
T1CNTH  
T1CTL  
Sleep Timer  
Sleep Timer  
Sleep Timer  
Sleep Timer  
Sleep Timer  
Sleep Timer  
Timer1  
Timer1  
Timer1  
Timer1  
Timer1  
Timer1  
Timer1  
Timer1  
Timer1  
Timer1  
Timer1  
Timer1  
Timer2  
Timer2  
Timer2  
Timer3  
Timer3  
Timer3  
Timer3  
Timer3  
Timer3  
Timer4  
Timer4  
Timer4  
Timer4  
Timer4  
Timer4  
TMINT  
USART0  
USART0  
Y
Sleep Timer Event 0 Timeout Low Byte  
Sleep Timer Event 0 Timeout High Byte  
Sleep Timer Low Byte  
Y
Y
Y
Sleep Timer High Byte  
Y
Timer 1 Channel 0 Capture/Compare Value Low  
Timer 1 Channel 0 Capture/Compare Value High  
Timer 1 Channel 1 Capture/Compare Value Low  
Timer 1 Channel 1 Capture/Compare Value High  
Timer 1 Channel 2 Capture/Compare Value Low  
Timer 1 Channel 2 Capture/Compare Value High  
Timer 1 Counter Low  
Y
Y
Y
Y
Y
Y
Y
Timer 1 Counter High  
Y
Timer 1 Control and Status  
Y
T1CCTL0  
T1CCTL1  
T1CCTL2  
T2CT  
Timer 1 Channel 0 Capture/Compare Control  
Timer 1 Channel 1 Capture/Compare Control  
Timer 1 Channel 2 Capture/Compare Control  
Timer 2 Timer Count  
Y
Y
Y
N
T2PR  
Timer 2 Prescaler  
N
T2CTL  
Timer 2 Control  
N
T3CNT  
Timer 3 Counter  
Y
T3CTL  
Timer 3 Control  
Y,[2]N  
Y
T3CCTL0  
T3CC0  
Timer 3 Channel 0 Capture/Compare Control  
Timer 3 Channel 0 Capture/Compare Value  
Timer 3 Channel 1 Capture/Compare Control  
Timer 3 Channel 1 Capture/Compare Value  
Timer 4 Counter  
Y
T3CCTL1  
T3CC1  
Y
Y
T4CNT  
Y
T4CTL  
Timer 4 Control  
Y,[2]N  
Y
T4CCTL0  
T4CC0  
Timer 4 Channel 0 Capture/Compare Control  
Timer 4 Channel 0 Capture/Compare Value  
Timer 4 Channel 1 Capture/Compare Control  
Timer 4 Channel 1 Capture/Compare Value  
Timers 1/3/4 Joint Interrupt Mask/Flags  
USART 0 Control and Status  
Y
T4CCTL1  
T4CC1  
Y
Y
TIMIF  
Y
U0CSR  
U0DBUF  
Y
USART 0 Receive/Transmit Data Buffer  
Y
SWRS055D  
Page 46 of 243  
C2510Fx / CC2511Fx  
Register  
Name  
SFR  
Address  
Module  
Description  
Retention5  
U0BAUD  
U0UCR  
U0GCR  
U1CSR  
U1DBUF  
U1BAUD  
U1UCR  
U1GCR  
ENDIAN  
WDCTL  
0xC2  
0xC4  
0xC5  
0xF8  
0xF9  
0xFA  
0xFB  
0xFC  
0x95  
0xC9  
USART0  
USART0  
USART0  
USART1  
USART1  
USART1  
USART1  
USART1  
MEMORY  
WDT  
USART 0 Baud Rate Control  
USART 0 UART Control  
Y
Y,[7]N  
USART 0 Generic Control  
USART 1 Control and Status  
Y
Y
USART 1 Receive/Transmit Data Buffer  
USART 1 Baud Rate Control  
USART 1 UART Control  
Y
Y
Y,[7]N  
USART 1 Generic Control  
Y
Y
Y
USB Endianess Control (CC2511Fx)  
Watchdog Timer Control  
Table 31: CC2510Fx/CC2511Fx Specific SFR Overview  
11.2.3.4 Radio Registers  
space and reside in address range 0xDF00 -  
0xDF3D.  
The radio registers are all related to Radio  
configuration and control. The RF registers can  
only be accessed through XDATA memory  
Table 32 gives a descriptive overview of these  
registers. Each register is described in detail in  
Section 14.18, starting on Page 213.  
XDATA  
Register  
Description  
Retention6  
Address  
0xDF00  
0xDF01  
0xDF02  
0xDF03  
0xDF04  
0xDF05  
0xDF06  
0xDF07  
0xDF08  
0xDF09  
0xDF0A  
0xDF0B  
0xDF0C  
0xDF0D  
0xDF0E  
0xDF0F  
0xDF10  
0xDF11  
0xDF12  
SYNC1  
Sync word, high byte  
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
SYNC0  
Sync word, low byte  
PKTLEN  
PKTCTRL1  
PKTCTRL0  
ADDR  
Packet length  
Packet automation control  
Packet automation control  
Device address  
CHANNR  
FSCTRL1  
FSCTRL0  
FREQ2  
Channel number  
Frequency synthesizer control  
Frequency synthesizer control  
Frequency control word, high byte  
Frequency control word, middle byte  
Frequency control word, low byte  
Modem configuration  
FREQ1  
FREQ0  
MDMCFG4  
MDMCFG3  
MDMCFG2  
MDMCFG1  
MDMCFG0  
DEVIATN  
MCSM2  
Modem configuration  
Modem configuration  
Modem configuration  
Modem configuration  
Modem deviation setting  
Main Radio Control State Machine configuration  
Y
6
Registers without retention are in their reset state after PM2 or PM3. This is only applicable for  
registers / bits that are defined as R/W  
SWRS055D  
Page 47 of 243  
 
 
 
 
C2510Fx / CC2511Fx  
XDATA  
Register  
Description  
Retention6  
Address  
0xDF13  
0xDF14  
0xDF15  
0xDF16  
0xDF17  
0xDF18  
0xDF19  
0xDF1A  
0xDF1B  
0xDF1C  
0xDF1D  
0xDF1E  
0xDF1F  
MCSM1  
Main Radio Control State Machine configuration  
Main Radio Control State Machine configuration  
Frequency Offset Compensation configuration  
Bit Synchronization configuration  
AGC control  
Y
Y
Y
Y
Y
Y
Y
Y
Y
N
N
N
Y
Y
MCSM0  
FOCCFG  
BSCFG  
AGCTRL2  
AGCTRL1  
AGCTRL0  
FREND1  
FREND0  
FSCAL3  
FSCAL2  
FSCAL1  
FSCAL0  
AGC control  
AGC control  
Front end RX configuration  
Front end TX configuration  
Frequency synthesizer calibration  
Frequency synthesizer calibration  
Frequency synthesizer calibration  
Frequency synthesizer calibration  
Reserved  
0xDF20  
-
0xDF22  
0xDF23  
0xDF24  
0xDF25  
TEST2  
TEST1  
TEST0  
Various Test Settings  
Various Test Settings  
Various Test Settings  
Reserved  
Y
Y
Y
Y
0xDF27  
-
0xDF2D  
0xDF2E  
0xDF2F  
0xDF30  
0xDF31  
0xDF36  
0xDF37  
0xDF38  
0xDF39  
0xDF3A  
0xDF3B  
0xDF3C  
0xDF3D  
PA_TABLE0  
IOCFG2  
PA output power setting  
Radio test signal configuration (P1_7)  
Radio test signal configuration (P1_6)  
Radio test signal configuration (P1_5)  
Chip ID[16:8]  
Y
Y
IOCFG1  
Y
IOCFG0  
Y
PARTNUM  
VERSION  
FREQEST  
LQI  
NA  
NA  
NA  
NA  
NA  
NA  
NA  
NA  
Chip ID[7:0]  
Frequency Offset Estimate  
Link Quality Indicator  
RSSI  
Received Signal Strength Indication  
Main Radio Control State  
Packet status  
MARCSTATE  
PKSTATUS  
VCO_VC_DAC PLL calibration current  
Table 32: Overview of RF Registers  
11.2.3.5 I2S Registers  
0xDF48. Table 33 gives a descriptive overview  
of these registers. Each register is described in  
detail in Section 13.15.13, starting on Page  
167.  
The I2S registers are all related to I2S  
configuration and control. The I2S registers can  
only be accessed through XDATA memory  
space and reside in address range 0xDF40 -  
XDATA  
Register  
Description  
Retention7  
Address  
SWRS055D  
Page 48 of 243  
 
 
C2510Fx / CC2511Fx  
XDATA  
Register  
Description  
Retention7  
Address  
0xDF40  
0xDF41  
0xDF42  
0xDF43  
0xDF44  
0xDF45  
0xDF46  
0xDF47  
0xDF48  
I2SCFG0  
I2SCFG1  
I2SDATL  
I2SDATH  
I2SWCNT  
I2SSTAT  
I2SCLKF0  
I2SCLKF1  
I2SCLKF2  
I2S Configuration Register 0  
I2S Configuration Register 1  
I2S Data Low Byte  
Y
Y
N
I2S Data High Byte  
N
I2S Word Count Register  
I2S Status Register  
NA  
NA  
Y
I2S Clock Configuration Register 0  
I2S Clock Configuration Register 1  
I2S Clock Configuration Register 2  
Y
Y
Table 33: Overview of I2S Registers  
11.2.3.6 USB Registers  
Registers (Table 36). Each register is  
described in detail in Section 13.16.11, starting  
on Page 179. Notice that the upper register  
addresses 0xDE2C – 0xDE3F are reserved.  
The USB registers are all related to USB  
configuration and control. The USB registers  
can only be accessed through XDATA  
memory space and reside in address range  
0xDE00 - 0xDE3F. These registers can be  
divided into three groups: The Common USB  
Registers (Table 34), The Indexed Endpoint  
Registers (Table 35), and the Endpoint FIFO  
Note: All USB registers lose data in PM2  
and PM3, meaning that these power  
modes cannot be used on the CC2511Fx  
XDATA  
Register  
Description  
Address  
0xDE00  
0xDE01  
0xDE02  
0xDE03  
0xDE04  
0xDE05  
0xDE06  
0xDE07  
0xDE08  
0xDE09  
0xDE0A  
0xDE0B  
0xDE0C  
0xDE0D  
0xDE0E  
USBADDR  
USBPOW  
USBIIF  
Function Address  
Power/Control Register  
IN Endpoints and EP0 Interrupt Flags  
Reserved  
USBOIF  
OUT Endpoints Interrupt Flags  
Reserved  
USBCIF  
USBIIE  
Common USB Interrupt Flags  
IN Endpoints and EP0 Interrupt Enable Mask  
Reserved  
USBOIE  
Out Endpoints Interrupt Enable Mask  
Reserved  
USBCIE  
Common USB Interrupt Enable Mask  
Current Frame Number (Low byte)  
Current Frame Number (High byte)  
USBFRML  
USBFRMH  
USBINDEX  
Selects current endpoint. Make sure this register has the required value before any of the  
registers in Table 35 are accessed. This register must be set to a value in the range 0 – 5.  
Table 34: Overview of Common USB Registers  
SWRS055D  
Page 49 of 243  
 
 
 
C2510Fx / CC2511Fx  
XDATA  
Register  
Description  
Valid USBINDEX  
Address  
Value(s)  
1 – 5  
0
0xDE10  
0xDE11  
USBMAXI  
USBCS0  
Max. packet size for IN endpoint  
EP0 Control and Status (USBINDEX = 0)  
IN EP{1-5} Control and Status Low  
IN EP{1-5} Control and Status High  
Max. packet size for OUT endpoint  
OUT EP{1-5} Control and Status Low  
OUT EP{1-5} Control and Status High  
USBCSIL  
USBCSIH  
USBMAXO  
USBCSOL  
USBCSOH  
USBCNT0  
USBCNTL  
USBCNTH  
1 – 5  
1 – 5  
1 – 5  
1 – 5  
1 – 5  
0xDE12  
0xDE13  
0xDE14  
0xDE15  
Number of received bytes in EP0 FIFO (USBINDEX = 0)  
Number of bytes in OUT FIFO Low  
0
0xDE16  
0xDE17  
1 – 5  
1 – 5  
Number of bytes in OUT FIFO High  
Table 35: Overview of Indexed Endpoint Registers  
SWRS055D  
Page 50 of 243  
 
C2510Fx / CC2511Fx  
XDATA  
Register  
Description  
Address  
0xDE20  
0xDE22  
0xDE24  
0xDE26  
0xDE28  
0xDE2A  
USBF0  
USBF1  
USBF2  
USBF3  
USBF4  
USBF5  
Endpoint 0 FIFO  
Endpoint 1 FIFO  
Endpoint 2 FIFO  
Endpoint 3 FIFO  
Endpoint 4 FIFO  
Endpoint 5 FIFO  
Table 36: Overview of Endpoint FIFO Registers  
11.2.4 XDATA Memory Access  
In some 8051 implementations, this type of  
XDATA access is performed using P2 to give  
the most significant address bits. Existing  
software may therefore have to be adapted to  
make use of MPAGE instead of P2.  
The CC2510Fx/CC2511Fx provides an additional  
SFR named MPAGE. This register is used  
during instructions MOVX A,@Ri and MOVX  
@Ri,A. MPAGE gives the 8 most significant  
address bits, while the register Ri gives the 8  
least significant bits.  
MPAGE (0x93) – Memory Page Select  
Bit  
Name  
Reset  
R/W  
Description  
7:0  
MPAGE[7:0]  
0x00  
R/W  
Memory page, high-order bits of address in MOVX instruction  
11.2.5 Memory Arbiter  
A control register MEMCTR is used to control  
the flash cache. The MEMCTR register is  
described below.  
The CC2510Fx/CC2511Fx includes a memory  
arbiter which handles CPU and DMA access to  
all memory space.  
MEMCTR (0xC7) – Memory Arbiter Control  
Bit  
Name  
Reset  
R/W  
Description  
7:2  
0
R/W  
Not used  
1
0
R/W  
Flash cache disable. Invalidates contents of instruction cache and forces all  
instruction read accesses to read straight from flash memory. Disabling will  
increase power consumption and is provided for debug purposes.  
CACHDIS  
0
1
Cache enabled  
Cache disabled  
0
1
R/W  
Flash prefetch disable. When set prefetch of flash data is disabled, when  
cleared the next two bytes in flash are fetched when last byte in cache is  
read.  
PREFDIS  
0
1
Prefetch enabled  
Prefetch disabled  
SWRS055D  
Page 51 of 243  
 
 
 
C2510Fx / CC2511Fx  
11.3 CPU Registers  
This section describes the internal registers  
found in the CPU.  
The data pointer select bit, bit 0 in the Data  
Pointer Select register DPS, chooses which  
data pointer to use during the execution of an  
instruction that uses the data pointer, e.g. in  
one of the above instructions.  
11.3.1 Data Pointers  
The CC2510Fx/CC2511Fx has two data pointers,  
DPTR0 and DPTR1, to accelerate the  
movement of data blocks to/from memory. The  
data pointers are generally used to access  
CODE or XDATA space e.g.  
The data pointers are two bytes wide  
consisting of the following SFRs:  
DPTR0 – DPH0:DPL0  
DPTR1 – DPH1:DPL1  
MOVC A,@A+DPTR  
MOV A,@DPTR.  
DPH0 (0x83) – Data Pointer 0 High Byte  
Bit  
Name  
Reset  
R/W  
Description  
7:0  
DPH0[7:0]  
0
R/W  
Data pointer 0, high byte  
DPL0 (0x82) – Data Pointer 0 Low Byte  
Bit  
Name  
Reset  
R/W  
Description  
7:0  
DPL0[7:0]  
0
R/W  
Data pointer 0, low byte  
DPH1 (0x85) – Data Pointer 1 High Byte  
Bit  
Name  
Reset  
R/W  
Description  
7:0  
DPH1[7:0]  
0
R/W  
Data pointer 1, high byte  
DPL1 (0x84) – Data Pointer 1 Low Byte  
Bit  
Name  
Reset  
R/W  
Description  
7:0  
DPL1[7:0]  
0
R/W  
Data pointer 1, low byte  
DPS (0x92) – Data Pointer Select  
Bit  
7:1  
0
Name  
Reset  
R/W  
R/W  
R/W  
Description  
Not used  
0
0
DPS  
Data pointer select  
0
1
DPTR0  
DPTR1  
11.3.2 Registers R0 - R7  
bank to be used is selected through the  
Program Status Word PSW.RS[1:0].  
The CC2510Fx/CC2511Fx provides four register  
banks of eight registers each. These register  
banks are in the DATA memory space at  
addresses 0x00-0x07, 0x08-0x0F, 0x10-0x17  
and 0x18-0x1F and are mapped to address  
range 0xFF00 to 0xFF1F in the unified  
memory space. Each register bank contains  
the eight 8-bit register R0 - R7. The register  
11.3.3 Program Status Word  
The Program Status Word (PSW) contains  
several bits that show the current state of the  
CPU. The Program Status Word is accessible  
as an SFR and it is bit-addressable. The PSW  
register contains the Carry flag, Auxiliary Carry  
SWRS055D  
Page 52 of 243  
 
 
 
 
 
C2510Fx / CC2511Fx  
flag for BCD operations, Register Select bits,  
Overflow flag, and Parity flag. Two bits in PSW  
are uncommitted and can be used as user-  
defined status flags.  
PSW (0xD0) – Program Status Word  
Bit  
Name  
Reset  
R/W  
Description  
7
CY  
0
R/W  
Carry flag. Set to 1 when the last arithmetic operation resulted in a carry  
(during addition) or borrow (during subtraction), otherwise cleared to 0 by all  
arithmetic operations.  
6
AC  
0
R/W  
Auxiliary carry flag for BCD operations. Set to 1 when the last arithmetic  
operation resulted in a carry into (during addition) or borrow from (during  
subtraction) the high order nibble, otherwise cleared to 0 by all arithmetic  
operations.  
5
F0  
0
R/W  
R/W  
User-defined, bit-addressable  
4:3  
RS[1:0]  
00  
Register bank select bits. Selects which set of R7- R0registers to use from  
four possible register banks in DATA space.  
00  
01  
10  
11  
Bank 0, 0x00 – 0x07  
Bank 1, 0x08 – 0x0F  
Bank 2, 0x10 – 0x17  
Bank 3, 0x18 – 0x1F  
2
OV  
0
R/W  
Overflow flag, set by arithmetic operations. Set to 1 when the last arithmetic  
operation resulted in a carry (addition), borrow (subtraction), or overflow  
(multiply or divide). Otherwise, the bit is cleared to 0 by all arithmetic  
operations.  
1
0
F1  
P
0
0
R/W  
R/W  
User-defined, bit-addressable  
Parity flag, parity of accumulator set by hardware to 1 if it contains an odd  
number of 1’s, otherwise it is cleared to 0  
11.3.4 Accumulator  
data transfer and other instructions. The  
mnemonic for the accumulator (in instructions  
involving the accumulator) refers to A instead  
of ACC.  
ACC is the accumulator. This is the source  
and destination of most arithmetic instructions,  
ACC (0xE0) – Accumulator  
Bit  
Name  
Reset  
R/W  
Description  
7:0  
ACC[7:0]  
0x00  
R/W  
Accumulator  
11.3.5 B Register  
purposes it may be used as a scratch-pad  
register to hold temporary data.  
The B register is used as the second 8-bit  
argument during execution of multiply and  
divide instructions. When not used for these  
B (0xF0) – B Register  
Bit  
Name  
Reset  
R/W  
Description  
7:0  
B[7:0]  
0x00  
R/W  
B register. Used in MUL and DIV instructions.  
11.3.6 Stack Pointer  
copies the byte into the stack. The Stack  
Pointer is initialized to 0x07 after a reset and it  
is incremented once to start from location  
0x08, which is the first register (R0) of the  
The stack resides in DATA memory space and  
grows upwards. The PUSH instruction first  
increments the Stack Pointer (SP) and then  
SWRS055D  
Page 53 of 243  
 
 
 
C2510Fx / CC2511Fx  
second register bank. Thus, in order to use  
more than one register bank, the SPshould be  
initialized to a different location not used for  
data storage.  
SP (0x81) – Stack Pointer  
Bit  
Name  
Reset  
R/W  
Description  
Stack Pointer  
7:0  
SP[7:0]  
0x07  
R/W  
11.4 Instruction Set Summary  
The 8051 instruction set is summarized in  
Table 37. All mnemonics copyrighted © Intel  
Corporation 1980.  
can be anywhere within the 8/16/32 KB  
CODE memory space.  
addr11 – 11-bit destination address.  
Used by ACALL and AJMP. The branch  
will be within the same 2 KB page of  
program memory as the first byte of the  
following instruction.  
rel – Signed (two’s complement) 8-bit  
offset byte. Used by SJMP and all  
conditional jumps. Range is –128 to  
+127 bytes relative to first byte of the  
following instruction.  
The following conventions are used in the  
instruction set summary:  
Rn – Register R7-R0 of the currently  
selected register bank.  
direct – 8-bit internal data location’s  
address. This can be DATA area (0x00  
– 0x7F) or SFR area (0x80 – 0xFF).  
@Ri – 8-bit internal data location, DATA  
area (0x00 – 0xFF) addressed indirectly  
through register R1or R0.  
bit – direct addressed bit in DATA area  
or SFR.  
#data – 8-bit constant included in  
instruction.  
#data16 – 16-bit constant included in  
instruction.  
addr16 – 16-bit destination address.  
Used by LCALL and LJMP. A branch  
The instructions that affect CPU flag settings  
located in PSW are listed in Table 38 on Page  
58. Note that operations on the PSWregister or  
bits in PSWwill also affect the flag settings.  
Mnemonic  
Description  
Hex  
Bytes  
Cycles  
Opcode  
Arithmetic Operations  
ADD A,Rn  
Add register to accumulator  
28-2F  
25  
1
2
1
2
1
2
1
2
1
2
1
2
1
1
2
1
2
2
2
1
2
2
2
1
2
2
2
1
2
3
ADD A,direct  
ADD A,@Ri  
ADD A,#data  
ADDC A,Rn  
ADDC A,direct  
ADDC A,@Ri  
ADDC A,#data  
SUBB A,Rn  
SUBB A,direct  
SUBB A,@Ri  
SUBB A,#data  
INC A  
Add direct byte to accumulator  
Add indirect RAM to accumulator  
Add immediate data to accumulator  
Add register to accumulator with carry flag  
Add direct byte to A with carry flag  
Add indirect RAM to A with carry flag  
Add immediate data to A with carry flag  
Subtract register from A with borrow  
Subtract direct byte from A with borrow  
Subtract indirect RAM from A with borrow  
Subtract immediate data from A with borrow  
Increment accumulator  
26-27  
24  
38-3F  
35  
36-37  
34  
98-9F  
95  
96-97  
94  
04  
INC Rn  
Increment register  
08-0F  
05  
INC direct  
Increment direct byte  
SWRS055D  
Page 54 of 243  
 
 
C2510Fx / CC2511Fx  
Mnemonic  
Description  
Hex  
Bytes  
Cycles  
Opcode  
INC @Ri  
Increment indirect RAM  
Increment data pointer  
Decrement accumulator  
Decrement register  
06-07  
A3  
1
1
1
1
2
1
1
1
1
3
1
1
2
3
3
5
5
1
INC DPTR  
DEC A  
14  
DEC Rn  
18-1F  
15  
DEC direct  
DEC @Ri  
Decrement direct byte  
Decrement indirect RAM  
Multiply A and B  
16-17  
A4  
MUL AB  
DIV  
Divide A by B  
84  
DA A  
Decimal adjust accumulator  
D4  
Logical Operations  
ANL A,Rn  
ANL A,direct  
ANL A,@Ri  
ANL A,#data  
ANL direct,A  
ANL direct,#data  
ORL A,Rn  
ORL A,direct  
ORL A,@Ri  
ORL A,#data  
ORL direct,A  
ORL direct,#data  
XRL A,Rn  
XRL A,direct  
XRL A,@Ri  
XRL A,#data  
XRL direct,A  
XRL direct,#data  
CLR A  
AND register to accumulator  
58-5F  
55  
1
2
1
2
2
3
1
2
1
2
2
3
1
2
1
2
2
3
1
1
1
1
1
1
1
1
2
2
2
3
4
1
2
2
2
3
4
1
2
2
2
3
4
1
1
1
1
1
1
1
AND direct byte to accumulator  
AND indirect RAM to accumulator  
AND immediate data to accumulator  
AND accumulator to direct byte  
AND immediate data to direct byte  
OR register to accumulator  
56-57  
54  
52  
53  
48-4F  
45  
OR direct byte to accumulator  
OR indirect RAM to accumulator  
OR immediate data to accumulator  
OR accumulator to direct byte  
46-47  
44  
42  
OR immediate data to direct byte  
Exclusive OR register to accumulator  
Exclusive OR direct byte to accumulator  
Exclusive OR indirect RAM to accumulator  
Exclusive OR immediate data to accumulator  
Exclusive OR accumulator to direct byte  
Exclusive OR immediate data to direct byte  
Clear accumulator  
43  
68-6F  
65  
66-67  
64  
62  
63  
E4  
CPL A  
Complement accumulator  
F4  
RL A  
Rotate accumulator left  
23  
RLC A  
Rotate accumulator left through carry  
Rotate accumulator right  
33  
RR A  
03  
RRC A  
Rotate accumulator right through carry  
Swap nibbles within the accumulator  
13  
SWAP A  
C4  
Data Transfers  
MOV A,Rn  
MOV A,direct  
MOV A,@Ri  
MOV A,#data  
MOV Rn,A  
MOV Rn,direct  
Move register to accumulator  
Move direct byte to accumulator  
Move indirect RAM to accumulator  
Move immediate data to accumulator  
Move accumulator to register  
Move direct byte to register  
E8-EF  
E5  
1
2
1
2
1
2
1
2
2
2
2
4
E6-E7  
74  
F8-FF  
A8-AF  
SWRS055D  
Page 55 of 243  
C2510Fx / CC2511Fx  
Mnemonic  
Description  
Hex  
Bytes  
Cycles  
Opcode  
MOV Rn,#data  
MOV direct,A  
MOV direct,Rn  
MOV direct1,direct2  
MOV direct,@Ri  
MOV direct,#data  
MOV @Ri,A  
Move immediate data to register  
78-7F  
F5  
2
2
2
3
2
3
1
2
2
3
1
1
1
1
1
1
2
2
1
2
1
1
2
Move accumulator to direct byte  
3
Move register to direct byte  
88-8F  
85  
3
Move direct byte to direct byte  
4
Move indirect RAM to direct byte  
86-87  
75  
4
Move immediate data to direct byte  
Move accumulator to indirect RAM  
Move direct byte to indirect RAM  
3
F6-F7  
A6-A7  
76-77  
90  
3
MOV @Ri,direct  
MOV @Ri,#data  
MOV DPTR,#data16  
MOVC A,@A+DPTR  
MOVC A,@A+PC  
MOVX A,@Ri  
MOVX A,@DPTR  
MOVX @Ri,A  
MOVX @DPTR,A  
PUSH direct  
5
Move immediate data to indirect RAM  
Load data pointer with a 16-bit constant  
Move code byte relative to DPTR to accumulator  
Move code byte relative to PC to accumulator  
Move external RAM (8-bit address) to A  
Move external RAM (16-bit address) to A  
Move A to external RAM (8-bit address)  
Move A to external RAM (16-bit address)  
Push direct byte onto stack  
3
3
93  
3
83  
3
E2-E3  
E0  
3-10  
3-10  
4-11  
4-11  
4
F2-F3  
F0  
C0  
POP direct  
Pop direct byte from stack  
D0  
3
XCH A,Rn  
Exchange register with accumulator  
Exchange direct byte with accumulator  
Exchange indirect RAM with accumulator  
Exchange low-order nibble indirect. RAM with A  
C8-CF  
C5  
2
XCH A,direct  
XCH A,@Ri  
3
C6-C7  
D6-D7  
3
XCHD A,@Ri  
Program Branching  
ACALL addr11  
LCALL addr16  
RET  
3
Absolute subroutine call  
xxx11  
12  
2
3
1
1
2
3
2
1
2
2
2
2
3
3
3
3
3
3
3
6
6
4
4
3
4
3
2
3
3
3
3
4
4
4
4
4
4
4
Long subroutine call  
Return from subroutine  
22  
RETI  
Return from interrupt  
32  
AJMP addr11  
LJMP addr16  
SJMP rel  
Absolute jump  
xxx01  
02  
Long jump  
Short jump (relative address)  
Jump indirect relative to the DPTR  
Jump if accumulator is zero  
80  
JMP @A+DPTR  
JZ rel  
73  
60  
JNZ rel  
Jump if accumulator is not zero  
Jump if carry flag is set to 1  
Jump if carry flag is 0  
70  
JC rel  
40  
JNC  
50  
JB bit,rel  
Jump if direct bit is set to 1  
20  
JNB bit,rel  
Jump if direct bit is 0  
30  
JBC bit,direct rel  
CJNE A,direct rel  
CJNE A,#data rel  
CJNE Rn,#data rel  
CJNE @Ri,#data rel  
Jump if direct bit is set to 1 and clear the bit to 0  
Compare direct byte to A and jump if not equal  
Compare immediate to A and jump if not equal  
Compare immediate to reg. and jump if not equal  
Compare immediate to indirect and jump if not equal  
10  
B5  
B4  
B8-BF  
B6-B7  
SWRS055D  
Page 56 of 243  
C2510Fx / CC2511Fx  
Mnemonic  
Description  
Hex  
Bytes  
Cycles  
Opcode  
DJNZ Rn,rel  
DJNZ direct,rel  
NOP  
Decrement register and jump if not zero  
Decrement direct byte and jump if not zero  
No operation  
D8-DF  
D5  
2
3
1
3
4
1
00  
Boolean Variable Operations  
CLR C  
Clear carry flag  
C3  
C2  
D3  
D2  
B3  
B2  
82  
B0  
72  
A0  
A2  
92  
1
2
1
2
1
2
2
2
2
2
2
2
1
3
1
3
1
3
2
2
2
2
2
3
CLR bit  
Clear direct bit  
SETB C  
SETB bit  
CPL C  
Set carry flag to 1  
Set direct bit to 1  
Complement carry flag  
Complement direct bit  
CPL bit  
ANL C,bit  
ANL C,/bit  
ORL C,bit  
ORL C,/bit  
MOV C,bit  
MOV bit,C  
Mich.  
AND direct bit to carry flag  
AND complement of direct bit to carry  
OR direct bit to carry flag  
OR complement of direct bit to carry  
Move direct bit to carry flag  
Move carry flag to direct bit  
TRAP  
Set SW breakpoint in debug mode  
A5  
1
1
Table 37: Instruction Set Summary  
SWRS055D  
Page 57 of 243  
 
C2510Fx / CC2511Fx  
Instruction  
ADD  
CY  
x
OV  
x
x
x
x
x
-
AC  
x
x
x
-
ADDC  
x
SUBB  
x
MUL  
0
0
x
DIV  
-
DA  
-
RRC  
x
-
-
RLC  
x
-
-
SETB C  
CLR C  
CPL C  
ANL C,bit  
ANL C,/bit  
ORL C,bit  
ORL C,/bit  
MOV C,bit  
CJNE  
1
x
-
-
-
-
x
-
-
x
-
-
x
-
-
x
-
-
x
-
-
x
-
-
x
-
-
“0” = Clear to 0, “1” = Set to 1, “x” = Set to 1/Clear to 0, “-“ = Not affected  
Table 38: Instructions that Affect Flag Settings  
11.5 Interrupts  
The CPU has 18 interrupt sources. Each  
source has its own request flag located in a  
set of Interrupt Flag SFRs. Each interrupt can  
be individually enabled or disabled. The  
definitions of the interrupt sources and the  
Note that some peripherals have several  
events that can generate the interrupt request  
associated with that peripheral. This applies to  
P0, P1, P2, DMA, Timer 1, Timer 2, Timer 3,  
Timer 4, and Radio. These peripherals have  
interrupt mask bits for each internal interrupt  
source in the corresponding SFRs. Note that  
I2S has its own interrupt enable bits even if it  
has only one event per interrupt. For the  
peripherals that have their own mask bits, one  
or more of these bits must be set for the  
associated CPU interrupt flag to be asserted.  
interrupt vectors are given in  
Table 39.  
I2S and USART1 share interrupts. On the  
CC2511Fx USB shares interrupt with Port 2  
inputs. The interrupt aliases for I2S and USB  
are listed in Table 40. However, in the  
following sections the original interrupt names,  
masks, and flags listed in  
the ones used.  
Table 39 are  
In order to use any of the interrupts in the  
CC2510Fx/CC2511Fx the following steps must be  
taken:  
The interrupts are grouped into a set of priority  
level groups with selectable priority levels.  
The interrupt enable registers are described in  
Section 11.5.1 and the interrupt priority  
settings are described in Section 11.5.2 on  
Page 66.  
11.5.1 Interrupt Masking  
Each interrupt can be individually enabled or  
disabled by the interrupt enable bits in the  
Interrupt Enable SFRs IEN0, IEN1, and IEN2.  
The Interrupt Enable SFRs are described  
below and summarized in  
Table 39.  
SWRS055D  
Page 58 of 243  
 
 
C2510Fx / CC2511Fx  
1. Clear interrupt flags (see Section  
11.5.2)  
4. Enable global interrupt by setting the  
IEN0.EA= 1  
2. Set individual interrupt enable bit in the  
peripherals SFR, if any  
5. Begin the interrupt service routine at the  
corresponding vector address of that  
3. Set the corresponding individual,  
interrupt enable bit in the IEN0, IEN1,  
or IEN2 registers to 1  
interrupt. See  
addresses  
Table  
39  
for  
Interrupt  
Number  
Description  
Interrupt Interrupt  
CPU Interrupt  
Mask  
CPU Interrupt Flag  
Name  
RFTXRX  
ADC  
Vector  
IEN0.RFTXRXIE  
IEN0.ADCIE  
TCON.RFTXRXIF8  
TCON.ADCIF8  
0
1
2
3
RF TX done / RX ready  
ADC end of conversion  
USART0 RX complete  
USART1 RX complete  
0x03  
0x0B  
0x13  
IEN0.URX0IE  
IEN0.URX1IE  
TCON.URX0IF8  
TCON.URX1IF8  
URX0  
URX1  
0x1B  
(Note: I2S RX complete, see Table  
40)  
IEN0.ENCIE  
S0CON.ENCIF  
4
AES encryption/decryption  
complete  
ENC  
0x23  
IEN0.STIE  
IEN2.P2IE  
IRCON.STIF  
5
6
Sleep Timer compare  
Port 2 inputs  
ST  
0x2B  
0x33  
IRCON2.P2IF9  
P2INT  
(Note: Also used for USB on  
CC2511Fx,, see Table 40)  
IEN2.UTX0IE  
IEN1.DMAIE  
IEN1.T1IE  
IRCON2.UTX0IF  
IRCON.DMAIF  
IRCON.T1IF8,9  
7
8
9
USART0 TX complete  
DMA transfer complete  
UTX0  
DMA  
T1  
0x3B  
0x43  
0x4B  
Timer 1 (16-bit)  
capture/Compare/overflow  
IEN1.T2IE  
IEN1.T3IE  
IEN1.T4IE  
IEN1.P0IE  
IRCON.T2IF8,9  
10  
11  
12  
13  
Timer 2 (MAC Timer) overflow  
Timer 3 (8-bit) compare/overflow  
Timer 4 (8-bit) compare/overflow  
Port 0 inputs  
T2  
0x53  
0x5B  
0x63  
0x6B  
IRCON.T3IF8,  
9
T3  
IRCON.T4IF8,  
9
T4  
IRCON.P0IF9  
P0INT  
(Note: P0_7 interrupt used for USB  
Resume interrupt on CC2511Fx)  
IEN2.UTX1IE  
IRCON2.UTX1IF  
14  
USART1 TX complete  
UTX1  
0x73  
(Note: I2S TX complete, see Table  
40)  
IEN2.P1IE  
IEN2.RFIE  
IEN2.WDTIE  
IRCON2.P1IF9  
S1CON.RFIF9  
IRCON2.WDTIF  
15  
16  
17  
Port 1 inputs  
P1INT  
RF  
0x7B  
0x83  
0x8B  
RF general interrupts  
Watchdog overflow in timer mode  
WDT  
Table 39: Interrupts Overview  
SWRS055D  
Page 59 of 243  
 
C2510Fx / CC2511Fx  
Interrupt  
Number  
Description  
Interrupt Interrupt  
CPU Interrupt  
Mask Alias  
CPU Interrupt Flag  
Alias  
Name  
Vector  
IEN0.I2SRXIE  
IEN2.USBIE  
IEN1.P0IE  
TCON.I2SRXIF10  
IRCON2.USBIF11  
IRCON.P0IF  
3
I2S RX complete  
URX1/  
I2SRX  
1Bh  
6
P2INT/  
USB  
33h  
USB Interrupt pending (CC2511Fx )  
USB resume interrupt (CC2511Fx ).  
13  
P0INT  
0x6B  
P0_6 and P0_7 does not exist on  
CC2510Fx. USB resume interrupt  
configured like P0_7 interrupt on  
CC2510Fx  
I2S TX complete  
UTX1/  
I2STX  
73h  
IEN2.I2STXIE  
IRCON2.I2STXIF10  
14  
Table 40: Shared Interrupt Vectors (I2S and USB)  
SWRS055D  
Page 60 of 243  
 
C2510Fx / CC2511Fx  
IEN1 (0xB8) – Interrupt Enable 1 Register  
Bit  
Name  
Reset  
R/W  
Description  
7
0
R/W  
Not used  
6
5
-
R0  
Not used  
0
R/W  
Port 0 interrupt enable  
P0IE  
T4IE  
T3IE  
T2IE  
T1IE  
DMAIE  
0
1
Interrupt disabled  
Interrupt enabled  
4
3
2
1
0
0
0
0
0
0
R/W  
R/W  
R/W  
R/W  
R/W  
Timer 4 interrupt enable  
0
1
Interrupt disabled  
Interrupt enabled  
Timer 3 interrupt enable  
0
1
Interrupt disabled  
Interrupt enabled  
Timer 2 interrupt enable  
0
1
Interrupt disabled  
Interrupt enabled  
Timer 1 interrupt enable  
0
1
Interrupt disabled  
Interrupt enabled  
DMA transfer interrupt enable  
0
1
Interrupt disabled  
Interrupt enabled  
SWRS055D  
Page 61 of 243  
 
C2510Fx / CC2511Fx  
IEN2 (0x9A) – Interrupt Enable 2 Register  
Bit  
Name  
Reset  
R/W  
Description  
7:6  
0
R/W  
Not used  
5
4
3
2
1
0
0
0
0
0
0
0
R/W  
R/W  
R/W  
R/W  
R/W  
R/W  
Watchdog timer interrupt enable  
WDTIE  
0
1
Interrupt disabled  
Interrupt enabled  
Port 1 interrupt enable  
P1IE  
0
Interrupt disabled  
1
Interrupt enabled  
USART1 TX interrupt enable / I2S TX interrupt enable  
UTX1IE /  
I2STXIE  
0
1
Interrupt disabled  
Interrupt enabled  
USART0 TX interrupt enable  
UTX0IE  
0
1
Interrupt disabled  
Interrupt enabled  
Port 2 interrupt enable (Also used for USB interrupt enable on CC2511Fx)  
P2IE /  
USBIE  
0
1
Interrupt disabled  
Interrupt enabled  
RF general interrupt enable  
RFIE  
0
1
Interrupt disabled  
Interrupt enabled  
11.5.2 Interrupt Processing  
highest priority. In other cases, the response  
time depends on the current instruction. The  
fastest possible response to an interrupt is  
seven instruction cycles. This includes one  
machine cycle for detecting the interrupt and  
six cycles to perform the LCALL.  
When an interrupt occurs, the CPU will vector  
to the interrupt vector address shown in Table  
39, if this particular interrupt has been  
enabled. Once an interrupt service has begun,  
it can be interrupted only by a higher priority  
interrupt. The interrupt service is terminated by  
a RETI (return from interrupt) instruction.  
When a RETI is performed, the CPU will return  
to the instruction that would have been next  
when the interrupt occurred.  
Clearing interrupt flags must be done correctly  
to ensure that no interrupts are lost or  
processed more than once. For pulsed or  
edge shaped interrupt sources one should  
clear the CPU interrupt flag prior to clearing  
the module interrupt flag, if available, for flags  
that are not automatically cleared. For level  
triggered interrupts (port interrupts) one has to  
clear the module interrupt flag prior to clearing  
the CPU interrupt flag. When handling  
interrupts where the CPU interrupt flag is  
cleared by hardware, the software should only  
clear the module interrupt flag. The following  
interrupts are cleared by hardware:  
When the interrupt condition occurs, an  
interrupt flag bit will be set in one of the CPU  
interrupt flag registers and in the peripherals  
interrupt flag register, if this is available. These  
bits are asserted regardless of whether the  
interrupt is enabled or disabled. If the interrupt  
is enabled when an interrupt flag is asserted,  
then on the next instruction cycle the interrupt  
will be acknowledged by hardware forcing an  
LCALL to the appropriate vector address.  
RFTXRX  
ADC  
T1  
T2  
T3  
T4  
Interrupt response will require a varying  
amount of time depending on the state of the  
CPU when the interrupt occurs. If the CPU is  
performing an interrupt service with equal or  
greater priority, the new interrupt will be  
pending until it becomes the interrupt with  
URX0  
URX1/I2SRX  
One or more module flags can be cleared at  
once. However the safest approach is to only  
SWRS055D  
Page 62 of 243  
 
 
C2510Fx / CC2511Fx  
handle one interrupt source each time the  
interrupt is triggered, hence clearing only one  
module flag. When any module flag is cleared  
the chip will check if there are any module  
interrupt flags left that are both enabled and  
asserted, if so the CPU interrupt flag will be  
asserted and a new interrupt triggered.  
The following code example shows how only  
one module flag is handled and cleared each  
time the interrupt occurs:  
#pragma vector = RF_VECTOR  
__interrupt void rf_interrupt (void)  
{
S1CON &= ~0x03;  
if(RFIF & 0x80)  
// Clear CPU interrupt flag  
// TX underflow  
{
irq_txunf();  
// Handle TX underflow  
RFIF = ~0x80;  
// Clear module interrupt flag  
}
else if(RFIF & 0x40)  
// RX overflow  
{
irq_rxovf();  
RFIF = ~0x40;  
}
// Handle RX overflow  
// Clear module interrupt flag  
// Use ”else if” to check and handle other RFIF flags  
}
TCON (0x88) – CPU Interrupt Flag 1  
Bit  
Name  
Reset  
R/W  
R/W  
H0  
Description  
7
0
USART1 RX interrupt flag / I2S RX interrupt flag  
URX1IF /  
I2SRXIF  
Set to 1 when USART1 RX interrupt occurs and cleared when CPU vectors  
to the interrupt service routine.  
0
1
Interrupt not pending  
Interrupt pending  
6
5
0
0
R/W  
Not used  
R/W  
H0  
ADC interrupt flag. Set to 1 when ADC interrupt occurs and cleared when  
CPU vectors to the interrupt service routine.  
ADCIF  
0
1
Interrupt not pending  
Interrupt pending  
4
3
0
0
R/W  
Not used  
R/W  
H0  
USART0 RX interrupt flag. Set to 1 when USART0 interrupt occurs and  
cleared when CPU vectors to the interrupt service routine.  
URX0IF  
RFTXRXIF  
0
1
Interrupt not pending  
Interrupt pending  
2
1
1
0
R/W  
Reserved. Must always be set to 1.  
R/W  
H0  
RF TX/RX complete interrupt flag. Set to 1 when RFTXRX interrupt occurs  
and cleared when CPU vectors to the interrupt service routine.  
0
1
Interrupt not pending  
Interrupt pending  
0
1
R/W  
Reserved. Must always be set to 1.  
SWRS055D  
Page 63 of 243  
 
C2510Fx / CC2511Fx  
S0CON (0x98) – CPU Interrupt Flag 2  
Bit  
Name  
Reset  
R/W  
Description  
7:2  
0
R/W  
Not used  
1
0
R/W  
AES interrupt. ENCIF has two interrupt flags, ENCIF_1 and ENCIF_0.  
Interrupt source sets both ENCIF_1and ENCIF_0, but setting one of these  
flags in SW will generate an interrupt request. Both flags are set when the  
AES co-processor requests the interrupt.  
ENCIF_1  
0
1
Interrupt not pending  
Interrupt pending  
0
0
R/W  
AES interrupt. ENCIF has two interrupt flags, ENCIF_1 and ENCIF_0.  
Interrupt source sets both ENCIF_1and ENCIF_0, but setting one of these  
flags in SW will generate an interrupt request. Both flags are set when the  
AES co-processor requests the interrupt.  
ENCIF_0  
0
1
Interrupt not pending  
Interrupt pending  
S1CON (0x9B) – CPU Interrupt Flag 3  
Bit  
Name  
Reset  
R/W  
Description  
7:6  
0
R/W  
Not used  
1
0
R/W  
RF general interrupt. RFIF has two interrupt flags, RFIF_1 and RFIF_0.  
Interrupt source sets both RFIF_1and RFIF_0, but setting one of these  
flags in SW will generate an interrupt request. Both flags are set when the  
radio requests the interrupt.  
RFIF_1  
0
1
Interrupt not pending  
Interrupt pending  
0
0
R/W  
RF general interrupt. RFIF has two interrupt flags, RFIF_1 and RFIF_0.  
Interrupt source sets both RFIF_1and RFIF_0, but setting one of these  
flags in SW will generate an interrupt request. Both flags are set when the  
radio requests the interrupt.  
RFIF_0  
0
1
Interrupt not pending  
Interrupt pending  
SWRS055D  
Page 64 of 243  
 
 
C2510Fx / CC2511Fx  
IRCON (0xC0) – CPU Interrupt Flag 4  
Bit  
Name  
Reset  
R/W  
Description  
7
0
R/W  
Sleep Timer interrupt flag  
STIF  
0
1
Interrupt not pending  
Interrupt pending  
6
5
0
0
R/W  
R/W  
Reserved. Must always be set to 0. Failure to do so will lead to ISR toggling  
(interrupt routine sustained)  
Port 0 interrupt flag  
P0IF  
T4IF  
0
1
Interrupt not pending  
Interrupt pending  
4
3
2
1
0
0
0
0
0
0
R/W  
H0  
Timer 4 interrupt flag. Set to 1 when Timer 4 interrupt occurs and cleared  
when CPU vectors to the interrupt service routine.  
0
1
Interrupt not pending  
Interrupt pending  
R/W  
H0  
Timer 3 interrupt flag. Set to 1 when Timer 3 interrupt occurs and cleared  
when CPU vectors to the interrupt service routine.  
T3IF  
T2IF  
T1IF  
DMAIF  
0
1
Interrupt not pending  
Interrupt pending  
R/W  
H0  
Timer 2 interrupt flag. Set to 1 when Timer 2 interrupt occurs and cleared  
when CPU vectors to the interrupt service routine.  
0
1
Interrupt not pending  
Interrupt pending  
R/W  
H0  
Timer 1 interrupt flag. Set to 1 when Timer 1 interrupt occurs and cleared  
when CPU vectors to the interrupt service routine.  
0
1
Interrupt not pending  
Interrupt pending  
R/W  
DMA complete interrupt flag.  
0
1
Interrupt not pending  
Interrupt pending  
SWRS055D  
Page 65 of 243  
 
C2510Fx / CC2511Fx  
IRCON2 (0xE8) – CPU Interrupt Flag 5  
Bit  
Name  
Reset  
R/W  
Description  
7:5  
0
R/W  
Not used  
4
3
2
1
0
0
0
0
0
0
R/W  
R/W  
R/W  
R/W  
R/W  
Watchdog timer interrupt flag  
WDTIF  
0
1
Interrupt not pending  
Interrupt pending  
Port 1 interrupt flag.  
P1IF  
0
1
Interrupt not pending  
Interrupt pending  
USART1 TX interrupt flag / I2S TX interrupt flag  
UTX1IF /  
I2STXIF  
0
1
Interrupt not pending  
Interrupt pending  
USART0 TX interrupt flag  
UTX0IF  
0
1
Interrupt not pending  
Interrupt pending  
Port2 interrupt flag / USB interrupt flag  
P2IF /  
USBIF  
0
1
Interrupt not pending  
Interrupt pending  
11.5.3 Interrupt Priority  
group, the corresponding bits in IP0 and IP1  
must be set as shown in Table 41 on Page 67.  
The interrupts are grouped into six interrupt  
priority groups and the priority for each group  
is set by the registers IP0 and IP1. The  
interrupt priority groups with assigned interrupt  
sources are shown in Table 42. Each group is  
assigned one of four priority levels, and by  
default all six interrupt priority groups are  
assign the lowest priority. In order to assign a  
higher priority to an interrupt, i.e. to its interrupt  
While an interrupt service request is in  
progress, it cannot be interrupted by a lower or  
same level interrupt. In the case when  
interrupt requests of the same priority level are  
received simultaneously, the polling sequence  
shown in Table 43 is used to resolve the  
priority of each requests.  
IP1 (0xB9) – Interrupt Priority 1  
Bit  
Name  
Reset  
R/W  
Description  
7:6  
0
R/W  
Not used  
5
4
3
2
1
0
0
0
0
0
0
0
R/W  
R/W  
R/W  
R/W  
R/W  
R/W  
Interrupt group 5, priority control bit 1, refer to Table 41  
Interrupt group 4, priority control bit 1, refer to Table 41  
Interrupt group 3, priority control bit 1, refer to Table 41  
Interrupt group 2, priority control bit 1, refer to Table 41  
Interrupt group 1, priority control bit 1, refer to Table 41  
Interrupt group 0, priority control bit 1, refer to Table 41  
IP1_IPG5  
IP1_IPG4  
IP1_IPG3  
IP1_IPG2  
IP1_IPG1  
IP1_IPG0  
SWRS055D  
Page 66 of 243  
 
 
C2510Fx / CC2511Fx  
IP0 (0xA9) – Interrupt Priority 0  
Bit  
Name  
Reset  
R/W  
Description  
7:6  
0
R/W  
Not used  
5
4
3
2
1
0
0
0
0
0
0
0
R/W  
R/W  
R/W  
R/W  
R/W  
R/W  
Interrupt group 5, priority control bit 0, refer to Table 41  
Interrupt group 4, priority control bit 0, refer to Table 41  
Interrupt group 3, priority control bit 0, refer to Table 41  
Interrupt group 2, priority control bit 0, refer to Table 41  
Interrupt group 1, priority control bit 0, refer to Table 41  
Interrupt group 0, priority control bit 0, refer to Table 41  
IP0_IPG5  
IP0_IPG4  
IP0_IPG3  
IP0_IPG2  
IP0_IPG1  
IP0_IPG0  
IP1_x  
IP0_x  
Priority Level  
0 (lowest)  
0
0
1
1
0
1
0
1
1
2
3 (highest)  
Table 41: Priority Level Setting  
Group  
IPG0  
IPG1  
IPG2  
IPG3  
IPG4  
IPG5  
Interrupts  
RFTXRX  
ADC  
RF  
DMA  
T1  
P2INT / USB  
UTX0  
URX0  
T2  
URX1 / I2SRX  
ENC  
T3  
UTX1 / I2STX  
P1INT  
T4  
ST  
P0INT (USB Resume)  
WDT  
Table 42: Interrupt Priority Groups  
SWRS055D  
Page 67 of 243  
 
 
C2510Fx / CC2511Fx  
Interrupt Number  
Interrupt Name  
0
RFTXRX  
16  
8
RF  
Polling sequence  
DMA  
1
ADC  
9
T1  
2
URX0  
10  
3
T2  
URX1 / I2SRX  
11  
4
T3  
ENC  
12  
5
T4  
ST  
13  
6
P0INT / (USB Resume)  
P2INT / USB  
UTX0  
7
14  
15  
17  
URX1 / I2STX  
P1INT  
WDT  
Table 43: Interrupt Polling Sequence  
12 Debug Interface  
The debug interface uses the I/O pins P2_1 as  
Debug Data and P2_2 as Debug Clock during  
Debug mode. These I/O pins can be used as  
general purpose I/O only while the device is  
not in Debug mode. Thus the debug interface  
does not interfere with any peripheral I/O pins.  
The CC2510Fx/CC2511Fx includes an on-chip  
debug module which communicates over a  
two-wire interface. The debug interface allows  
programming of the on-chip flash. It also  
provides access to memory and registers  
contents, and debug features such as  
breakpoints, single-stepping, and register  
modification.  
12.1 Debug Mode  
Debug mode is entered by forcing two rising  
edge transitions on pin P2_2 (Debug Clock)  
while the RESET_N input is held low.  
Note: Debugging of PM2 and PM3 is not  
supported. Also note that CLKCON.CLKSPD  
must be 000 or 001 when using the debug  
interface  
While in Debug mode pin P2_1 is the Debug  
Data bi-directional pin and P2_2 is the Debug  
Clock input pin.  
12.2 Debug Communication  
The debug interface uses an SPI-like two-wire  
interface consisting of the P2_1 (Debug Data)  
and P2_2 (Debug Clock) pins. Data is driven  
on the bi-directional Debug Data pin at the  
positive edge of Debug Clock and data is  
sampled on the negative edge of this clock.  
Debug commands are sent by an external host  
and consist of 1 to 4 output bytes (including  
SWRS055D  
Page 68 of 243  
C2510Fx / CC2511Fx  
command byte) from the host and an optional  
input byte read by the host. Command and  
data is transferred with MSB first. Figure 17  
shows a timing diagram of data on the debug  
interface.  
Figure 17: Debug Interface Timing Diagram  
12.3 Debug Lock Bit  
For software and/or access protection, a set of  
lock bits can be written. This information is  
contained in the Flash Information Page (see  
Section 11.2.3.2), at location 0x000. The Flash  
Information Page can only be accessed  
through the debug interface. There are three  
kinds of lock protect bits as described in this  
section.  
Note that after the Debug Lock bit has  
changed due to a Flash Information Page write  
or a flash mass erase, a HALT, RESUME,  
DEBUG_INSTR,  
STEP_INSTR,  
or  
STEP_REPLACE command must be executed  
so that the Debug Lock value returned by  
READ_STATUS shows the updated Debug  
Lock value. For example a dummy NOP  
DEBUG_INSTR command could be executed.  
The Debug Lock bit will also be updated after  
a device reset so an alternative is to reset the  
chip and reenter debug mode.  
The lock size bits LSIZE[2:0] are used to  
define which section of the flash memory  
should be write protected, if any. The size of  
the write protected area can be set to 0 (no  
pages), 1, 2, 4, 8, 16, 24, or 32 KB (all pages),  
starting from top of flash memory and defining  
a section below this. Note that for CC2510F8,  
CC2511F8, CC2510F16, and CC2511F16, the only  
supported value for LSIZE[2:0]is 0 and 7  
(all or no pages respectively).  
The CHIP_ERASE command will set all bits in  
flash memory to 1. This means that after  
issuing a CHIP_ERASE command the boot  
sector will be writable, no pages will be write-  
protected, and all debug commands are  
enabled.  
The lock protect bits are written as a normal  
flash write to FWDATA(see Section 13.3.2), but  
the Debug Interface needs to select the Flash  
Information Page first instead of the Flash  
Main Page which is the default setting. The  
Information Page is selected through the  
Debug Configuration which is written through  
the Debug Interface only. Refer to Section  
12.4.1 and Table 46 for details on how the  
Flash Information Page is selected using the  
Debug Interface.  
The second type of lock protect bits is  
BBLOCK, which is used to lock the boot sector  
page (page 0 ranging from address 0x0000 to  
0x03FF). When BBLOCK is set to 0, the boot  
sector page is locked.  
The third type of lock protect bit is DBGLOCK,  
which is used to disable hardware debug  
support through the Debug Interface. When  
DBGLOCK is set to 0, almost all debug  
commands are disabled.  
Table 44 defines the byte containing the flash  
lock protection bits. Note that this is not an  
SFR, but instead the byte stored at location  
0x000 in Flash Information Page.  
When the Debug Lock bit, DBGLOCK, is set to  
0 (see Table 44) all debug commands except  
CHIP_ERASE,  
READ_STATUS  
and  
GET_CHIP_ID are disabled and will not  
function. The status of the Debug Lock bit can  
be read using the READ_STATUS command  
(see Section 12.4.2).  
SWRS055D  
Page 69 of 243  
 
C2510Fx / CC2511Fx  
Bit  
7:5  
4
Name  
Description  
Reserved, write as 0  
Boot Block Lock  
BBLOCK  
0
1
Page 0 is write protected  
Page 0 is writeable, unless LSIZE is 000  
3:1  
LSIZE[2:0]  
Lock Size. Sets the size of the upper flash area which is write-protected. Byte  
sizes are listed below  
000 32 KB (all pages)  
001 24 KB  
010 16 KB  
011 8 KB  
CC2510F32 and CC2511F32 only  
CC2510F32 and CC2511F32 only  
CC2510F32 and CC2511F32 only  
CC2510F32 and CC2511F32 only  
CC2510F32 and CC2511F32 only  
CC2510F32 and CC2511F32 only  
100 4 KB  
101 2 KB  
110 1 KB  
111 0 bytes (no pages)  
Debug lock bit  
0
DBGLOCK  
0
1
Disable debug commands  
Enable debug commands  
Table 44: Flash Lock Protection Bits Definition  
12.4 Debug Commands  
The debug commands are shown in Table 45.  
Some of the debug commands are described  
in further detail in the following sections  
hardware breakpoints. When a hardware  
breakpoint is enabled it will compare the CPU  
address bus with the breakpoint. When a  
match occurs, the CPU is halted.  
12.4.1 Debug Configuration  
When issuing the SET_HW_BRKPNT debug  
command, the external host must supply three  
data bytes that define the hardware  
breakpoint. The hardware breakpoint itself  
consists of 18 bits while three bits are used for  
control purposes. The format of the three data  
bytes for the SET_HW_BRKPNT command is  
as follows.  
The  
commands  
WR_CONFIG  
and  
RD_CONFIG are used to access the debug  
configuration data byte. The format and  
description of this configuration data is shown  
in Table 46  
12.4.2 Debug Status  
The first data byte consists of the following:  
A debug status byte is read using the  
READ_STATUS command. The format and  
description of this debug status is shown in  
Table 47.  
Bit Description  
The READ_STATUS command is used e.g.  
for polling the status of flash chip erase after a  
CHIP_ERASE command or oscillator stable  
status required for debug commands HALT,  
RESUME, DEBUG_INSTR, STEP_REPLACE,  
and STEP_INSTR.  
7:5 Unused  
4:3 Breakpoint number; 0 - 3  
2
Breakpoint enable  
0
1
Disable  
Enable  
1:0 Reserved. Must be 00.  
12.4.3 Hardware Breakpoints  
The debug command SET_HW_BRKPNT is  
used to set a hardware breakpoint. The  
The second data byte consists of bits 15 - 8 of  
the hardware breakpoint while the third data  
byte consists of bits 7-0 of the hardware  
CC2510Fx/CC2511Fx  
supports up to four  
SWRS055D  
Page 70 of 243  
C2510Fx / CC2511Fx  
breakpoint. This means that the second and  
third data byte sets the CPU CODE address  
where the CPU is halted.  
12.4.4 Flash Programming  
Programming of the on-chip flash is performed  
via the debug interface. The external host  
must initially send instructions using the  
DEBUG_INSTR debug command to perform  
the flash programming with the Flash  
Controller as described in Section 13.3.  
Command  
Instruction Code  
Description  
CHIP_ERASE  
0001 0100  
Perform flash chip erase (mass erase). The debug interface will be enabled  
and no parts of flash will be write-protected after issuing this command. Do  
not use any other commands than READ_STATUS until mass erase has  
completed. Return 1 status byte to host  
WR_CONFIG  
0001 1101  
Write configuration data. Return 1 status byte to host. Refer to Table 46 for  
details.  
RD_CONFIG  
GET_PC  
0010 0100  
0010 1000  
0011 0100  
0011 1011  
0100 0100  
0100 1100  
Read configuration data. Return value set by WR_CONFIG command  
Return value of 16-bit program counter  
READ_STATUS  
SET_HW_BRKPNT  
HALT  
Read status byte. Refer to Table 47  
Set hardware breakpoint  
Halt CPU operation. Return 1 status byte to host  
RESUME  
Resume CPU operation. To run this command, the CPU must have been  
halted. Return 1 status byte to host  
DEBUG_INSTR  
0101 01yy  
Run debug instruction. The supplied instruction will be executed by the CPU  
without incrementing the program counter. To run this command, the CPU  
must have been halted. Return 1 status byte to host.  
yy: Number of bytes in the CPU instruction (see Table 37). Valid values are  
01, 10, and 11  
STEP_INSTR  
0101 1100  
0110 01 yy  
Step CPU instruction. The CPU will execute the next instruction from  
program memory and increment the program counter after execution. To run  
this command, the CPU must have been halted. Return 1 status byte to host  
STEP_REPLACE  
Step and replace CPU instruction. The supplied instruction will be executed  
by the CPU instead of the next instruction in program memory. The program  
counter will be incremented after execution. To run this command, the CPU  
must have been halted. Return 1 status byte to host.  
yy: Number of bytes in the CPU instruction (see Table 37). Valid values are  
01, 10, and 11  
GET_CHIP_ID  
0110 1000  
Return value of 16-bit chip ID (PARTNUM:VERSION).  
Table 45: Debug Commands  
SWRS055D  
Page 71 of 243  
 
C2510Fx / CC2511Fx  
Bit Name  
Description  
7:4  
Not used. Must be set to 0000  
3
TIMERS_OFF  
Disable timer operation (Timer 1/2/3/4). This overrides the  
TIMER_SUSPENDbit and its function.  
0
1
Do not disable timers  
Disable timers  
2
1
DMA_PAUSE  
DMA pause  
0
1
Enable DMA transfers  
Pause all DMA transfers  
TIMER_SUSPEND  
Suspend timers (Timer 1/2/3/4). Timer operation is suspended for  
debug instructions and if a step instruction is a branch. If not  
suspended, these instructions would result an extra timer count  
during the clock cycle in which the branch is executed  
0
1
Do not suspend timers  
Suspend timers  
0
SEL_FLASH_INFO_PAGE  
Select Flash Information Page in order to write flash lock bits (1  
KB lowest part of flash)  
0
1
Select flash Main Page  
Select Flash Information Page  
Table 46: Debug Configuration  
SWRS055D  
Page 72 of 243  
C2510Fx / CC2511Fx  
Bit Name  
CHIP_ERASE_DONE  
Description  
7
6
5
4
3
2
1
Flash chip erase done  
0
1
Chip erase in progress  
Chip erase done  
PCON_IDLE  
PCON idle  
0
1
CPU is running  
CPU is idle (clock gated)  
CPU_HALTED  
CPU halted  
0
1
CPU running  
CPU halted  
POWER_MODE_0  
HALT_STATUS  
Power Mode 0  
0
1
Power Mode 1-3 selected  
Power Mode 0 selected (active mode if the CPU is running)  
Halt status. Returns cause of last CPU halt  
0
1
CPU was halted by HALT debug command  
CPU was halted by software or hardware breakpoint  
DEBUG_LOCKED  
OSCILLATOR_STABLE  
Debug locked. Returns value of DBGLOCKbit  
0
1
Debug interface is not locked  
Debug interface is locked  
Oscillators stable. This bit represents the status of the SLEEP.XSOC_STB  
and SLEEP.HFRC_STBregister bits.  
0
1
Oscillators not stable  
Oscillators stable  
0
STACK_OVERFLOW  
Stack overflow. This bit indicates when the CPU writes to DATA memory  
space at address 0xFF, which is possibly a stack overflow  
0
1
No stack overflow  
Stack overflow  
Table 47: Debug Status  
SWRS055D  
Page 73 of 243  
C2510Fx / CC2511Fx  
13 Peripherals  
In  
the  
following  
sub-sections,  
each  
CC2510Fx/CC2511Fx peripheral is described in  
detail.  
13.1 Power Management and Clocks  
This section describes the Power Management  
Controller. The Power Management Controller  
controls the use of active mode, power modes,  
and clock control.  
(leakage) power consumption and also by  
using clock gating and turning off oscillators to  
reduce dynamic power consumption.  
The CC2510Fx/CC2511Fx has one active mode  
and four power modes, called PM0, PM1, PM2  
and PM3, where PM3 has the lowest power  
consumption. The different operating modes  
are shown in Table 48.  
13.1.1 Power Management Introduction  
The CC2510Fx/CC2511Fx uses different operating  
modes to allow low-power operation. Ultra-low-  
power operation is obtained by turning off  
power supply to modules to avoid static  
Operating Mode  
High-speed Oscillator  
Low-speed Oscillator  
Digital Voltage  
Regulator  
CPU  
None  
None  
Configuration  
A
B
C
A
B
C
High speed XOSC  
HS RCOSC  
Low power RCOSC  
32.768 kHz XOSC  
Active  
PM0  
PM1  
PM2  
PM3  
B and / or C  
B or C  
B or C  
B or C  
B or C  
A
On  
On  
On  
Off  
Off  
Running  
Idle  
B and / or C  
A
A
A
Idle  
Idle  
Idle  
Table 48: Operating Modes  
Active mode: The full functional mode. The  
voltage regulator to the digital core is on and  
either the high speed RC oscillator or the high  
speed crystal oscillator or both are running.  
Either the Low power RC oscillator or the  
32.768 kHz crystal oscillator is running.  
the 32.768 kHz crystal oscillator is running.  
The system will go to active mode on reset or  
an external interrupt or when the Sleep Timer  
expires. The CC2511Fx will lose all USB state  
information when PM2 is entered. Thus, PM2  
should not be used with USB.  
PM0: Same as active mode, but the CPU is  
idle, meaning that no code is being executed.  
PM3: The voltage regulator to the digital core  
is turned off. None of the oscillators are  
running. The system will go to active mode on  
reset or an external interrupt. The CC2511Fx will  
lose all USB state information when PM3 is  
entered. Thus, PM3 should not be used with  
USB.  
PM1: The voltage regulator to the digital part is  
on. Neither the high speed crystal oscillator nor  
the high speed RC oscillator is running. Either  
the low power RC oscillator or the 32.768 kHz  
crystal oscillator is running. The system will go  
to active mode on reset or an external interrupt  
or when the Sleep Timer expires.  
When an external interrupt occurs in PM1,  
PM2, or PM3, or a Sleep Timer interrupt occur  
in PM1 and PM2, active mode will be entered  
and the code will start executing from where it  
entered PM1/2/(3). Any enabled interrupt will  
take the device from PM0 to active mode, and  
also in this case the code will start executing  
PM2: The voltage regulator to the digital core  
is turned off. Neither the high speed crystal  
oscillator nor the high speed RC oscillator is  
running. Either the low power RC oscillator or  
SWRS055D  
Page 74 of 243  
 
 
C2510Fx / CC2511Fx  
from where it entered PM0. A reset, however,  
will take the chip from any of the four power  
modes to active mode, but the code will start  
executing from the start of the program.  
Section 13.8.1 for minimum sleep time when  
using the Sleep Timer.  
13.1.2.5 PM3  
In PM3 the internal voltage regulator and all  
oscillators are turned off.  
13.1.2 Active Mode and Power Modes  
The different operating modes are described in  
detail in the five following sections.  
This power mode is used to achieve the  
operating mode with the lowest power  
consumption. In PM3 all internal circuits that  
are powered from internal voltage regulators  
are turned off.  
13.1.2.1 Active Mode  
This is the full functional mode of operation  
where the CPU, peripherals, and RF  
transceiver are active. The voltage regulator to  
the digital core is on and either the high speed  
RC oscillator or the high speed crystal  
oscillator or both are running together with  
either the Low power RC oscillator or the  
32.768 kHz crystal oscillator.  
Reset (POR, or external) and external I/O port  
interrupts are the only functions that are  
operating in this mode. I/O pins retain the I/O  
mode and output value set before entering  
PM3. A reset or external interrupt condition will  
wake the device and make it enter active  
mode. The content of RAM and registers is  
preserved in this mode. PM3 uses the same  
power down/up sequence as PM2.  
13.1.2.2 PM0  
If the PCON.IDLE bit is set to 1 while in active  
mode, the CPU will be idle (clock gated) until  
any interrupt occur. All other peripherals will  
function as normal while the CPU is halted.  
PM3 is used to achieve ultra low power  
consumption when waiting for an external  
event.  
When entering active mode from PM1, PM2, or  
PM3, the high-speed oscillators, which where  
running when entering PM{1_3}, are started. If  
the high speed crystal oscillator is selected as  
source for the system clock (CLKCON.OSC=0),  
the system clock will use the HS RCOSC as  
clock source until the high speed crystal  
oscillator is stable (SLEEP.XOSC_STB=1).  
13.1.2.3 PM1  
In PM1, the high speed oscillators (high speed  
XOSC and HS RCOSC) are powered down  
thereby halting the CPU and peripherals. The  
digital voltage regulator, the power-on reset,  
external interrupts, the low power RC oscillator  
or the 32.768 kHz crystal oscillator and Sleep  
Timer peripherals are active. I/O pins retain the  
I/O mode and output value set before entering  
PM1. When PM1 is entered, a power down  
sequence is run.  
13.1.3 Power Management Control  
The required power mode is selected by the  
SLEEP.MODE setting. Setting the IDLE bit in  
the PCON SFR after setting the MODE bits,  
makes the CC2511Fx/CC2511Fx enter the  
selected power mode. The following procedure  
must be followed to be able to safely put the  
device into one of the power modes PM{1-3}:  
PM1 is used when the expected time until a  
wakeup event is relatively short since PM1  
uses a fast power down/up sequence.  
13.1.2.4 PM2  
// Pseudo Code  
SLEEP.MODE = PM{1-3}  
NOP();  
PM2 has the second lowest power  
consumption. In PM2, the power-on reset,  
external interrupts, the low power RC oscillator  
or the 32.768 kHz crystal oscillator and Sleep  
Timer peripherals are active. I/O pins retain the  
I/O mode and output value set before entering  
PM2. The content of RAM and most registers  
is preserved in this mode (see Table 31, Table  
32, and Table 33). All other internal circuits are  
powered down. When PM2 is entered, a power  
down sequence is run.  
NOP();  
NOP();  
If (SLEEP_MODE != 0)  
PCON.IDLE = 1;  
An interrupt from port pins or Sleep Timer (not  
PM3), or a power-on reset will wake the device  
and bring it into active mode by resetting the  
MODE bits and clear the IDLE bit. Since an  
interrupt can occur before the device has  
PM2 is typically entered when using the Sleep  
Timer as the wakeup event. Please see  
SWRS055D  
Page 75 of 243  
 
 
C2510Fx / CC2511Fx  
actually entered PM{1-3}, it is necessary to  
clear the MODE bits before returning from all  
ISRs associated with interrupts that can be  
used to wake the device from PM{1-3}. It  
should be noted that all port interrupts and  
Sleep Timer interrupt are blocked when  
SLEEP.MODEis different from 00, thus the time  
interrupts are enabled during power modes. All  
interrupts not to be used to wake up from PM  
modes must be disabled before setting  
SLEEP.MODE0.  
13.1.4 Power Management Registers  
This section describes the Power Management  
registers. All register bits retain their previous  
values when entering PM2 or PM3 unless  
otherwise stated.  
between setting SLEEP.MODE  
0
and  
asserting PCON.IDLE should be as short as  
possible. The SLEEP.MODE will be cleared to  
00 by HW when power mode is entered, thus  
PCON (0x87) – Power Mode Control  
Bit  
7:2  
1
Name  
Reset  
R/W  
Description  
0
0
0
R/W  
Not used  
R0/W1 Reserved. Must be set to 0. Failure to do so will stop CPU from operating.  
0
IDLE  
R0/W1  
H0  
Power mode control. Writing a 1 to this bit forces CC2510Fx/CC2511Fx to enter  
the power mode set by SLEEP.MODE. This bit is always read as 0.  
All interrupt requests will clear this bit and CC2510Fx/CC2511Fx will reenter active  
mode.  
Note: See Section 13.1.3 for details on how this bit should be used.  
SWRS055D  
Page 76 of 243  
 
C2510Fx / CC2511Fx  
SLEEP (0xBE) – Sleep Mode Control  
Bit  
Name  
Reset  
R/W  
Description  
USB Enable (CC2511Fx). This bit is unused for CC2510Fx  
7
USB_EN  
0
R/W  
0
1
Disable (Setting this bit to 0 will reset the USB controller)  
Enable  
This bit will be 0 when returning from PM2 and PM3  
6
XOSC_STB  
HFRC_STB  
RST[1:0]  
0
R
R
R
High speed crystal oscillator (fXOSC) stable status  
0
1
Oscillator is not powered up or not yet stable  
Oscillator is powered up and stable  
5
0
High speed RC oscillator (HS RCOSC) stable status  
0
1
Oscillator is not powered up or not yet stable  
Oscillator is powered up and stable  
4:3  
XX  
Status bit indicating the cause of the last reset. If there are multiple resets, the  
register will only contain the last event.  
00  
01  
10  
Power-on reset or Brown-out reset  
External reset  
Watchdog timer reset  
2
OSC_PD  
1
R/W  
H0  
High speed XOSC and HS RCOSC power down setting. The bit is cleared if  
the CLKCON.OSCbit is toggled. If there is a calibration in progress and the  
CPU attempts to set this bit, the bit will be updated at the end of calibration.  
0
1
Both oscillators powered up  
Oscillator not selected by CLKCON.OSCbit powered down  
1:0  
MODE[1:0]  
00  
R/W  
Power mode setting  
00  
01  
10  
11  
PM0  
PM1  
PM2  
PM3  
These bits will be set to 00 when entering PM{1-3}.  
Note: It is necessary to clear the MODEbits before returning from all ISRs  
associated with interrupts that can be used to wake the device from PM{1-3}.  
See Section 13.1.3 for details  
13.1.5  
Oscillators and Clocks  
crystal oscillator. This is controlled by the  
CLKCON.OSC32Kbit.  
The CC2510Fx/CC2511Fx has one internal  
system clock. The source for the system clock  
can be either a high speed RC oscillator or a  
high speed crystal oscillator. The crystal  
oscillator for CC2510Fx operates at 24 - 27 MHz  
while the crystal oscillator for CC2511Fx  
operates at 48 MHz. The 24 - 27 MHz clock is  
used directly as the system clock for CC2510Fx.  
On CC2511Fx, the 48 MHz clock is used by the  
USB Controller only while a derived 24 MHz  
clock is used as the system clock. The source  
for the system clock is selected by the  
CLKCON.OSCbit.  
The choice of oscillator allows a trade-off  
between high-accuracy in the case of the  
crystal oscillator and low power consumption  
when the RC oscillator is used. Note that  
operation of the RF transceiver requires that  
the high speed crystal oscillator is used.  
Note: The high speed crystal oscillator  
must be stable (SLEEP.XOSC_STB=1)  
before using the radio.  
There is also one 32 kHz clock source that can  
either be a low power RCOSC or a 32.768 kHz  
SWRS055D  
Page 77 of 243  
 
C2510Fx / CC2511Fx  
13.1.5.1 High Speed Oscillators  
13.1.5.2 System clock speed and radio  
Two high speed oscillators are present in the  
device:  
When the radio is to be used the system must  
run on HS XOSC. The RF part will be  
unaffected by the CLKCON.CLKSPD setting.  
There is however parts of the RF core that  
runs on the system clock affected by and this  
will cause limitations in manageable data rates  
in RF link. These limitations are summarized in  
Table 49 below. Note that these numbers does  
not apply for FEC usage. Using FEC requires  
CLKCON.CLKSPD to be 000.  
High speed crystal oscillator (24 – 27  
MHz for CC2510Fx and 48 MHz for  
CC2511Fx)  
High speed RC oscillator (12 – 13.5  
MHz for CC2510Fx and 12 MHz for  
CC2511Fx)  
The high speed crystal oscillator startup time  
may be too long for some applications, and the  
device can therefore run on the high speed  
RCOSC until the crystal oscillator is stable.  
The HS RCOSC consumes less power than  
the crystal oscillator, but since it is not as  
accurate as the crystal oscillator it can not be  
used for RF transceiver operation.  
CLKCON  
CLKSPD  
000  
Maksimum datarate, kBaud  
MSK GFSK 2FSK  
500 250 500  
001  
500  
500  
500  
400  
200  
100  
50  
250  
250  
250  
250  
200  
100  
50  
500  
500  
500  
400  
200  
100  
50  
010  
The CLKCON.OSCbit selects the source of the  
system clock (high speed crystal oscillator or  
high speed RC oscillator). The system clock  
will not change clock source before the  
selected clock source is stable (indicated by  
SLEEP.XOSC_STBand SLEEP.HFRC_STB).  
011  
100  
101  
110  
111  
The oscillator not selected as the system clock  
source, will be set in power-down mode by  
setting SLEEP.OSC_PDto 1 (the default state).  
Thus the HS RCOSC may be turned off when  
the high speed crystal oscillator has been  
selected as system clock source and vice  
versa. When SLEEP.OSC_PD is 0, both  
oscillators are powered up and running. Be  
aware that SLEEP.OSC_PD is cleared if the  
CLKCON.OSCbit is toggled.  
Table 49: System clock speed VS data rate  
13.1.5.3 Low Speed Oscillators (32 kHz clock  
source)  
Two low speed oscillators are present in the  
device:  
Low speed crystal oscillator (32.768  
kHz)  
When the high speed crystal oscillator is  
selected  
as  
system  
clock  
source  
Low power RC oscillator (32 – 36 kHz  
for CC2510Fx and 32 kHz for CC2511Fx)  
(CLKCON.OSCis set to 0), the HS RCOSC will  
be calibrated once. If SLEEP.OSC_PD=0, the  
HS RCOSC will run on the calibrated value  
once the calibration is completed (see Table  
The low speed crystal oscillator is designed to  
operate at 32.768 kHz and provide a stable  
clock signal for systems requiring time  
accuracy. The low power RC oscillator run at  
fXOSC / 750 for CC2510Fx and fXOSC / 1500 for  
CC2511Fx, when calibrated. The calibration can  
only take place when the high speed crystal  
oscillator is enabled and stable. The low power  
RC oscillator should be used to reduce cost  
and power consumption compared to the  
32.768 kHz crystal oscillator solution. The two  
low speed oscillators can not be operated  
simultaneously.  
15  
for  
initial  
calibration  
time).  
If  
SLEEP.OSC_PD=1, the HS RCOSC will be  
turned off after calibration, but the calibration  
value will be stored and used when the HS  
RCOSC is started again. In order to calibrate  
the HS RCOSC regularly (if so found  
necessary based on the drift parameters listed  
in Table 15) one should switch between using  
the HS RCOSC and the high speed crystal  
oscillator as system clock source.  
If CLKCON.OSC is set to 0 when entering  
PM{1-3}, the HS RCOSC will be calibrated  
once when returning to active mode.  
By default, after a reset, the low power RC  
oscillator is enabled and selected as the 32  
kHz clock source. The RC oscillator consumes  
less power, but is less accurate than the  
SWRS055D  
Page 78 of 243  
 
 
C2510Fx / CC2511Fx  
32.768 kHz crystal oscillator. Refer to 7.5 and  
7.6 for characteristics of these oscillators.  
This calibration is only performed in active  
mode and PM0. The result of the calibration is  
a RC clock running at 32 – 36 kHz for  
CC2510Fx and 32 kHz for CC2511Fx.  
The CLKCON.OSC32Kbit selects the source of  
the 32 kHz clock. This bit must only be  
changed while using the HS RCOSC as the  
system clock source. When the high speed  
crystal oscillator is selected and it is stable, i.e.  
SLEEP.XOSC_STB is 1, calibration of the low  
power RC oscillator is continuously performed.  
The low power RC oscillator calibration may  
take up to 2 ms to complete. The ongoing  
calibration must be completed before entering  
PM1 or PM2.  
SWRS055D  
Page 79 of 243  
C2510Fx / CC2511Fx  
CLKCON (0xC6) – Clock Control  
Bit  
Name  
Reset  
R/W  
Description  
7
OSC32K  
1
R/W  
32 kHz clock oscillator select. The HS RCOSC must be selected as system clock  
source when this bit is to be changed.  
0
1
32.768 kHz crystal oscillator  
Low power RC oscillator (32 – 36 kHz for CC2510Fx and 32 kHz for  
CC2511Fx)  
Note: This bit is not retained in PM2 and PM3. After re-entry to active mode from  
one of these power modes this bit will be at the reset value 1.  
6
OSC  
1
R/W  
System clock oscillator select.  
0
1
High speed crystal oscillator  
HS RC oscillator  
This setting will only take effect when the selected oscillator is powered up and  
stable. If the high speed crystal oscillator is not powered up, it should be enabled  
by setting SLEEP.OSC_PDto 0 prior to selecting it as source. If the HS RCOSC  
is to be the source and it is powered down, setting this bit will turn it on.  
5:3  
TICKSPD[2:0]  
001  
R/W  
Timer ticks output setting. The value of TICKSPDcannot be higher than CLKSPD.  
CLKCON.OSC=0  
CLKCON.OSC=1  
HS XOSC used as clock source  
for system clock  
Calibrated HS RCOSC used as  
clock source for system clock  
000  
001  
010  
011  
100  
101  
110  
111  
fRef  
26 MHz*  
NA  
NA  
fRef /2  
fRef /4  
fRef /8  
fRef /16  
fRef /32  
fRef /64  
fRef /128  
13 MHz*  
fRef /2  
fRef /4  
fRef /8  
fRef /16  
fRef /32  
fRef /64  
fRef /128  
13 MHz  
6.5 MHz*  
6.5 MHz  
3.25 MHz*  
1.625 MHz*  
812.5 kHz*  
406.25 kHz*  
203.125 kHz*  
3.25 MHz  
1.625 MHz  
812.5 kHz  
406.25 kHz  
203.125 kHz  
fRef = fxosc for CC2510Fx and fRef = fxosc/2 for CC2511Fx  
Numbers above are for CC2510Fx with fxosc = 26 MHz  
2:0  
CLKSPD[2:0]  
001  
R/W  
Clock speed setting. When a new CLKSPDvalue is written, the new setting is  
read when the clock has changed.  
CLKCON.OSC=0  
CLKCON.OSC=1  
HS XOSC used as clock source  
for system clock  
Calibrated HS RCOSC used as  
clock source for system clock  
000  
001  
010  
011  
100  
101  
110  
111  
fRef  
26 MHz  
NA  
NA  
fRef /2  
fRef /4  
fRef /8  
fRef /16  
fRef /32  
fRef /64  
fRef /128  
13 MHz  
fRef /2  
fRef /4  
fRef /8  
fRef /16  
fRef /32  
fRef /64  
fRef /128  
13 MHz  
6.5 MHz  
6.5 MHz  
3.25 MHz  
1.625 MHz  
812.5 kHz  
406.25 kHz  
203.125 kHz  
3.25 MHz  
1.625 MHz  
812.5 kHz  
406.25 kHz  
203.125 kHz  
f
Ref = fxosc for CC2510Fx and fRef = fxosc/2 for CC2511Fx  
Numbers above are for CC2510Fx with fxosc = 26 MHz  
SWRS055D  
Page 80 of 243  
 
C2510Fx / CC2511Fx  
13.1.6 Timer Tick Generation  
The XDATA memory locations 0xFDA2-  
0xFEFF (350 bytes) will lose all data when  
PM2 or PM3 is entered. These locations will  
contain undefined data when active mode is  
re-entered.  
The power management controller generates  
a tick or enable signal for the peripheral  
timers, thus acting as a prescaler for the  
timers. This is a global clock division for Timer  
1, Timer 2, Timer 3, and Timer 4. The tick  
speed is programmed from 0.203 to 26 MHz  
for CC2510Fx assuming a 26 MHz crystal or  
from 0.1875 to 24 MHz for CC2511Fx by setting  
the CLKCON.TICKSPDregister appropriately.  
The registers which retain their contents are  
the CPU registers, peripheral registers and RF  
registers, unless otherwise specified for a  
given register bit field. Switching to power  
modes PM2 and PM3 appears transparent to  
software with the following exception:  
Note: CLKCON.TICKSPD cannot be set  
higher than CLKCON.CLKSPD.  
Watchdog timer 15-bit counter is reset  
to 0x0000 when entering PM2 or PM3  
13.1.8 I/O and Radio  
13.1.7 Data Retention  
I/O port pins P1_0 and P1_1 do not have  
internal pull-up/pull-down resistors. These pins  
should therefore be set as outputs or pulled  
high/low externally to avoid leakage current.  
In PM2 and PM3, power is removed from most  
of the internal circuitry. However, parts of  
SRAM will retain its contents. The content of  
internal registers is also retained in PM2 and  
PM3, with some exceptions (see Table 31,  
Table 32, and Table 33).  
To save power, the radio should be turned off  
when it is not used.  
The XDATA memory locations 0xF000-  
0xFFFF (4096 bytes) retain data in PM2 and  
PM3. Please note the following exception:  
13.2 Reset  
Brown Out Detector (BOD) operating on the  
regulated 1.8 V digital power supply only, The  
BOD will protect the memory contents during  
supply voltage variations which cause the  
regulated 1.8 V power to drop below the  
minimum level required by flash memory and  
SRAM.  
The CC2510Fx/CC2511Fx has four reset sources.  
The following events generate a reset:  
Forcing RESET_N input pin low  
A power-on reset condition  
A brown-out reset condition  
Watchdog timer reset condition  
When power is initially applied to the  
CC2510Fx/CC2511Fx the Power On Reset (POR)  
and Brown Out Detector (BOD) will hold the  
device in reset state until the supply voltage  
reaches above the Power On Reset and  
Brown Out voltages.  
The initial conditions after a reset are as  
follows:  
I/O pins are configured as inputs with  
pull-up, except P1_0 and P1_1.  
CPU program counter is loaded with  
0x0000 and program execution starts at  
this address  
Figure 18 shows the POR/BOD operation with  
the 1.8V (typical) regulated supply voltage  
together with the active low reset signals  
BOD_RESET and POR_RESET shown in the  
bottom of the figure (note that these signals  
are not available but are included on the figure  
for illustration purposes).  
All peripheral registers are initialized to  
their reset values (refer to register  
descriptions)  
Watchdog timer is disabled  
The cause of the last reset can read from the  
register bits SLEEP.RST. It should be noted  
that a BOD reset will be read as a POR reset.  
13.2.1 Power On Reset and Brown Out  
Detector  
The CC2510Fx/CC2511Fx includes a Power On  
Reset (POR) providing correct initialization  
during device power-on. Also included is a  
SWRS055D  
Page 81 of 243  
C2510Fx / CC2511Fx  
1.8V REGULATED  
UNREGULATED  
VOLT  
BOD RESET ASSERT  
POR RESET DEASSERT RISING VDD  
POR RESET ASSERT FALLING VDD  
0
POR OUTPUT  
X
X
X
BOD RESET  
POR RESET  
X
X
X
Figure 18: Power-On-Reset and Brown Out Detector Operation  
13.3 Flash Controller  
address written to the address registers  
FADDRH:FADDRL.  
The CC2510Fx/CC2511Fx contains 8, 16 or 32 KB  
flash memory for storage of program code.  
The flash memory is programmable from the  
user software and through the debug interface.  
See Table 27 on Page 31 for flash memory  
size options.  
When performing page erase operations, the  
flash memory page to be erased is addressed  
through the register bits FADDRH[5:1].  
Note the difference in addressing the flash  
memory; when accessed by the CPU to read  
code or data, the flash memory is byte-  
addressable. When accessed by the Flash  
Controller, the flash memory is word-  
addressable, where a word consists of 16 bits.  
The Flash Controller handles writing to the  
embedded flash memory and erasing of the  
same memory. The embedded flash memory  
consists of 8, 16, or 32 pages (each page is  
1024 bytes) depending on the total flash size.  
The Flash Controller has the following  
features:  
The next sections describe the procedures for  
flash write and flash page erase in detail.  
16-bit word programmable  
Page erase  
13.3.2 Flash Write  
Data is written to the flash memory by using a  
program command initiated by writing a 1 to  
FCTL.WRITE. Flash write operations can  
program any number of words in the flash  
memory, single words or block of words in  
sequence starting at the address set by  
FADDRH:FADDRL. A bit in a word can be  
change from 1 to 0, but not from 0 - 1 (writing a  
1 to a bit that is 0 will be ignored). The only  
way to change a 0 to a 1 is by doing a page  
erase or chip erase through the debug  
interface, as the erased bits are set to 1.  
Lock bits for write-protection and code  
security  
Flash page erase time: 20 ms  
Flash chip erase time: 200 ms  
Flash write time (2 bytes): 20 µs  
Auto power-down during low-frequency  
CPU clock read access (divided clock  
source, CLKCON.CLKSPD)  
13.3.1 Flash Memory Organization  
A write operation is performed using one out of  
two methods;  
The flash memory is divided into 8, 16, or 32  
flash pages consisting of 1 KB each. A flash  
page is the smallest erasable unit in the  
memory, while a 16-bit word is the smallest  
writable unit that may be addressed through  
the Flash Controller.  
Through DMA transfer  
Through CPU SFR access  
The DMA transfer method is the preferred way  
to write to the flash memory.  
When performing write operations, the flash  
memory is word-addressable using a 14-bit  
SWRS055D  
Page 82 of 243  
C2510Fx / CC2511Fx  
A write operation is initiated by writing a 1 to  
FCTL.WRITE. The address to start writing at is  
given by FADDRH:FADDRL. During each single  
write operation FCTL.SWBSY is set high.  
During a write operation, the data written to the  
FWDATA register is forwarded to the flash  
memory. The flash memory is 16-bit word-  
programmable, meaning data is written as 16-  
bit words. The first byte written to FWDATA is  
the LSB of the 16-bit word. The actual writing  
to flash memory takes place each time two  
bytes have been written to FWDATA, meaning  
that the number of bytes written to flash must  
be a multiple of two.  
program code must reside in the area 0xF000  
to 0xFEFF in CODE memory space (unified).  
When using the DMA to write to flash, the code  
can be executed from within flash memory.  
When a flash write operation is executed from  
RAM, the CPU continues to execute code from  
the next instruction after initiation of the flash  
write operation (FCTL.WRITE=1).  
The FCTL.SWBSY bit must be 0 before  
accessing the flash after  
a flash write,  
otherwise an access violation occurs. This  
means that FCTL.SWBSY must be 0 before  
program execution can continue from  
location in flash memory.  
a
0x7FFE  
0x7C00  
0x7FFF  
0x7C01  
13.3.2.1 DMA Flash Write  
PAGE 32  
When using the DMA to write to flash, the data  
to be written is stored in the XDATA memory  
space (RAM or flash). A DMA channel should  
be configured to have the location of the stored  
data as source address and the Flash Write  
Data register, FWDATA, as the destination  
address. The DMA trigger event FLASH  
should be selected (TRIG[4:0]=10010).  
Please see Section 13.5 for more details  
regarding DMA operation. Thus the Flash  
Controller will trigger a DMA transfer when the  
Flash Write Data register, FWDATA, is ready to  
receive new data.  
.
.
.
0x0BFE  
0x0800  
0x0BFF  
0x0801  
.
.
.
.
.
.
PAGE 2  
.
.
.
0x03FE  
0x0000  
0x03FF  
0x0001  
.
.
.
.
.
.
PAGE 0  
Figure 19: Flash Address (in unified memory  
space)  
When the DMA channel is armed, starting a  
flash write by setting FCTL.WRITE to 1 will  
trigger the first DMA transfer.  
When accessed by the Flash Controller, the  
flash memory is word-addressable. Each page  
in flash consists of 512 words, addressed  
Figure 20 shows an example on how a DMA  
channel is configured and how a DMA transfer  
is initiated to write a block of data from a  
location in XDATA to flash memory.  
through  
FADDRH[0]:FADDRL[7:0].  
FADDRH[5:1] is used to indicate the page  
number. That means that if one wants to write  
to the byte in flash mapped to address 0x0BFE  
(see Figure 19), FADDRH:FADDRL should be  
0x05FF (page 2, word 511).  
The DMA channel should be configured to  
operate in single transfer mode, the transfer  
count should be equal the size of the data  
block to be transferred (must be a multiple of  
2), and each transfer should be a byte. Source  
address should be incremented by one for  
each transfer, while the destination address  
should be fixed.  
The CPU will not be able to access the flash,  
e.g. to read program code, while a flash write  
operation is in progress. Therefore the  
program code executing the flash write must  
be executed from RAM, meaning that the  
SWRS055D  
Page 83 of 243  
 
C2510Fx / CC2511Fx  
Figure 20: Flash Write Using DMA  
When performing DMA flash write while  
executing code from within flash memory, the  
instruction that triggers the first DMA trigger  
event FLASH (TRIG[4:0]=10010) must be  
aligned on a 2-byte boundary. Figure 21 shows  
an example of code that correctly aligns the  
instruction for triggering DMA (Note that this  
code is IAR specific). The code below is  
shown for CC2510Fx, but will also work for  
CC2511Fx if the include file is being replaced by  
ioCC2511.h  
; Write flash and generate FLASH DMA trigger  
; Code is executed from flash memory  
;
#include “ioCC2510.h”  
MODULE flashDmaTrigger.s51  
RSEG RCODE (1)  
PUBLIC halFlashDmaTrigger  
FUNCTION halFlashDmaTrigger, 0203H  
halFlashDmaTrigger:  
ORL FCTL, #0x02;  
RET;  
END;  
Figure 21: DMA Flash Write Executed from within Flash Memory  
13.3.2.2 CPU Flash Write  
Note that there exist a timeout period of 40 µs  
for writing one flash word to FWDATA, thus  
writing two bytes to the FWDATA register has  
to end within 40 µs after FCTL.SWBSY went  
low and also within 40 µs after a write has  
been initiated by writing a 1 to FCTL.WRITE  
(see Figure 23). Failure to do so will clear the  
FCTL.BYSY bit. FADDRH:FADDRL will contain  
the address of the location where write  
operation failed. A new write operation can be  
started by setting FCTL.WRITEto 1 again and  
write two bytes to FWDATA. If one wants to do  
The CPU can also write directly to the flash  
when executing program code from RAM using  
unified memory space. The CPU writes data to  
the Flash Write Data register, FWDATA. The  
flash memory is written each time two bytes  
have been written to FWDATA, if a write has  
been enabled by setting FCTL.WRITE to 1.  
The CPU can poll the FCTL.SWBSY status to  
determine when the flash is ready for two new  
bytes to be written to FWDATA.  
SWRS055D  
Page 84 of 243  
 
C2510Fx / CC2511Fx  
the whole write operation over again and not  
just start from where it failed, one has to erase  
the page, writing the start address to  
FADDRH:FADDRL, and setting FCTL.WRITE  
to 1 (see Section 13.3.3).  
The steps required to start a CPU flash write  
operation are shown in Figure 22. Note that  
code must be run from RAM in unified memory  
space.  
Disable interrupts  
YES  
FCTL.BUSY=1?  
NO  
Setup FCTL, FWT,  
FADDRH, FADDRL  
Write two bytes to  
FWDATA  
NO  
YES  
Transfer  
Completed?  
NO  
FCTL.SWBSY=1?  
YES  
Figure 22: CPU Flash Write Executed from RAM  
FCTL.SWBSY  
FCTL.BUSY  
Write two bytes  
Write two bytes  
to FWDATA  
(D0 and D1)  
Write two bytes  
to FWDATA  
to FWDATA  
40 µs  
40 µs  
40 µs  
Set FCTL.WRITE= 1  
FADDRH:FADDRL= n  
FADDRH:FADDRL= n + 1  
Write D2 and D3 to  
flash address n + 1  
FADDRH:FADDRL= n + 2  
Write D4 and D5 to  
flash address n + 2  
Write operation failed due  
to a timeout.  
Write D0 and D1 to  
flash addres n  
Figure 23. Flash Write Timeout  
13.3.3 Flash Page Erase  
simultaneously with  
a
page write, i.e.  
FCTL.WRITEis set to 1, the page erase will be  
performed before the page write operation.  
The FCTL.BUSYbit can be polled to see when  
the page erase has completed.  
After a flash page erase, all bytes in the  
erased page are set to 1.  
A
page erase is initiated by setting  
FCTL.ERASE to 1. The page addressed by  
FADDRH[5:1]is erased when a page erase is  
initiated. Note that if a page erase is initiated  
SWRS055D  
Page 85 of 243  
 
 
C2510Fx / CC2511Fx  
The steps required to perform a flash page  
erase from within flash memory are outlined in  
Figure 24.  
Note: If flash erase operations are  
performed from within flash memory and  
the watchdog timer is enabled, a watchdog  
timer interval must be selected that is  
longer than 20 ms, the duration of the flash  
page erase operation, so that the CPU will  
manage to clear the watchdog timer.  
Note that, while executing program code from  
within flash memory, when a flash erase or  
write operation is initiated, program execution  
will resume from the next instruction when the  
Flash Controller has completed the operation.  
The flash erase operation requires that the  
instruction that starts the erase i.e. writing to  
FCTL.ERASE is followed by a NOP instruction  
as shown in the example code. Omitting the  
NOP instruction after the flash erase operation  
will lead to undefined behavior.  
; Erase page 1 in flash memory  
; Assumes 26 MHz system clock is used  
;
CLR  
MOV  
JB  
MOV  
MOV  
MOV  
NOP  
RET  
EA  
A,FCTL  
ACC.7,C1  
FADDRH,#02h  
FWT,#2Ah  
FCTL,#01h  
; Mask interrupts  
; Wait until flash controller is ready  
C1:  
; Setup flash address (FADDRH[5:1] = 1)  
; Setup flash timing  
; Erase page  
; Must always execute a NOP after erase  
; Continues here when flash is ready  
Figure 24: Flash Page Erase Performed from Flash Memory  
13.3.4 Flash DMA trigger  
The value used for FWT.FWT[5:0]is given by  
the following equation:  
When the DMA channel is armed and the  
FLASH trigger selected TRIG[4:0]=10010,  
starting a flash write by setting FCTL.WRITE  
to 1 will trigger the first DMA transfer. The  
following DMA transfers will be triggered by  
the Flash Controller when the Flash Write  
Data register, FWDATA, is ready to receive new  
data.  
21000 F  
FWT =  
16*109  
where F is the system clock frequency. The  
initial value held in FWT.FWT[5:0] after a  
reset is 0x11, which corresponds to 13 MHz  
system clock frequency (calibrated HS  
RCOSC frequency for CC2510Fx when using a  
26 MHz XOSC).  
13.3.5 Flash Write Timing  
The Flash Controller contains  
a
timing  
13.3.6 Flash Controller Registers  
generator, which controls the timing sequence  
of flash write and erase operations. The timing  
generator uses the information set in the Flash  
Write Timing register, FWT.FWT[5:0], to set  
the internal timing. FWT.FWT[5:0] must be  
set to a value according to the currently  
selected system clock frequency.  
The Flash Controller registers are described in  
this section.  
SWRS055D  
Page 86 of 243  
 
 
C2510Fx / CC2511Fx  
FCTL (0xAE) – Flash Control  
Bit  
7
Name  
Reset  
R/W  
R
Description  
BUSY  
0
0
Indicates that write or erase is in operation when set to 1  
6
SWBSY  
R
Indicates that a flash write is in progress. This byte is set to 1 after two bytes  
has been written to FWDATA.  
Do not write to FWDATA register while this bit is set.  
Not used  
5
4
-
R0  
0
CONTRD  
R/W  
Continuous read enable  
0
Disable. To avoid wasting power, continuous read should only be  
enabled when needed  
1
Enable. Reduces internal switching of read enables, but greatly  
increases power consumption.  
3:2  
1
-
R0  
Not used  
WRITE  
ERASE  
0
R0/W  
When set to 1, a program command used to write data to flash memory is  
initiated.  
If ERASEis set to 1at the same time as this bit is set to 1, a page erase of the  
whole page addressed by FADDRH[6:1]is performed before the write.  
This bit will be 0 when returning from PM2 and PM3  
Page Erase. Erase page given by FADDRH[5:1].  
This bit will be 0 when returning from PM2 and PM3  
0
0
R0/W  
FWDATA (0xAF) – Flash Write Data  
Bit  
Name  
Reset  
R/W  
Description  
7:0  
FWDATA[7:0]  
0x00  
R/W  
If FCTL.WRITEis set to 1, writing two bytes in a row to this register starts the  
actual writing to flash memory. FCTL.SWBSYwill be 1 during the actual flash  
write  
FADDRH (0xAD) – Flash Address High Byte  
Bit  
7:6  
5:0  
Name  
Reset  
0
R/W  
R/W  
R/W  
Description  
Not used  
FADDRH[6:0]  
000000  
Page address / High byte of flash word address  
Bits 5:1 will select which page to access.  
FADDRL (0xAC) – Flash Address Low Byte  
Bit  
Name  
Reset  
R/W  
Description  
7:0  
FADDRL[7:0]  
0x00  
R/W  
Low byte of flash address  
FWT (0xAB) – Flash Write Timing  
Bit  
7:6  
5:0  
Name  
Reset  
0
R/W  
R/W  
R/W  
Description  
Not used  
FWT[5:0]  
0x11  
Flash Write Timing. Controls flash timing generator.  
21000F  
16*109  
, where F is the system clock frequency (see Section  
FWT =  
13.3.5)  
SWRS055D  
Page 87 of 243  
 
 
 
 
 
C2510Fx / CC2511Fx  
13.4 I/O Ports  
of a port pin, at any time, the registers PxDIR  
are used to set each port pin to be either an  
input or an output. Thus by setting the  
Note: P0_6 and P0_7 do not exist on CC2511Fx.  
The CC2511Fx has 19 digital input/output pins  
available and the ADC inputs A6 and A7 can  
not be used. Apart from this, all information in  
this section applies to both CC2511Fx and  
CC2510Fx. For all registers in this section, an x  
in the register name can be replaced by 0, 1,  
or, 2, referring to the port number, if nothing  
else is stated.  
appropriate bit within PxDIR  
to 1, the  
corresponding pin becomes an output.  
When reading the port registers P0, P1, and  
P2, the logic values on the input pins are  
returned regardless of the pin configuration.  
This does not apply during the execution of  
read-modify-write instructions. The read-  
modify-write instructions are: ANL, ORL, XRL,  
JBC, CPL, INC, DEC, DJNZ, and MOV, CLR,  
or SETB. Operating on a port registers the  
following is true: When the destination is an  
individual bit in a port register P0, P1or P2the  
value of the register, not the value on the pin,  
is read, modified, and written back to the port  
register.  
The CC2510Fx has 21 digital input/output pins  
that can be configured as general purpose  
digital I/O or as peripheral I/O signals  
connected to the ADC, Timers, I2S, or USART  
peripherals. The usage of the I/O ports is fully  
configurable from user software through a set  
of configuration registers.  
The I/O ports have the following key features:  
21 digital input/output pins  
When used as an input, the general purpose  
I/O port pins can be configured to have a pull-  
up, pull-down, or tri-state mode of operation.  
By default, inputs are configured as inputs with  
pull-up. To de-select the pull-up/pull-down  
function on an input the appropriate bit within  
the PxINPmust be set to 1. The I/O port pins  
P1_0 and P1_1 do not have pull-up/pull-down  
capability.  
General purpose I/O or peripheral I/O  
Pull-up or pull-down capability on inputs,  
except on P1_0 and P1_1.  
External interrupt capability  
The external interrupt capability is available on  
all 21 I/O pins. Thus, external devices may  
generate interrupts if required. The external  
interrupt feature can also be used to wake up  
from all four power modes (PM{0-3}).  
In PM1, PM2, and PM3 the I/O pins retain the  
I/O mode and output value (if applicable) that  
was set when PM1/2/3 was entered.  
13.4.1 General Purpose I/O  
13.4.2 Unused I/O Pins  
When used as general purpose I/O, the pins  
are organized as three 8-bit ports, port 0, 1,  
and 2, denoted P0, P1, and P2. P0 and P1 are  
complete 8-bit wide ports while P2 has only  
five usable bits (P2_0 to P2_4). All ports are  
both bit- and byte addressable through the  
SFRs P0, P1 and P2. Each port pin can  
individually be set to operate as a general  
purpose I/O or as a peripheral I/O.  
Unused I/O pins should have a defined level  
and not be left floating. One way to do this is  
to leave the pin unconnected and configure  
the pin as a general purpose I/O input with  
pull-up resistor. This is the default state of all  
pins after reset except for P1_0 and P1_1  
which do not have pull-up/pull-down resistors  
(note that only P2_2 has pull-up during reset).  
Alternatively the pin can be configured as a  
general purpose I/O output. In both cases the  
pin should not be connected directly to VDD or  
GND in order to avoid excessive power  
consumption.  
Note: P1_0 and P1_1 have LED driving  
capabilities.  
To use a port as a general purpose I/O pin the  
pin must first be configured. The registers  
PxSELare used to configure each pin in a port  
either as a general purpose I/O pin or as a  
peripheral I/O signal. All digital input/output  
pins are configured as general-purpose I/O  
pins by default.  
13.4.3 Low I/O Supply Voltage  
In applications where the digital I/O power  
supply voltage pin DVDD is below 2.6 V, the  
register bit PICTL.PADSC should be set to 1  
in order to obtain output DC characteristics  
specified in Section 7.16.  
By default, all general-purpose I/O pins are  
configured as inputs. To change the direction  
SWRS055D  
Page 88 of 243  
 
C2510Fx / CC2511Fx  
13.4.4 General Purpose I/O Interrupts  
P1IEN: P1 interrupt enables  
General purpose I/O pins configured as inputs  
can be used to generate interrupts. The  
interrupts can be configured to trigger on  
either a rising or falling edge of the external  
signal. Each of the P0, P1 and P2 ports have  
separate interrupt enable bits common for all  
bits within the port located in the IENx  
registers as follows:  
PICTL: P0/P2 interrupt enables and P0,  
P1, and P2 edge configuration  
P0IFG: P0 interrupt status flags  
P1IFG: P1 interrupt status flags  
P2IFG: P2 interrupt status flags  
13.4.5 General Purpose I/O DMA  
IEN1.P0IE: P0 interrupt enable  
IEN2.P1IE: P1 interrupt enable  
IEN2.P2IE: P2 interrupt enable  
When used as general purpose I/O pins, the  
P0_1 and P1_3 pins are each associated with  
one DMA trigger. These DMA triggers are  
IOC_0 for P0_1 and IOC_1 for P1_3 as shown  
in Table 51 on Page 105.  
In addition to these common interrupt enables,  
the bits within each port have interrupt enable  
bits located in I/O port SFRs. Each bit within  
P1 has an individual interrupt enable bit,  
P1_xIEN, where x is 0 - 7, located in the  
P1IEN register. For P0, the low-order nibble  
and the high-order nibble have their individual  
interrupt enables, P0IENL and P0IENH  
respectively, found in the PICTL register. For  
the P2_0 – P2_4 inputs there is a common  
interrupt enable, P2IEN, in the PICTL  
register.  
The IOC_0 DMA trigger is activated when  
there  
is  
a
rising  
edge  
on  
P0_1  
(P0SEL.SELP0_1 and P0DIR.P0_1 must be  
0) and IOC_1 is activated when there is a  
falling edge on P1_3 (P1SEL.SELP1_3 and  
P1DIR.P1_3 must be 0). Note that only input  
transitions on pins configured as general  
purpose I/O, inputs will produce a DMA trigger.  
13.4.6 Peripheral I/O  
This section describes how the digital  
input/output pins are configured as peripheral  
I/Os. For each peripheral unit that can  
interface with an external system through the  
digital input/output pins, a description of how  
peripheral I/Os are configured is given in the  
following sub-sections.  
When an interrupt condition occurs on one of  
the  
general  
purpose  
I/O  
pins,  
the  
corresponding interrupt status flag in the P0 -  
P2 interrupt status flag registers, P0IFG ,  
P1IFG, or P2IFG will be set to 1. The  
interrupt status flag is set regardless of  
whether the pin has its interrupt enable set.  
The CPU interrupt flags located in IRCON2for  
P1 and P2, and IRCON for P0, will only be  
asserted if one or more of the interrupt enable  
bits found in P1IEN (P1) and PICTL (P0 and  
P2) are set to 1. Note that the module interrupt  
flag needs to be cleared prior to clearing the  
CPU interrupt flag.  
In general, setting the appropriate PxSEL bits  
to 1 is required to select peripheral I/O function  
on a digital I/O pin.  
Note that peripheral units have two alternative  
locations for their I/O pins. Please see Table  
50.  
The SFRs used for I/O interrupts are  
described in Section 11.5 on Page 58. The  
registers are the following:  
SWRS055D  
Page 89 of 243  
 
C2510Fx / CC2511Fx  
Periphery /  
Function  
P0  
P1  
7
P2  
712  
612  
5
4
3
2
1
0
6
5
4
3
2
1
0
4
3
2
1
0
ADC  
A7  
A6  
A5  
C
A4  
SS  
A3  
M0  
A2  
MI  
A1  
A0  
USART0 Alt. 1  
SPI  
Alt. 2  
MO  
TX  
C
MI  
C
SS  
CT  
USART0 Alt. 1  
UART Alt. 2  
RT  
MI  
CT  
M0  
TX  
2
TX  
C
RX  
SS  
CT  
0
RX  
SS  
CT  
RT  
USART1 Alt. 1  
SPI  
Alt. 2  
MI  
M0  
TX  
USART1 Alt. 1  
UART Alt. 2  
RX  
RT  
1
RX  
RT  
TIMER1 Alt. 1  
Alt. 2  
0
1
1
2
0
TIMER3 Alt. 1  
Alt. 2  
1
0
1
0
TIMER4 Alt. 1  
Alt. 2  
1
0
I2S  
Alt. 1  
Alt. 2  
CK  
WS  
RX  
TX  
CK  
Q1  
WS  
DC  
RX  
DD  
TX  
32.768 kHz  
XOSC  
Q2  
DEBUG  
Table 50: Peripheral I/O Pin Mapping  
13.4.6.1 USART0  
than two peripherals to the same pin locations,  
as P2DIR.PRIP0 will not give a conclusive  
order of precedence if more than two  
peripherals are in conflict on a pin.  
The SFR bit PERCFG.U0CFG selects whether  
to use alternative 1 or alternative 2 locations.  
In Table 50, the USART0 signals are shown  
as follows:  
P2SEL.PRI3P1,  
P2SEL.PRI2P1,  
P2SEL.PRI1P1, and P2SEL.PRI0P1 select  
the order of precedence when assigning two,  
and in some cases three, peripherals to P1.  
An example is if both the USARTs are assign  
to P1 together with Timer 1 (channel 2, 1, and  
0). By setting both PRI3P1 and PRI0P1 to 0,  
USART0 will have precedence. Note that if  
USART0 is configured to operate in UART  
mode with hardware flow control disabled,  
USART1 can still use P1_7 and P1_6, while  
Timer 1 can use P1_2, P1_1, and P1_0. Also  
on P1 it is the user’s responsibility to make  
sure that there is a conclusive order of  
precedence based on the PERCFGand P2SEL  
settings.  
SPI:  
SCK: C  
SSN: SS13  
MOSI: MO  
MISO: MI  
UART:  
RXDATA: RX  
TXDATA: TX  
RTS: RT  
CTS: CT  
P2DIR.PRIP0  
selects  
the  
order  
of  
13.4.6.2 USART1  
precedence when assigning two peripherals to  
the same pin location on P0. When set to 00,  
USART0 has precedence if both USART0 and  
USART1 are assigned to the same pins. Note  
that if USART0 is configured to operate in  
UART mode with hardware flow control  
disabled, USART1 or timer 1 will have  
precedence to use ports P0_4 and P0_5. It is  
the user’s responsibility to not assign more  
The SFR bit PERCFG.U1CFG selects whether  
to use alternative 1 or alternative 2 locations.  
In Table 50, the USART1 signals are shown  
as follows:  
SPI:  
SCK: C  
SWRS055D  
Page 90 of 243  
 
 
 
 
 
C2510Fx / CC2511Fx  
SSN: SS14  
MOSI: MO  
MISO: MI  
responsibility to not assign more than two  
peripherals to the same pin locations  
P2SEL.PRI3P1,  
P2SEL.PRI2P1,  
P2SEL.PRI1P1, and P2SEL.PRI0P1 select  
the order of precedence when assigning two,  
and in some cases three, peripherals to P1.  
UART:  
RXDATA: RX  
TXDATA: TX  
RTS: RT  
When  
P2SEL.PRI1P1  
=
0
and  
P2SEL.PRI0P1 = 1, Timer 1 has precedence  
over Timer 4 and USART0 respectively. It is  
the user’s responsibility to avoid configurations  
where the order of precedence is not  
conclusive.  
CTS: CT  
P2DIR.PRIP0  
selects  
the  
order  
of  
precedence when assigning two peripherals to  
the same pin location on P0. When set to 01,  
USART1 has precedence if both USART0 and  
USART1 are assigned to the same pins. Note  
that if USART1 is configured to operate in  
UART mode with hardware flow control  
disabled, USART0 or timer 1 will have  
precedence to use ports P0_3 and P0_2. It is  
the user’s responsibility to not assign more  
than two peripherals to the same pin locations,  
as P2DIR.PRIP0 will not give a conclusive  
order of precedence if more than two  
peripherals are in conflict on a pin.  
13.4.6.4 Timer 3  
PERCFG.T3CFG selects whether to use  
alternative 1 or alternative 2 locations.  
In Table 50, the Timer 3 signals are shown as  
follows:  
Channel 0 compare pin: 0  
Channel 1 compare pin: 1  
P2SEL.PRI3P1,  
P2SEL.PRI2P1,  
P2SEL.PRI1P1, and P2SEL.PRI0P1 select  
the order of precedence when assigning two,  
and in some cases three, peripherals to P1.  
Setting P2SEL.PRI2P1 = 1 gives Timer 3  
precedence over USART1. It is the user’s  
responsibility to avoid configurations where the  
order of precedence is not conclusive.  
P2SEL.PRI3P1,  
P2SEL.PRI2P1,  
P2SEL.PRI1P1, and P2SEL.PRI0P1 select  
the order of precedence when assigning two,  
and in some cases three, peripherals to P1. By  
setting PRI3P1 to 1 and PRI2P1 to 0,  
USART1 will have precedence over both  
USART0 and Timer 3. However, if USART1 is  
configured to operate in UART mode with  
hardware flow control disabled, there will be a  
conflict on P1_4 between USART0 and Timer  
3 (channel 1), which the P2SEL register  
settings do not solve. It is the user’s  
responsibility to avoid configurations where the  
order of precedence is not conclusive.  
13.4.6.5 Timer 4  
PERCFG.T4CFG selects whether to use  
alternative 1 or alternative 2 locations.  
In Table 50, the Timer 4 signals are shown as  
follows:  
Channel 0 compare pin: 0  
Channel 1 compare pin: 1  
13.4.6.3 Timer 1  
P2SEL.PRI3P1,  
P2SEL.PRI2P1,  
P2SEL.PRI1P1, and P2SEL.PRI0P1 select  
the order of precedence when assigning two,  
and in some cases three, peripherals to P1.  
Setting P2SEL.PRI12P1 = 1 gives Timer 4  
precedence over Timer 1. It is the user’s  
responsibility to avoid configurations where the  
order of precedence is not conclusive.  
PERCFG.T1CFG selects whether to use  
alternative 1 or alternative 2 locations.  
In Table 50, the Timer 1 signals are shown as  
follows:  
Channel 0 capture/compare pin: 0  
Channel 1 capture/compare pin: 1  
Channel 2 capture/compare pin: 2  
13.4.6.6 I2S  
The  
I2S  
configuration  
register  
bit  
P2DIR.PRIP0  
selects  
the  
order  
of  
I2SCFG1.IOLOC selects whether to use  
alternative 1 or alternative 2 locations.  
In Table 50, the I2S signals are shown as  
follows:  
precedence when assigning two peripherals to  
the same pin location on P0. When set to 10  
or 11, Timer 1 has precedence over USART1  
and USART0 respectively. It is the user’s  
SWRS055D  
Page 91 of 243  
 
 
C2510Fx / CC2511Fx  
CLKCON.OSC32K is low, regardless of the  
configurations of these pins.  
Continuous Serial Clock (SCK): CK  
Word Select: WS  
13.4.10 Radio Test Output Signals  
Serial Data In: RX  
For debug and test purposes, a number of  
internal status signals in the radio may be  
output on the port pins P1_7 – P1_5. This  
debug option is controlled through the RF  
registers IOCFG2-IOCFG0(see Section 16 for  
more details).  
Serial Data Out: TX  
The I2S interface will have precedence in  
cases where other peripherals (except for the  
debug interface) are configured to be on the  
same location.  
Setting IOCFGx.GDOx_CFG to a value other  
than 0 will override the P1SEL_SELP1_7,  
13.4.7 ADC  
When using the ADC in an application, some  
or all of the P0 pins must be configured as  
ADC inputs. The port pins are mapped to the  
ADC inputs so that P0_7 – P0_0 corresponds  
to AIN7 - AIN0. To configure a P0 pin to be  
used as an ADC input the corresponding bit in  
the ADCCFG register must be set to 1. The  
default values in this register select the Port 0  
P1SEL_SELP1_6,  
and  
P1SEL_SELP1_5  
settings, and the pins will automatically  
become outputs. These pins cannot be used  
when the I2S interface is enabled.  
13.4.11 I/O Registers  
The registers for the IO ports are described in  
this section. The registers are:  
pins  
as  
non-ADC  
input  
i.e.  
digital  
input/outputs.  
P0Port 0  
Note: P0_6 and P0_7 do not exist on  
CC2511Fx, hence six input channels are  
available (AIN0 – AIN5)  
P1Port 1  
P2Port 2  
The settings in the ADCCFG register override  
the settings in P0SEL (the register used to  
select a pin to be either GPIO or to have a  
peripheral function).  
PERCFGPeripheral Control  
ADCCFGADC Input Configuration  
P0SELPort 0 Function Select  
P1SELPort 1 Function Select  
P2SELPort 2 Function Select  
P0DIRPort 0 Direction  
The ADC can be configured to use the  
general-purpose I/O pin P2_0 as an external  
trigger to start conversions. P2_0 must be  
configured as a general-purpose I/O in input  
mode, when being used for ADC external  
trigger.  
P1DIRPort 1 Direction  
Refer to Section 13.10 on Page 140 for a  
detailed description on how to use the ADC.  
P2DIRPort 2 Direction  
P0INPPort 0 Input Mode  
P1INPPort 1 Input Mode  
P2INPPort 2 Input Mode  
P0IFGPort 0 Interrupt Status Flag  
P1IFGPort 1 Interrupt Status Flag  
P2IFGPort 2 Interrupt Status Flag  
PICTLPort Interrupt Control  
P1IENPort 1 Interrupt Mask  
13.4.8 Debug Interface  
Ports P2_1 and P2_2 are used for debug data  
and clock signals, respectively. These are  
shown as DD (debug data) and DC (debug  
clock) in Table 50. The state of P2SEL is  
overridden by the debug interface. Also,  
P2DIR.DIRP2_1 and P2DIR.DIRP2_2 is  
overridden when the chip changes the  
direction to supply the external host with data.  
13.4.9 32.768 kHz XOSC Input  
Ports P2_3 and P2_4 are used to connect to  
an external 32.768 kHz crystal. These port  
pins will be set in analog mode and used by  
the 32.768 kHz crystal oscillator when  
SWRS055D  
Page 92 of 243  
 
 
C2510Fx / CC2511Fx  
P0 (0x80) – Port 0  
Bit  
Name  
Reset  
R/W  
Description  
7:0  
P0[7:0]  
0xFF  
R/W  
Port 0. General purpose I/O port. Bit-addressable.  
P1 (0x90) – Port 1  
Bit  
Name  
Reset  
R/W  
Description  
7:0  
P1[7:0]  
0xFF  
R/W  
Port 1. General purpose I/O port. Bit-addressable.  
P2 (0xA0) – Port 2  
Bit  
7:5  
4:0  
Name  
Reset  
1
R/W  
R/W  
R/W  
Description  
Not used  
P2[4:0]  
0x1F  
Port 2. General purpose I/O port. Bit-addressable.  
PERCFG (0xF1) – Peripheral Control  
Bit  
7
Name  
Reset  
R/W  
R0  
Description  
-
Not used  
6
T1CFG  
0
R/W  
Timer 1 I/O location  
0
1
Alternative 1 location  
Alternative 2 location  
5
4
T3CFG  
T4CFG  
0
0
R/W  
R/W  
Timer 3 I/O location  
0
1
Alternative 1 location  
Alternative 2 location  
Timer 4 I/O location  
0
1
Alternative 1 location  
Alternative 2 location  
3:2  
1
-
R0  
Not used  
U1CFG  
U0CFG  
0
R/W  
USART1 I/O location  
0
1
Alternative 1 location  
Alternative 2 location  
0
0
R/W  
USART0 I/O location  
0
1
Alternative 1 location  
Alternative 2 location  
SWRS055D  
Page 93 of 243  
 
 
 
 
C2510Fx / CC2511Fx  
ADCCFG (0xF2) – ADC Input Configuration  
Bit  
Name  
Reset  
R/W  
Description  
7:0  
ADCCFG[7:0]  
0x00  
R/W  
ADC input configuration. ADCCFG[7:0] select P0_7 - P0_0 as ADC inputs  
AIN7 – AIN0  
0
1
ADC input disabled  
ADC input enabled  
P0SEL (0xF3) – Port 0 Function Select  
Bit  
Name  
Reset  
R/W  
Description  
P0_7 to P0_0 function select  
7:0  
SELP0_[7:0]  
0x00  
R/W  
0
1
General purpose I/O  
Peripheral function  
P1SEL (0xF4) – Port 1 Function Select  
Bit  
Name  
Reset  
R/W  
Description  
P1_7 to P1_0 function select  
7:0  
SELP1_[7:0]  
0
R/W  
0
1
General purpose I/O  
Peripheral function  
SWRS055D  
Page 94 of 243  
 
 
 
C2510Fx / CC2511Fx  
P2SEL (0xF5) – Port 2 Function Select  
Bit  
7
Name  
Reset  
R/W  
R0  
Description  
-
Not used  
6
PRI3P1  
0
R/W  
Port 1 peripheral priority control. These bits shall determine the order of  
precedence in the case when PERCFGassigns USART0 and USART1 to the  
same pins.  
0
1
USART0 has priority  
USART1 has priority  
5
4
3
PRI2P1  
PRI1P1  
PRI0P1  
0
0
0
R/W  
R/W  
R/W  
Port 1 peripheral priority control. These bits shall determine the order of  
precedence in the case when PERCFGassigns USART1 and timer 3 to the  
same pins.  
0
1
USART1 has priority  
Timer 3 has priority  
Port 1 peripheral priority control. These bits shall determine the order of  
precedence in the case when PERCFG assigns timer 1 and timer 4 to the  
same pins.  
0
1
Timer 1 has priority  
Timer 4 has priority  
Port 1 peripheral priority control. These bits shall determine the order of  
precedence in the case when PERCFG assigns USART0 and timer 1 to the  
same pins.  
0
1
USART0 has priority  
Timer 1 has priority  
2
1
0
SELP2_4  
SELP2_3  
SELP2_0  
0
0
0
R/W  
R/W  
R/W  
P2_4 function select  
0
1
General purpose I/O  
Peripheral function  
P2_3 function select  
0
1
General purpose I/O  
Peripheral function  
P2_0 function select  
0
1
General purpose I/O  
Peripheral function  
P0DIR (0xFD) – Port 0 Direction  
Bit  
Name  
Reset  
R/W  
Description  
7:0  
DIRP0_[7:0]  
0x00  
R/W  
P0_7 to P0_0 I/O direction  
0
1
Input  
Output  
P1DIR (0xFE) – Port 1 Direction  
Bit  
Name  
Reset  
R/W  
Description  
7:0  
DIRP1_[7:0]  
0x00  
R/W  
P1_7 to P1_0 I/O direction  
0
1
Input  
Output  
SWRS055D  
Page 95 of 243  
 
 
 
C2510Fx / CC2511Fx  
P2DIR (0xFF) – Port 2 Direction  
Bit  
Name  
Reset  
R/W  
Description  
7:6  
PRIP0[1:0]  
00  
R/W  
Port 0 peripheral priority control. These bits shall determine the order of  
precedence in the case when PERCFG assigns two peripherals to the same  
pins  
00  
01  
10  
11  
USART0 – USART1  
USART1 – USART0  
Timer 1 channels 0 and 1 – USART1  
Timer 1 channel 2 – USART0  
5
-
R0  
Not used  
4:0  
DIRP2_[4:0]  
00000  
R/W  
P2_4 to P2_0 I/O direction  
0
1
Input  
Output  
P0INP (0x8F) – Port 0 Input Mode  
Bit  
Name  
Reset  
R/W  
Description  
7:0  
MDP0_[7:0]  
0x00  
R/W  
P0_7 to P0_0 I/O input mode  
0
1
Pull-up / pull-down  
Tristate  
P1INP (0xF6) – Port 1 Input Mode  
Bit  
Name  
Reset  
R/W  
Description  
7:2  
MDP1_[7:2]  
000000  
R/W  
P1_7 to P1_2 I/O input mode  
0
1
Pull-up / pull-down  
Tristate  
1:0  
-
R0  
Not used  
P2INP (0xF7) – Port 2 Input Mode  
Bit  
Name  
Reset  
R/W  
Description  
7
PDUP2  
0
R/W  
Port 2 pull-up/down select. Selects function for all Port 2 pins configured as  
pull-up/pull-down inputs.  
0
1
Pull-up  
Pull-down  
6
PDUP1  
0
R/W  
R/W  
R/W  
Port 1 pull-up/down select. Selects function for all Port 1 pins configured as  
pull-up/pull-down inputs.  
0
1
Pull-up  
Pull-down  
5
PDUP0  
0
Port 0 pull-up/down select. Selects function for all Port 0 pins configured as  
pull-up/pull-down inputs.  
0
1
Pull-up  
Pull-down  
4:0  
MDP2_[4:0]  
00000  
P2_4 to P2_0 I/O input mode  
0
1
Pull-up / pull-down  
Tristate  
SWRS055D  
Page 96 of 243  
 
 
 
 
C2510Fx / CC2511Fx  
P0IFG (0x89) – Port 0 Interrupt Status Flag  
CC2510Fx  
Bit  
Name  
Reset  
R/W  
Description  
Port 0, inputs 7 to 0 interrupt status flags.  
7:0  
P0IF[7:0]  
0x00  
R/W0  
0
1
No interrupt pending  
Interrupt pending  
CC2511Fx  
Bit  
7
Name  
Reset  
R/W  
Description  
USB_RESUME  
P0IF[5:0]  
0
0
0
R/W0  
R/W0  
R/W0  
USB resume detected during suspend mode  
Not used  
6
5:0  
Port 0, inputs 5 to 0 interrupt status flags.  
0
1
No interrupt pending  
Interrupt pending  
P1IFG (0x8A) – Port 1 Interrupt Status Flag  
Bit  
Name  
Reset  
R/W  
Description  
7:0  
P1IF[7:0]  
0x00  
R/W0  
Port 1, inputs 7 to 0 interrupt status flags.  
0
1
No interrupt pending  
Interrupt pending  
P2IFG (0x8B) – Port 2 Interrupt Status Flag  
Bit  
7:5  
4:0  
Name  
Reset  
R/W  
R0  
Description  
-
Not used  
P2IF[4:0]  
0
R/W0  
Port 2, inputs 4 to 0 interrupt status flags.  
0
1
No interrupt pending  
Interrupt pending  
SWRS055D  
Page 97 of 243  
 
 
 
C2510Fx / CC2511Fx  
PICTL (0x8C) – Port Interrupt Control  
Bit  
7
Name  
Reset  
R/W  
R0  
Description  
-
Not used  
6
PADSC  
0
R/W  
Drive strength control for I/O pins in output mode. Selects output drive  
capability to account for low I/O supply voltage on pin DVDD.  
0
1
Minimum drive capability. DVDD equal or greater than 2.6V  
Maximum drive capability. DVDD less than 2.6V  
5
4
3
2
P2IEN  
0
0
0
0
R/W  
R/W  
R/W  
R/W  
Port 2, inputs 4 to 0 interrupt enable.  
0
1
Interrupts are disabled  
Interrupts are enabled  
P0IENH  
P0IENL  
P2ICON  
Port 0, inputs 7 to 4 interrupt enable.  
0
1
Interrupts are disabled  
Interrupts are enabled  
Port 0, inputs 3 to 0 interrupt enable.  
0
1
Interrupts are disabled  
Interrupts are enabled  
Port 2, inputs 4 to 0 interrupt configuration. This bit selects the interrupt  
request condition for all port 2 inputs  
0
1
Rising edge on input gives interrupt  
Falling edge on input gives interrupt  
1
0
P1ICON  
P0ICON  
0
0
R/W  
R/W  
Port 1, inputs 7 to 0 interrupt configuration. This bit selects the interrupt  
request condition for all port 1 inputs  
0
1
Rising edge on input gives interrupt  
Falling edge on input gives interrupt  
Port 0, inputs 7 to 0 interrupt configuration. This bit selects the interrupt  
request condition for all port 0 inputs. For CC2511Fx , this bit must be set to 0  
when USB is used, since the internal USB resume interrupt mapped to P0[7]  
uses rising edge.  
0
1
Rising edge on input gives interrupt  
Falling edge on input gives interrupt  
P1IEN (0x8D) – Port 1 Interrupt Mask  
Bit  
Name  
Reset  
R/W  
Description  
7:0  
P1_[7:0]IEN  
0x00  
R/W  
Port P1_7 to P1_0 interrupt enable  
0
1
Interrupts are disabled  
Interrupts are enabled  
SWRS055D  
Page 98 of 243  
 
 
C2510Fx / CC2511Fx  
13.5 DMA Controller  
13.5.1 DMA Operation  
There are five DMA channels available in the  
The CC2510Fx/CC2511Fx includes  
a
direct  
memory access (DMA) controller, which can  
be used to relieve the 8051 CPU core of  
handling data movement operations. Because  
of this, the CC2510Fx/CC2511Fx can achieve high  
overall performance with good power  
efficiency. The DMA controller can move data  
from a peripheral unit such as the ADC or RF  
transceiver to memory with minimum CPU  
intervention.  
DMA controller numbered channel to  
0
channel 4. Each DMA channel can move data  
from one place within XDATA memory space  
to another i.e. between XDATA locations.  
Some CPU-specific SFRs reside inside the  
CPU core and can only be accessed using the  
SFR memory space and can therefore not be  
accessed using DMA. These registers are  
shown in gray in Table 30 on Page 44.  
The DMA controller coordinates all DMA  
transfers, ensuring that DMA requests are  
prioritized appropriately relative to each other  
and CPU memory access. The DMA controller  
contains 5 programmable DMA channels for  
data movement.  
Note: In the following sections, an n in the  
register name represent the channel  
number 0, 1, 2, 3, or 4 if nothing else is  
stated  
The DMA controller controls data movement  
over the entire XDATA memory space. Since  
most of the SFRs are mapped into the XDATA  
memory space these flexible DMA channels  
can be used to unburden the CPU in  
innovative ways, e.g. feed a USART and I2S  
with data from memory, periodically transfer  
samples between ADC and memory, transfer  
data to and from USB FIFOs (CC2511Fx) etc.  
Use of the DMA can also reduce system  
power consumption by keeping the CPU idle  
and not have it to wake up to move data to or  
from a peripheral unit (see Section 13.1.2).  
Note that Section 11.2.3.3 describes which  
SFRs are not mapped into XDATA memory  
space.  
In order to use a DMA channel it must first be  
configured as described in Sections 13.5.2  
and Section 13.5.3.  
Once a DMA channel has been configured it  
must be armed before any transfers are  
allowed to be initiated. A DMA channel is  
armed by setting the appropriate bit DMAARMn  
in the DMA Channel Arm register DMAARM.  
When a DMA channel is armed a transfer will  
begin when the configured DMA trigger event  
occurs. Note that it takes 9 system clocks from  
the arm bit is set until the new configuration is  
loaded. While the new configuration is being  
loaded, the DMA channel will be able to  
accept triggers. This will, however, not be the  
trigger stored in the configuration data that are  
currently loaded, but the trigger last used with  
this channel (after a reset this will be trigger  
number 0, manual trigger using the  
DMAREQ.DMAREQn bit). If n channels are  
armed at the same time, loading the  
configuration takes n x 9 clock cycles. Channel  
1 will first be ready, then channel 2, and finally  
channel 0. It can not be assumed that channel  
1 is ready after 9 clock cycles, channel 2 after  
18 clock cycles, etc. To avoid having the DMA  
channels starting transfers on unwanted  
The main features of the DMA controller are  
as follows:  
Five independent DMA channels  
Three configurable levels of DMA  
channel priority  
31 configurable transfer trigger events  
Independent control of source and  
destination address  
Single, block, and repeated transfer  
modes  
triggers when changing configuration,  
a
dummy configuration should be loaded in-  
between configuration changes, setting TRIG  
to 0. Alternatively, abort the currently armed  
DMA channel before rearming it. There are 31  
possible DMA trigger events, e.g. UART  
transfer, Timer overflow etc. The DMA trigger  
events are listed in Table 51.  
Supports variable transfer length by  
including the length field in the transfer  
data  
Can operate in either word-size or byte-  
size mode  
Figure 25 shows a DMA operation flow chart.  
SWRS055D  
Page 99 of 243  
 
 
C2510Fx / CC2511Fx  
Initialization  
Write DMA channel  
configuration  
Yes  
No  
Reconfigure?  
DMA Channel Idle  
Setting DMAARM.ABORT=1 will abort all  
channels where the DMAARMnbit is set  
simultaneously.  
No  
DMAARM.DMAARMn=1?  
I.e., setting DMAARM=0x85 will abort  
channel 1 and channel 3  
Yes  
Load DMA Channel  
configuration  
DMA Channel Armed  
No  
Trigger or  
DMAREQ.DMAREQn=1?  
Yes  
Transfer one byte or word  
when channel is granted  
access  
Modify source/destination  
address  
Yes  
Set interrupt flag.  
(IRCON.DMAIF=1  
DMAIRQ.DMAIFn=1if  
IRQMASK=1)  
Yes  
No  
Reached transfer  
count?  
Repetitive transfer  
mode?  
DMAARMn=0  
No  
Yes  
Repetitive transfer  
mode?  
No  
Figure 25: DMA Operation  
SWRS055D  
Page 100 of 243  
C2510Fx / CC2511Fx  
13.5.2 DMA Configuration Parameters  
Variable Length Transfers: When VLEN000  
and VLEN111, the DMA channel will use the  
first byte or word (for word, bits 12:0 are used)  
in source data as the transfer count, hence  
allowing variable length transfers. When using  
variable length transfer, various options  
regarding how to count number of bytes to  
transfer is given.  
Setup and control of the DMA operation is  
performed by the user software. This section  
describes the parameters which must be  
configured before a DMA channel can be  
used. Section 13.5.3 on Page 103 describes  
how the parameters are set up in software and  
passed to the DMA controller.  
Options are:  
The behavior of each of the five DMA  
channels is configured with the following  
parameters:  
1. Default: Transfer number of bytes/words  
commanded by first byte/word + 1  
(transfers length byte/word, and then as  
many bytes/words as dictated by length  
byte/word)  
13.5.2.1 Source Address (SRCADDR)  
The address of the location in XDATA memory  
space where the DMA channel shall start to  
read data for the transfer.  
2. Transfer  
number  
of  
bytes/words  
commanded by first byte/word (transfers  
length byte/word, and then as many  
bytes/words as dictated by length  
byte/word - 1)  
13.5.2.2 Destination Address (DESTADDR)  
3. Transfer  
number  
of  
bytes/words  
The address of the location in XDATA memory  
space where the DMA channel will write the  
data read from the source address. The user  
must ensure that the destination is writable.  
commanded by first byte/word + 2  
(transfers length byte/word, and then as  
many bytes/words as dictated by length  
byte/word + 1)  
4. Transfer  
number  
of  
bytes/words  
13.5.2.3 Transfer Count  
commanded by first byte/word + 3  
(transfers length byte/word, and then as  
many bytes/words as dictated by length  
byte/word + 2)  
The number of bytes/words needed to be  
transferred for the DMA transfer to be  
complete. When the transfer count is reached,  
the DMA controller rearms or disarms the  
DMA channel (depending on transfer mode)  
and alert the CPU by setting the  
DMAIRQ.DMAIFn bit to 1. If IRQMASK=1,  
IRCON.DMAIFwill also be set and an interrupt  
request is generated if IEN1.DMAIE=1. The  
transfer count can be of fixed or variable  
length depending on how the DMA channel is  
configured.  
In any case, the LEN setting is used as  
maximum transfer count. LEN should be set to  
the largest allowed transfer count (specified by  
the first byte or word) plus one.  
Note that the M8 bit is only used when byte  
size transfers are chosen.  
Figure 26 shows the different VLENoptions.  
Fixed Length Transfers: When VLEN=000or  
VLEN=111, the length is set by the LENsetting  
SWRS055D  
Page 101 of 243  
C2510Fx / CC2511Fx  
Byte/Word n+3  
Byte/Word n+2  
Byte/Word n+1  
Byte/Word n  
Byte/Word n+3  
Byte/Word n+2  
Byte/Word n+1  
Byte/Word n  
Byte/Word n+3  
Byte/Word n+3  
Byte/Word n+2  
Byte/Word n+1  
Byte/Word n  
Byte/Word n+2  
Byte/Word n+1  
Byte/Word n  
Byte/Word n-1  
Byte/Word n-2  
Byte/Word n-1  
Byte/Word n-2  
Byte/Word n-1  
Byte/Word n-2  
Byte/Word n-1  
Byte/Word n-2  
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Byte/Word 3  
Byte/Word 2  
Byte/Word 1  
Length = n  
Byte/Word 3  
Byte/Word 2  
Byte/Word 1  
Length = n  
Byte/Word 3  
Byte/Word 2  
Byte/Word 1  
Length = n  
Byte/Word 3  
Byte/Word 2  
Byte/Word 1  
Length = n  
VLEN = 001  
VLEN = 010  
VLEN = 011  
VLEN = 100  
If LEN n, LEN bytes/words are  
being transferred. The dotted line  
shows the case where LEN = n  
Figure 26: Variable Length (VLEN) Transfer Options  
which  
the  
CPU  
is  
notified  
13.5.2.4 Byte or Word Transfers (WORDSIZE)  
(DMAIRQ.DMAIFn=1) and the DMA channel is  
rearmed.  
Determines whether each DMA transfer  
should be 8-bit (byte) or 16-bit (word).  
13.5.2.6 Trigger Event (TRIG)  
13.5.2.5 DMA Transfer Mode (TMODE)  
All DMA transfers are initiated by so-called  
DMA trigger events, which either starts a DMA  
block transfer or a single DMA transfer (or  
repeated versions of these). Each DMA  
channel can be set up to sense on a single  
trigger. The TRIG field in the configuration  
determines which trigger the DMA channel is  
to use. In addition to the configured trigger, a  
DMA channel can always be triggered by  
setting its designated DMAREQ.DMAREQn flag.  
The DMA trigger sources are described in  
Table 51 on Page 105.  
The transfer mode determines how the DMA  
channel behaves when transferring data.  
There are four different transfer modes.  
Single. On a trigger a single DMA transfer  
occurs and the DMA channel awaits the next  
trigger. After completing the number of  
transfers specified by the transfer count, the  
CPU is notified (DMAIRQ.DMAIFn=1) and the  
DMA channel is disarmed.  
Block. On a trigger the number of DMA  
transfers specified by the transfer count is  
performed as quickly as possible, after which  
the CPU is notified (DMAIRQ.DMAIFn=1) and  
the DMA channel is disarmed.  
13.5.2.7 Source and Destination Increment  
(SRCINCand DESTINC)  
Repeated single. On a trigger a single DMA  
transfer occurs and the DMA channel awaits  
the next trigger. After completing the number  
of transfers specified by the transfer count, the  
CPU is notified (DMAIRQ.DMAIFn=1) and the  
DMA channel is rearmed.  
When the DMA channel is armed or rearmed,  
the source and destination addresses are  
transferred to internal address pointers. These  
pointers, and hence the source and  
destination addresses, can be controlled to  
increment, decrement, or not change between  
transfers in order to give good flexibility. The  
possibilities for address increment/decrement  
are:  
Repeated block. On a trigger the number of  
DMA transfers specified by the transfer count  
is performed as quickly as possible, after  
SWRS055D  
Page 102 of 243  
C2510Fx / CC2511Fx  
configured before a DMA channel can be  
armed and activated. The parameters are not  
configured directly through SFRs, but instead  
they are written in a special DMA configuration  
data structure in memory. Each DMA channel  
in use requires its own DMA configuration data  
structure. The DMA configuration data  
structure consists of eight bytes and is  
described in Table 52. A DMA configuration  
data structure may reside at any location in  
unified memory space decided upon by the  
user software, and the address location is  
passed to the DMA controller through a set of  
SFRs DMAxCFGH:DMAxCFGL (x is 0 or 1).  
Once a channel has been armed, the DMA  
controller will read the configuration data  
structure for that channel, given by the  
address in DMAxCFGH:DMAxCFGL.  
Increment by zero. The address pointer  
shall remain fixed after each transfer.  
Increment by one. The address pointer  
shall increment one count after each  
transfer.  
Increment by two. The address pointer  
shall increment two counts after each  
transfer.  
Decrement by one. The address pointer  
shall decrement one count after each  
transfer.  
13.5.2.8 Interrupt Mask (IRQMASK)  
The DMA transfer will upon completion set  
IRCON.DMAIF=1 if this bit is set to 1. An  
interrupt request is being generated if  
IEN1.DMAIE=1.  
It is important to note that the method for  
specifying the start address for the DMA  
configuration data structure differs between  
DMA channel 0 and DMA channels 1-4 as  
follows:  
13.5.2.9 Mode 8 Setting (M8)  
In variable length transfers (VLEN000 and  
VLEN111) this field determines whether to  
use seven or eight bits of the first byte in  
source data as the transfer length. This  
configuration is only applicable when doing  
byte transfers.  
DMA0CFGH:DMA0CFGLgives the start address  
for DMA channel  
structure.  
0
configuration data  
DMA1CFGH:DMA1CFGLgives the start address  
for DMA channel 1 configuration data structure  
followed by channel 2 - 4 configuration data  
structures.  
13.5.2.10 DMA Priority (PRIORITY)  
A DMA priority is associated with each DMA  
channel. The DMA priority is used to  
determine the winner in the case of multiple  
simultaneous internal memory requests, and  
whether the DMA memory access should have  
priority or not over a simultaneous CPU  
memory access. In case of an internal tie, a  
round-robin scheme is used to ensure access  
for all. There are three levels of DMA priority:  
This means that the DMA controller expects  
the DMA configuration data structures for DMA  
channels 1 - 4 to lie in a contiguous area in  
memory, starting at the address held in  
DMA1CFGH:DMA1CFGL and consisting of 32  
bytes.  
13.5.4  
Stopping DMA Transfers  
Ongoing DMA transfer or armed DMA  
channels will be aborted using the DMAARM  
register to disarm the DMA channel.  
High: Highest internal priority. DMA access  
will always prevail over CPU access.  
Normal: Second highest internal priority.  
Guarantees that DMA access prevails over  
CPU on at least every second try.  
One or more DMA channels are aborted by  
writing a 1 to DMAARM.ABORTregister bit, and  
at the same time select which DMA channels  
to abort by setting the corresponding,  
DMAARM.DMAARMn bits to 1. When setting  
DMAARM.ABORT to 1, the DMAARM.DMAARMn  
bits for non-aborted channels must be written  
as 0.  
Low: Lowest internal priority. DMA access will  
always defer to a CPU access.  
13.5.3  
DMA Configuration Setup  
The DMA channel parameters such as  
address mode, transfer mode and priority  
described in the previous section have to be  
An example of DMA channel arm and disarm  
is shown in Figure 27.  
MOV DMAARM, #0x03  
MOV DMAARM, #0x81  
; Arm DMA channel 0 and 1  
; Disarm DMA channel 0, channel 1 is still armed  
SWRS055D  
Page 103 of 243  
C2510Fx / CC2511Fx  
Figure 27: DMA Arm/Disarm Example  
13.5.5 DMA Interrupts  
generate an interrupt based on the stored  
interrupt flag.  
Each DMA channel can be configured to  
generate an interrupt to the CPU upon  
13.5.6 DMA Memory Access  
completion of  
a
DMA transfer. This is  
accomplished by setting the IRQMASK bit in  
the channel configuration to 1. When this bit is  
set to 1, IRCON.DMAIF=1 will be set to 1  
when a transfer is completed. An interrupt  
The DMA data transfer is affected by endian  
convention. This as the memory system use  
Big-Endian in XDATA memory, while Little-  
Endian is used in SFR memory. This must be  
accounted for in compilers.  
request  
is  
being  
generated  
if  
IEN1.DMAIE=1.The corresponding interrupt  
flag in the SFR will be set when the interrupt is  
generated.  
13.5.7 DMA USB Endianess (CC2511Fx)  
When a USB FIFO is accessed using word  
transfer, the endianess of the word  
read/written can be controlled by setting the  
Regardless of the IRQMASK bit in the channel  
configuration, DMAIRQ.DMAIFn will be set  
upon DMA channel complete. Thus software  
should always check (and clear) this register  
when rearming a channel with a changed  
IRQMASK setting. Failure to do so could  
ENDIAN.USBWLE  
and  
ENDIAN.USBRLE  
configuration bits in the ENDIAN register. See  
Section 13.16 for details.  
DMA Trigger  
Number  
DMA Trigger  
Name  
Functional  
Unit  
Description  
0
NONE  
DMA  
No trigger, setting DMAREQ.DMAREQx bit starts transfer  
DMA channel is triggered by completion of previous channel  
Timer 1, compare, channel 0  
1
PREV  
DMA  
2
T1_CH0  
T1_CH1  
T1_CH2  
Timer 1  
Timer 1  
Timer 1  
3
Timer 1, compare, channel 1  
4
Timer 1, compare, channel 2  
5
Not in use.  
6
T2_OVFL  
T3_CH0  
T3_CH1  
T4_CH0  
T4_CH1  
ST  
Timer 2  
Timer 3  
Timer 3  
Timer 4  
Timer 4  
Sleep Timer  
Timer 2, timer count reaches 0x00  
Timer 3, compare, channel 0  
7
8
Timer 3, compare, channel 1  
9
Timer 4, compare, channel 0  
10  
11  
12  
13  
14  
15  
16  
17  
18  
Timer 4, compare, channel 1  
Sleep Timer compare  
IOC_0  
IOC_1  
URX0  
IO Controller P0_1 input transition15  
IO Controller P1_3 input transition16  
USART0  
USART0  
USART1  
USART1  
USART0 RX complete  
USART0 TX complete  
USART1 RX complete  
USART1 TX complete  
Flash data write complete  
UTX0  
URX1  
UTX1  
FLASH  
Flash  
Controller  
19  
20  
21  
RADIO  
Radio  
ADC  
ADC  
RF packet byte received/transmit  
ADC_CHALL  
ADC_CH0  
ADC end of a conversion in a sequence, sample ready  
ADC end of conversion (AIN0, single-ended or AIN0 – AIN1, differential).  
Sample ready  
22  
ADC_CH1  
ADC  
ADC end of conversion (AIN1, single-ended or AIN0 – AIN1, differential).  
Sample ready  
SWRS055D  
Page 104 of 243  
 
 
C2510Fx / CC2511Fx  
DMA Trigger  
Number  
DMA Trigger  
Name  
Functional  
Unit  
Description  
23  
24  
25  
26  
ADC_CH2  
ADC_CH3  
ADC_CH4  
ADC_CH5  
ADC_CH6  
ADC  
ADC  
ADC  
ADC  
ADC  
ADC end of conversion (AIN2, single-ended or AIN2 – AIN3, differential).  
Sample ready  
ADC end of conversion (AIN3, single-ended or AIN2 – AIN3, differential).  
Sample ready  
ADC end of conversion (AIN4, single-ended or AIN4 – AIN5, differential).  
Sample ready  
ADC end of conversion (AIN5, single-ended or AIN4 – AIN5, differential).  
Sample ready  
ADC end of conversion (AIN6, single-ended or AIN6 – AIN7, differential).  
Sample ready  
27  
28  
I2SRX  
I2S  
I2S RX complete  
ADC_CH7  
ADC  
ADC end of conversion (AIN7, single-ended or AIN6 – AIN7, differential).  
Sample ready  
I2STX  
I2S  
I2S TX complete  
29  
30  
ENC_DW  
ENC_UP  
AES  
AES  
AES encryption processor requests download input data  
AES encryption processor requests upload output data  
Table 51: DMA Trigger Sources  
Byte  
Bit  
Field Name  
Description  
Offset  
0
1
2
7:0  
7:0  
7:0  
SRCADDR[15:8]  
SRCADDR[7:0]  
DESTADDR[15:8]  
The DMA channel source address, high byte  
The DMA channel source address, low byte  
The DMA channel destination address, high byte.  
Note that flash memory is not directly writeable.  
The DMA channel destination address, low byte.  
Note that flash memory is not directly writeable.  
3
7:0  
DESTADDR[7:0]  
SWRS055D  
Page 105 of 243  
 
C2510Fx / CC2511Fx  
Byte  
Bit  
Field Name  
Description  
Offset  
4
7:5  
VLEN[2:0]  
Variable length transfer mode. In word mode, bits 12:0 of the first word is considered  
as the transfer length.  
000  
001  
Use LENfor transfer count  
Transfer number of bytes/words commanded by first byte/word + 1  
(transfers length byte/word, and then as many bytes/words as dictated by  
length byte/word up to a maximum specified by LEN).  
010  
011  
100  
Transfer number of bytes/words commanded by first byte/word (transfers  
length byte/word, and then as many bytes/words as dictated by length  
byte/word – 1 up to a maximum specified by LEN).)  
Transfer number of bytes/words commanded by first byte/word + 2  
(transfers length byte/word, and then as many bytes/words as dictated by  
length byte/word + 1 up to a maximum specified by LEN)  
Transfer number of bytes/words commanded by first byte/word + 3  
(transfers length byte/word, and then as many bytes/words as dictated by  
length byte/word + 2 up to a maximum specified by LEN)  
101  
110  
111  
Reserved  
Reserved  
Alternative for using LENas transfer count  
4
5
4:0  
7:0  
LEN[12:8]  
LEN[7:0]  
The DMA channel transfer count.  
This value is used as transfer count when VLEN=000or VLEN=111(fixed length  
transfers) and as maximum allowable length when VLEN000and VLEN111  
(variable length transfers). The DMA channel counts in words when in WORDSIZE  
mode, and otherwise in bytes.  
The DMA channel transfer count.  
This value is used as transfer count when VLEN=000or VLEN=111(fixed length  
transfers) and as maximum allowable length when VLEN000and VLEN111  
(variable length transfers). The DMA channel counts in words when in WORDSIZE  
mode, and otherwise in bytes.  
6
6
7
WORDSIZE  
TMODE[1:0]  
Selects whether each DMA transfer shall be 8-bit (0) or 16-bit (1).  
The DMA channel transfer mode:  
6:5  
00  
01  
10  
11  
Single  
Block  
Repeated single  
Repeated block  
6
4:0  
TRIG[4:0]  
Select DMA trigger  
00000  
00001  
00010  
-
No trigger (writing to DMAREQ is only trigger)  
The previous DMA channel finished  
Selects one of the triggers shown in Table 51. The trigger is selected in the  
order shown in the table.  
11111  
7
7:6  
SRCINC[1:0]  
Source address increment mode (after each transfer)  
00  
01  
10  
11  
0 bytes/words  
1 bytes/words  
2 bytes/words  
-1 bytes/words  
SWRS055D  
Page 106 of 243  
C2510Fx / CC2511Fx  
Byte  
Bit  
Field Name  
Description  
Offset  
7
5:4  
DESTINC[1:0]  
Destination address increment mode (after each transfer)  
00  
01  
10  
11  
0 bytes/words  
1 bytes/words  
2 bytes/words  
-1 bytes/words  
7
7
3
2
IRQMASK  
M8  
Interrupt Mask for this channel.  
0
1
Disable interrupt generation  
Enable interrupt generation upon DMA channel done  
Mode of 8th bit in transfer count for variable length transfers (VLEN000and  
VLEN111). Only applicable when WORDSIZE=0.  
0
1
Use all 8 bits for transfer count  
Use 7 LSB for transfer count  
7
1:0  
PRIORITY[1:0]  
The DMA channel priority:  
00  
01  
Low, DMA access will always defer to a CPU access  
Normal, guarantees that DMA access prevails over CPU on at least every  
second try.  
10  
11  
High, DMA access will always prevail over CPU access.  
Reserved  
Table 52: DMA Configuration Data Structure  
SWRS055D  
Page 107 of 243  
C2510Fx / CC2511Fx  
13.5.8 DMA Registers  
This section describes the SFRs associated with the DMA Controller.  
DMAARM (0xD6) – DMA Channel Arm  
Bit  
Name  
Reset  
R/W  
Description  
7
ABORT  
0
R0/W  
DMA abort. Ongoing DMA transfer or armed DMA channels  
will be aborted when writing a 1 to this bit, and at the same  
time select which DMA channels to abort by setting the  
corresponding, DMAARM.DMAARMnbits to 1  
0
1
Normal operation  
Abort channels all selected channels  
6:5  
4
-
R0  
Not used  
DMAARM4  
DMAARM3  
DMAARM2  
DMAARM1  
DMAARM0  
0
R/W  
DMA arm channel 4  
This bit must be set to 1 in order for any DMA transfers to  
occur on the channel. For non-repetitive transfer modes, the  
bit is automatically cleared when the transfer count is reached  
3
2
1
0
0
0
0
0
R/W  
R/W  
R/W  
R/W  
DMA arm channel 3  
This bit must be set to 1 in order for any DMA transfers to  
occur on the channel. For non-repetitive transfer modes, the  
bit is automatically cleared when the transfer count is reached  
DMA arm channel 2  
This bit must be set to 1 in order for any DMA transfers to  
occur on the channel. For non-repetitive transfer modes, the  
bit is automatically cleared when the transfer count is reached  
DMA arm channel 1  
This bit must be set to 1 in order for any DMA transfers to  
occur on the channel. For non-repetitive transfer modes, the  
bit is automatically cleared when the transfer count is reached  
DMA arm channel 0  
This bit must be set to 1 in order for any DMA transfers to  
occur on the channel. For non-repetitive transfer modes, the  
bit is automatically cleared when the transfer count is reached  
SWRS055D  
Page 108 of 243  
 
C2510Fx / CC2511Fx  
DMAREQ (0xD7) – DMA Channel Start Request and Status  
Bit  
7:5  
4
Name  
Reset  
R/W  
R0  
Description  
-
Not used  
DMA transfer request, channel 4 (manual trigger)  
DMAREQ4  
0
R/W1  
H0  
Setting this bit to 1 will have the same effect as a single trigger  
event.  
This bit is cleared when the DMA channel is granted access.  
DMA transfer request, channel 3 (manual trigger)  
3
2
1
0
DMAREQ3  
DMAREQ2  
DMAREQ1  
DMAREQ0  
0
0
0
0
R/W1  
H0  
Setting this bit to 1 will have the same effect as a single trigger  
event.  
This bit is cleared when the DMA channel is granted access.  
DMA transfer request, channel 2 (manual trigger)  
R/W1  
H0  
Setting this bit to 1 will have the same effect as a single trigger  
event.  
This bit is cleared when the DMA channel is granted access.  
DMA transfer request, channel 1 (manual trigger)  
R/W1  
H0  
Setting this bit to 1 will have the same effect as a single trigger  
event.  
This bit is cleared when the DMA channel is granted access.  
DMA transfer request, channel 0 (manual trigger)  
R/W1  
H0  
Setting this bit to 1 will have the same effect as a single trigger  
event.  
This bit is cleared when the DMA channel is granted access.  
DMA0CFGH (0xD5) – DMA Channel 0 Configuration Address High Byte  
Bit  
Name  
Reset  
R/W  
Description  
7:0  
DMA0CFG[15:8]  
0x00  
R/W  
The DMA channel 0 configuration address, high byte  
DMA0CFGL (0xD4) – DMA Channel 0 Configuration Address Low Byte  
Bit  
Name  
Reset  
R/W  
Description  
7:0  
DMA0CFG[7:0]  
0x00  
R/W  
The DMA channel 0 configuration address, low byte  
DMA1CFGH (0xD3) – DMA Channel 1-4 Configuration Address High Byte  
Bit  
Name  
Reset  
R/W  
Description  
7:0  
DMA1CFG[15:8]  
0x00  
R/W  
The DMA channel 1 - 4 configuration address, high byte  
DMA1CFGL (0xD2) – DMA Channel 1-4 Configuration Address Low Byte  
Bit  
Name  
Reset  
R/W  
Description  
7:0  
DMA1CFG[7:0]  
0x00  
R/W  
The DMA channel 1 - 4 configuration address, low byte  
SWRS055D  
Page 109 of 243  
 
 
 
 
 
C2510Fx / CC2511Fx  
DMAIRQ (0xD1) – DMA Interrupt Flag  
Bit  
7:5  
4
Name  
Reset  
R/W  
R0  
Description  
-
Not used  
DMAIF4  
0
R/W0  
DMA channel 4 interrupt flag.  
0
1
DMA channel transfer not complete  
DMA channel transfer complete/interrupt pending  
3
2
1
0
DMAIF3  
DMAIF2  
DMAIF1  
DMAIF0  
0
0
0
0
R/W0  
R/W0  
R/W0  
R/W0  
DMA channel 3 interrupt flag.  
0
1
DMA channel transfer not complete  
DMA channel transfer complete/interrupt pending  
DMA channel 2 interrupt flag.  
0
1
DMA channel transfer not complete  
DMA channel transfer complete/interrupt pending  
DMA channel 1 interrupt flag.  
0
1
DMA channel transfer not complete  
DMA channel transfer complete/interrupt pending  
DMA channel 0 interrupt flag.  
0
1
DMA channel transfer not complete  
DMA channel transfer complete/interrupt pending  
ENDIAN (0x95) – USB Endianess Control (CC2511Fx)  
Bit  
7:2  
1
Name  
Reset  
R/W  
R/W  
R/W  
Description  
0
0
Not used  
USBWLE  
USB Write Endianess setting for DMA channel word transfers to USB.  
0
1
Big Endian  
Little Endian  
0
USBRLE  
0
R/W  
USB Read Endianess setting for DMA channel word transfers from USB.  
0
1
Big Endian  
Little Endian  
SWRS055D  
Page 110 of 243  
 
 
C2510Fx / CC2511Fx  
13.6 16-bit Timer, Timer 1  
Timer 1 is an independent 16-bit timer which  
supports typical timer/counter functions such  
as input capture, output compare, and PWM  
functions. The timer has three independent  
capture/compare channels and uses one I/O  
pin per channel.  
CC2511Fx. When the high speed RC oscillator is  
used as system clock source, the highest  
clock frequency used by Timer 1 is fXOSC/2 for  
CC2510Fx and 12 MHz for CC2511Fx, given that  
the HS RCOSC has been calibrated.  
The counter operates as either a free-running  
counter, a modulo counter, or as an up/down  
counter for use in centre-aligned PWM. It can  
also be used in DSM mode.  
The features of Timer 1 are as follows:  
Three capture/compare channels  
Rising, falling, or any edge input capture  
Set, clear, or toggle output compare  
It is possible to read the 16-bit counter value  
through the two 8-bit SFRs; T1CNTH and  
T1CNTL, containing the high-order byte and  
low-order byte respectively. When the T1CNTL  
register is read, the high-order byte of the  
counter at that instant is buffered in T1CNTH  
so that the high-order byte can be read from  
T1CNTH . Thus T1CNTL shall always be read  
first before reading T1CNTH.  
Free-running, modulo or up/down  
counter operation  
Clock prescaler for divide by 1, 8, 32, or  
128  
Interrupt  
request  
generation  
on  
capture/compare and when reaching the  
terminal count value  
All write accesses to the T1CNTL register will  
reset the 16-bit counter.  
Capture triggered by radio  
DMA trigger function  
The counter may produce an interrupt request  
when the terminal count value (overflow) is  
reached (see Section 13.6.2.1 - 13.6.2.3). It is  
possible to start and halt the counter with  
T1CTLcontrol register settings. The counter is  
started when a value other than 00 is written to  
T1CTL.MODE. If 00 is written to T1CTL.MODE  
the counter halts at its present value.  
Delta-Sigma Modulator (DSM) mode  
Note: In the following sections, an n in the  
register name represent the channel  
number 0, 1, or 2 if nothing else is stated  
13.6.2 Timer 1 Operation  
13.6.1 16-bit Timer Counter  
In general, the control register T1CTL is used  
to control the timer operation. The various  
modes of operation are described in the  
following three sections.  
The timer consists of a 16-bit counter that  
increments or decrements at each active clock  
edge. The frequency of the active clock edges  
is  
given  
by  
CLKCON.TICKSPD  
and  
T1CTL.DIV. CLKCON.TICKSPDis used to set  
the timer tick speed. The timer tick speed will  
vary from 203.125 kHz to 26 MHz for CC2510Fx  
and 187.5 kHz to 24 MHz for CC2511Fx (given  
the use of a 26 MHz or 48 MHz crystal  
respectively). Note that the clock speed of the  
system clock is not affected by the TICKSPD  
setting. The timer tick speed is further divided  
in Timer 1 by the prescaler value set by  
T1CTL.DIV.This prescaler value can be 1, 8,  
32, or 128. Thus the lowest clock frequency  
used by Timer 1 is 1.587 kHz and the highest  
is 26 MHz when a 26 MHz crystal oscillator is  
used as system clock source (CC2510Fx). The  
lowest clock frequency used by Timer 1 is  
1.465 kHz and the highest is 24 MHz for  
13.6.2.1 Free-running Mode  
In free-running mode the counter starts from  
0x0000 and increments at each active clock  
edge. When the counter reaches the terminal  
count value 0xFFFF (overflow), the counter is  
loaded  
with  
0x0000  
and  
continues  
incrementing its value as shown in Figure 28.  
When 0xFFFF is reached, the T1CTL.OVFIF  
flag is set. The IRCON.T1IF flag is only  
asserted if the corresponding interrupt mask  
bit TIMIF.OVFIM is set. An interrupt request  
is generated when both TIMIF.OVFIM and  
IEN1.T1EN are set to 1. The free-running  
mode can be used to generate independent  
time intervals and output signal frequencies.  
SWRS055D  
Page 111 of 243  
 
C2510Fx / CC2511Fx  
0xFFFF  
0x0000  
OVFIF = 1  
OVFIF = 1  
Figure 28: Free-running Mode  
13.6.2.2 Modulo Mode  
When T1CC0 is reached, the T1CTL.OVFIF  
flag is set. The IRCON.T1IF flag is only  
asserted if the corresponding interrupt mask  
bit TIMIF.OVFIM is set. An interrupt request  
is generated when both TIMIF.OVFIM and  
IEN1.T1EN are set to 1. The modulo mode  
can be used for applications where a period  
other than 0xFFFF is required.  
In modulo mode the counter starts from  
0x0000 and increments at each active clock  
edge. When the counter value matches the  
terminal count value T1CC0(overflow), held in  
the registers T1CC0H:T1CC0L, the counter is  
loaded  
with  
0x0000  
and  
continues  
incrementing its value as shown in Figure 29.  
T1CC0  
0x0000  
OVFIF = 1  
OVFIF = 1  
Figure 29: Modulo Mode  
flag is set. The IRCON.T1IF flag is only  
13.6.2.3 Up/Down Mode  
asserted if the corresponding interrupt mask  
bit TIMIF.OVFIM is set. An interrupt request  
is generated when both TIMIF.OVFIM and  
IEN1.T1EN are set to 1. The up/down mode  
can be used when symmetrical output pulses  
are required with a period other than 0xFFFF,  
and therefore allows implementation of centre-  
aligned PWM output applications.  
In up/down mode the counter starts from  
0x0000 and increments at each active clock  
edge. When the counter value matches the  
terminal count value T1CC0, held in the  
registers T1CC0H:T1CC0L, the counter counts  
down until 0x0000 is reached and it starts  
counting up again as shown in Figure 30.  
When 0x0000 is reached, the T1CTL.OVFIF  
T1CC0  
0x0000  
OVFIF = 1  
OVFIF = 1  
Figure 30: Up/Down Mode  
13.6.3 Channel Mode Control  
settings include input capture and output  
compare modes.  
The channel mode is set with each channel’s  
control and status register T1CCTLn. The  
SWRS055D  
Page 112 of 243  
 
 
C2510Fx / CC2511Fx  
channel compare register T1CCnH:T1CCnL. If  
the compare register equals the counter  
contents, the output pin is set, reset, or toggled  
according to the compare output mode setting  
of T1CCTLn.CMP. Note that all edges on  
output pins are glitch-free when operating in a  
given output compare mode. Writing to the  
compare register T1CCnL is buffered so that a  
value written to T1CCnL does not take effect  
until the corresponding high order register,  
T1CCnHis written. For output compare modes  
0 - 2, a new value written to the compare  
register T1CCnH:T1CCnL takes effect after  
the registers have been written. For other  
output compare modes the new value written  
to the compare register takes effect when the  
timer reaches 0x0000.  
Note: Before an I/O pin can be used by the  
timer, the required I/O pin must be configured  
as a Timer 1 peripheral pin as described in  
Section 13.4.6 on Page 89 .  
13.6.4 Input Capture Mode  
When a channel is configured as an input  
capture channel, the I/O pin associated with  
that channel, is configured as an input. After  
the timer has been started, a rising edge,  
falling edge or any edge on the input pin will  
trigger a capture of the 16-bit counter contents  
into the associated capture register. Thus the  
timer is able to capture the time when an  
external event takes place.  
The channel input pin is synchronized to the  
internal system clock. Thus pulses on the input  
pin must have a minimum duration greater  
than the system clock period.  
Note that channel 0 has fewer output compare  
modes than channel 1 and  
2 because  
T1CC0H:T1CC0L has a special function in  
modes 6 and 7, meaning these modes would  
not be useful for channel 0.  
The contents of the 16-bit capture register can  
be read from registers T1CCnH:T1CCnL.  
When a compare occurs, the interrupt flag for  
the appropriate channel (T1CTL.CH0IF,  
T1CTL.CH1IF, or T1CTL.CH2IF for channel  
0, 1, and 2 respectively) is asserted. The  
IRCON.T1IF flag is only asserted if the  
corresponding interrupt mask bit T1CCTL0.IM,  
T1CCTL1.IM, or T1CCTL2.IM is set to 1. An  
interrupt request is generated if the  
corresponding interrupt mask bit is set together  
with IEN1.T1EN. When operating in up-down  
mode, the interrupt flag for channel 0 is set  
when the counter reaches 0x0000 instead of  
when a compare occurs.  
When the capture takes place, the interrupt  
flag  
for  
the  
appropriate  
T1CTL.CH1IF,  
channel  
or  
(T1CTL.CH0IF,  
T1CTL.CH2IF for channel 0, 1, and 2  
respectively) is asserted. The IRCON.T1IF  
flag is only asserted if the corresponding  
interrupt mask bit T1CCTL0.IM, T1CCTL1.IM,  
or T1CCTL2.IM is set to 1. An interrupt  
request is generated if the corresponding  
interrupt mask bit is set together with  
IEN1.T1EN.  
13.6.4.1 RF Event Capture  
Examples of output compare modes in various  
timer modes are given in Figure 31, Figure 32,  
and Figure 33.  
Each timer channel may be configured so that  
the RF events associated with the RF interrupt  
(interrupt #16) will trigger a capture instead of  
the normal input pin capture. This is done by  
setting T1CCTLn.CPSEL=1. When this  
configuration is chosen, the RF event(s)  
enabled by RFIM (see Section 14.3.1 on Page  
189) will trigger a capture. This way the timer  
can be used to capture a value when e.g. a  
start of frame delimiter (SFD) is detected.  
Edge-aligned: PWM output signals can be  
generated using the timer modulo mode and  
channels 1 and 2 in output compare mode 5 or  
6 (defined by T1CCTLn.CMPbits, where nis 1  
or 2) as shown in Figure 32. The period of the  
PWM signal is determined by the setting in  
T1CC0 and the duty cycle is determined by  
T1CCn.  
Note: When using an RF event to trigger a  
capture, both CLKCON.CLKSPDand  
CLKCON.TICKSPDmust be set to 000.  
PWM output signals can also be generated  
using the timer free-running mode and  
channels 1 and 2 in output compare mode 5 or  
6 as shown in Figure 31. In this case the  
period of the PWM signal is determined by  
CLKCON.TICKSPD and the prescaler divider  
value in T1CTL.DIV and the duty cycle is  
determined by T1CCn(n= 1 or 2).  
13.6.5 Output Compare Mode  
In output compare mode the I/O pin associated  
with a channel is set as an output. After the  
timer has been started, the contents of the  
counter are compared with the contents of the  
SWRS055D  
Page 113 of 243  
C2510Fx / CC2511Fx  
The polarity of the PWM signal is determined  
by whether output compare mode 5 or 6 is  
used.  
Centre-aligned: PWM outputs can be  
generated when the timer up/down mode is  
selected. The channel output compare mode 3  
or 4 (defined by T1CCTLn.CMPbits, where nis  
1 or 2) is selected depending on required  
polarity of the PWM signal (see Figure 33).  
The period of the PWM signal is determined by  
T1CC0 and the duty cycle for the channel  
output is determined by T1CCn(n= 1 or 2).  
For both modulo mode and free-running mode  
it is also possible to use compare mode 3 or 4  
to generate a PWM output signal (see Figure  
31 and Figure 32).  
The polarity of the PWM signal is determined  
by whether output compare mode 3 or 4 is  
used.  
0xFFFF  
T1CC0  
T1CCn  
0x0000  
0: Set output on compare  
1: Clear output on compare  
2: Toggle output on compare  
3: Set output on compare-up,  
clear on 0  
4: Clear output on compare-up,  
set on 0  
5: Set when T1CCn,  
clear when T1CC0  
6: Clear when T1CCn,  
set when T1CC0  
T1CCn  
T1CC0  
T1CCn  
T1CC0  
Figure 31: Output Compare Modes, Timer Free-running Mode  
SWRS055D  
Page 114 of 243  
 
C2510Fx / CC2511Fx  
T1CC0  
T1CCn  
0x0000  
0: Set output on compare  
1: Clear output on compare  
2: Toggle output on compare  
3: Set output on compare-up,  
clear on 0  
4: Clear output on compare-up,  
set on 0  
5: Set when T1CCn,  
clear when T1CC0  
6: Clear when T1CCn,  
set when T1CC0  
T1CCn  
T1CC0  
T1CCn  
T1CC0  
Figure 32: Output Compare Modes, Timer Modulo Mode  
SWRS055D  
Page 115 of 243  
C2510Fx / CC2511Fx  
T1CC0  
T1CCn  
0x0000  
0: Set output on compare  
1: Clear output on compare  
2: Toggle output on compare  
3: Set output on compare-up,  
clear on compare down  
4: Clear output on compare-up,  
set on compare-down  
5: Set when T1CCn,  
clear when T1CC0  
6: Clear when T1CCn,  
set when T1CC0  
T1CCn  
T1CC0  
T1CCn  
T1CCn  
T1CC0  
T1CCn  
Figure 33: Output Modes, Timer Up/Down Mode  
13.6.6 Timer 1 Interrupts  
There is one interrupt vector assigned to the  
timer. This is T1 (Interrupt #9, see Table  
39). The following timer events may generate  
an interrupt request:  
Output compare event  
The register bits  
T1CTL.CH0IF, T1CTL.CH1IF,  
T1CTL.CH2IF contains the interrupt flags for  
the terminal count value event (overflow), and  
the three channel compare/capture events,  
respectively. These flags will be asserted  
regardless off the channel n interrupt mask bit  
(T1CCTLn.IM). The CPU interrupt flag,  
T1CTL.OVFIF,  
and  
Counter reaches terminal count value  
(overflow) or turns around on zero  
Input capture event  
SWRS055D  
Page 116 of 243  
C2510Fx / CC2511Fx  
13.6.8 DSM Mode  
IRCON.T1IF will only be asserted if one or  
more of the channel n interrupt mask bits are  
set to 1. An interrupt request is only generated  
when the corresponding interrupt mask bit is  
set together with IEN1.T1EN. The interrupt  
mask bits are T1CCTL0.IM, T1CCTL1.IM,  
T1CCTL2.IM, and TIMIF.OVFIM. Note that  
enabling an interrupt mask bit will generate a  
new interrupt request if the corresponding  
interrupt flag is set.  
Timer 1 also contains a 1-bit Delta-Sigma  
Modulator (DSM) of second order that can be  
used to produce a mono audio output PWM  
signal. The DSM removes the need for high  
order external filtering required when using  
regular PWM mode.  
The DSM operates at a fixed speed of either  
1/4 or 1/8 of the timer tick speed set by  
CLKCON.TICKSPD. The DSM speed is set by  
T1CCTL1.MODE. The input samples are  
updated at a configurable sampling rate set by  
the terminal count value T1CC0.  
When the timer is used in Free-running Mode  
or Modulo Mode the interrupt flags are set as  
follows:  
T1CTL.CH0IF, T1CTL.CH1IF, and  
T1CTL.CH2IF are set on  
compare/capture event  
An interpolator is used to match the sampling  
rate with the DSM update rate. This  
interpolator is of first order with a scaling  
compensation. The scaling compensation is  
due to variable gain defined by the difference  
in sampling speed and DSM speed. This  
interpolation mechanism can be disabled by  
T1CTL.OVFIF is set when counter  
reaches terminal count value (overflow)  
When the timer is used in Up/Down Mode the  
interrupt flags are set as follows:  
setting  
T1CCTL1.CAP=10  
or  
T1CCTL1.CAP=11, thus using a zeroth order  
interpolator.  
In compare mode:  
T1CTL.CH0IF  
are set when counter turns around on  
zero  
and  
T1CTL.OVFIF  
In addition to the interpolator, a shaper can be  
used to account for differences in rise/fall times  
in the output signal. Also the shaper is  
enabled/disabled using the two CAP bits in the  
T1CCTL1 register. This shaper ensures a  
rising and a falling edge per bit and will thus  
limit the output swing to 1/8 to 7/8 of I/O VDD  
when the DSM operates at 1/8 of the timer tick  
speed or 1/4 to 3/4 of I/O VDD when the DSM  
operates at 1/4 of the timer tick speed.  
T1CTL.CH1IF  
are set on compare event  
and  
T1CTL.CH2IF  
In capture mode:  
T1CTL.OVFIF is set when counter  
turns around on zero  
T1CTL.CH0IF, T1CTL.CH1IF, and  
T1CTL.CH2IF are set on capture event  
The DSM is used as in PWM mode where the  
terminal count value T1CC0 defines the  
period/sampling rate. The DSM can not use  
the Timer 1 prescaler to further slow down the  
period.  
I addition, the CPU interrupt flag, IRCON.T1IF  
will be asserted if the channel n interrupt mask  
bit (T1CCTLn.IM) is set to 1.  
Timer 1 must be configured to operate in  
modulo mode (T1CTL.MODE=10) and channel  
0 must be configured to compare mode  
13.6.7 Timer 1 DMA Triggers  
There are three DMA triggers associated with  
Timer 1, one for each channel. These are DMA  
triggers T1_CH0, T1_CH1 and T1_CH2, which  
are generated on timer compare events as  
follows:  
(T1CCTL0.MODE=1).  
The terminal count  
value T1CC0, held in the registers  
T1CC0H:T1CC0L, defines the sample rate.  
Table 53 shows some T1CC0 settings for  
different  
sample  
rates  
T1_CH0 - Channel 0 compare  
T1_CH1 - Channel 0 compare  
T1_CH2 - Channel 0 compare  
(CLKCON.TICKSPD=000).  
SWRS055D  
Page 117 of 243  
C2510Fx / CC2511Fx  
Sample Rate  
T1CC0H T1CC0L  
8 kHz @ 24 MHz  
8 kHz @ 26 MHz  
0x0B  
0x0C  
0xB7  
0xB1  
0xDB  
0x59  
0xF3  
0x1D  
0x76  
0x96  
16 kHz @ 24 MHz 0x05  
16 kHz @ 26 MHz 0x06  
48 kHz @ 24 MHz 0x01  
48 kHz @ 26 MHz 0x02  
64 kHz @ 24 MHz 0x01  
64 kHz @ 26 MHz 0x01  
Table 53: Channel 0 Period Setting for some Sampling Rates (CLKCON.TICKSPD=000)  
Since the DSM starts immediately after DSM  
mode has been enabled by setting  
T1CCTL1.CMP=111, all configuration should  
have been performed prior to enabling DSM  
mode. Also, the Timer 1 counter should be  
cleared and started just before starting the  
DSM operation (all write accesses to the  
T1CNTL register will reset the 16-bit counter  
while writing a value other than 00 to  
T1CTL.MODE will start the counter). A simple  
procedure for setting up DSM mode should  
then be as follows:  
On each Timer 1 IRQ or Timer 1 DMA trigger,  
write a new sample to the T1CC1H:T1CC1L  
registers. The least significant bits must be  
written to T1CC1L before the most significant  
bits are written to T1CC1H.  
The samples written must be signed 2’s  
complement values. The 2 least significant bits  
will always be treated as 0, thus the effective  
sample size is 14 bits.  
13.6.9 Timer 1 Registers  
1. Suspend timer 1 (T1CTL.MODE=00)  
This section describes the following Timer 1  
registers:  
2. Clear timer counter by writing any  
value to T1CNTL, (CNT=0x0000)  
T1CNTH– Timer 1 Counter High  
T1CNTL– Timer 1 Counter Low  
T1CTL– Timer 1 Control and Status  
3. Set the sample rate by writing to  
T1CC0.  
4. Set Timer 1 channel 0 compare mode  
T1CCTLn  
Timer  
1
Channel  
n
n
n
(T1CCTL0.MODE=1)  
Capture/Compare Control  
5. Load first sample if available (or zero if  
T1CCnH  
Capture/Compare Value High  
Timer  
1
Channel  
no  
sample  
available)  
into  
T1CC1H:T1CC1L.  
6. Set timer operation to modulo mode  
T1CCnL Timer Channel  
1
(T1CTL.MODE=10)  
Capture/Compare Value Low  
7. Configure the DSM by setting the  
MODE and CAP fields of the T1CCTL1  
register.  
The TIMIF register is described in Section  
13.9.7.  
8. Enable  
DSM  
mode  
(T1CCTL1.CMP=111)  
SWRS055D  
Page 118 of 243  
C2510Fx / CC2511Fx  
T1CNTH (0xE3) – Timer 1 Counter High  
Bit  
Name  
Reset  
R/W  
Description  
7:0  
CNT[15:8]  
0x00  
R
Timer count high order byte. Contains the high byte of the 16-bit timer  
counter buffered at the time T1CNTLis read.  
T1CNTL (0xE2) – Timer 1 Counter Low  
Bit  
Name  
Reset  
R/W  
Description  
7:0  
CNT[7:0]  
0x00  
R/W  
Timer count low order byte. Contains the low byte of the 16-bit timer counter.  
Writing anything to this register results in the counter being cleared to  
0x0000.  
T1CTL (0xE4) – Timer 1 Control and Status  
Bit  
Name  
Reset  
R/W  
Description  
7
CH2IF  
0
R/W0  
Timer 1 channel 2 interrupt flag  
0
1
No interrupt pending  
Interrupt pending  
6
5
4
CH1IF  
CH0IF  
OVFIF  
0
0
0
R/W0  
R/W0  
R/W0  
Timer 1 channel 1 interrupt flag  
0
1
No interrupt pending  
Interrupt pending  
Timer 1 channel 0 interrupt flag  
0
1
No interrupt pending  
Interrupt pending  
Timer 1 counter overflow interrupt flag. Set when the counter reaches the  
terminal count value in free-running or modulo mode or when counter turns  
around on zero in up/down mode  
0
1
No interrupt pending  
Interrupt pending  
3:2  
DIV[1:0]  
00  
R/W  
Prescaler divider value. Generates the active clock edge used to update the  
counter as follows:  
00  
01  
10  
11  
Tick frequency/1  
Tick frequency/8  
Tick frequency/32  
Tick frequency/128  
Note: The prescaler counter is not reset when writing these bits, hence one  
prescaler period may be needed before updated data is used.  
1:0  
MODE[1:0]  
00  
R/W  
Timer 1 mode select. The timer operating mode is selected as follows:  
00  
01  
10  
11  
Operation is suspended  
Free-running, repeatedly count from 0x0000 to 0xFFFF  
Modulo, repeatedly count from 0x0000 to T1CC0  
Up/down, repeatedly count from 0x0000 to T1CC0 and from T1CC0  
down to 0x0000  
SWRS055D  
Page 119 of 243  
 
 
 
C2510Fx / CC2511Fx  
T1CCTL0 (0xE5) – Timer 1 Channel 0 Capture/Compare Control  
Bit  
Name  
Reset  
R/W  
Description  
7
CPSEL  
0
R/W  
Timer 1 channel 0 capture select  
0
1
Use normal capture input  
Use RF event(s) enabled in the RFIMregister to trigger a capture  
6
IM  
1
R/W  
R/W  
Channel 0 interrupt mask  
0
1
Interrupt disabled  
Interrupt enabled  
5:3  
CMP[2:0]  
000  
Channel 0 compare mode select. Selects action on output when timer value  
equals compare value in T1CC0  
000  
001  
010  
011  
Set output on compare  
Clear output on compare  
Toggle output on compare  
Set output on compare-up, clear on 0 (clear on compare-down in  
up/down mode)  
100  
Clear output on compare-up, set on 0 (set on compare-down in  
up/down mode)  
101  
110  
111  
Reserved  
Reserved  
Reserved  
2
MODE  
0
R/W  
R/W  
Mode. Select Timer 1 channel 0 capture or compare mode  
0
1
Capture mode  
Compare mode  
1:0  
CAP[1:0]  
00  
Channel 0 capture mode select  
00  
01  
10  
11  
No capture  
Capture on rising edge  
Capture on falling edge  
Capture on both edges  
T1CC0H (0xDB) – Timer 1 Channel 0 Capture/Compare Value High  
Bit  
Name  
Reset  
R/W  
Description  
7:0  
T1CC0[15:8]  
0x00  
R/W  
Timer 1 channel 0 capture/compare value, high order byte.  
Set the DSM sample rate in DSM mode  
T1CC0L (0xDA) – Timer 1 Channel 0 Capture/Compare Value Low  
Bit  
Name  
Reset  
R/W  
Description  
7:0  
T1CC0[7:0]  
0x00  
R/W  
Timer 1 channel 0 capture/compare value, low order byte  
Set the DSM sample rate in DSM mode  
SWRS055D  
Page 120 of 243  
 
 
 
C2510Fx / CC2511Fx  
T1CCTL1 (0xE6) – Timer 1 Channel 1 Capture/Compare Control  
Bit  
Name  
Reset  
R/W  
Description  
7
CPSEL  
0
R/W  
Timer 1 channel 1 capture select  
0
1
Use normal capture input  
Use RF event(s) enabled in the RFIMregister to trigger a capture  
6
IM  
1
R/W  
R/W  
Channel 1 interrupt mask  
0
1
Interrupt disabled  
Interrupt enabled  
5:3  
CMP[2:0]  
000  
Channel 1 compare mode select. Selects action on output when timer value equals  
compare value in T1CC1  
000  
001  
010  
011  
Set output on compare  
Clear output on compare  
Toggle output on compare  
Set output on compare-up, clear on 0 (clear on compare-down in up/down  
mode)  
100  
Clear output on compare-up, set on 0 (set on compare-down in up/down  
mode)  
101  
110  
111  
Set when equal to T1CC1, clear when equal to T1CC0  
Clear when equal to T1CC1, set when equal to T1CC0  
DSM mode enable  
2
MODE  
0
R/W  
R/W  
CMP111  
CMP= 111  
Select Timer 1 channel 1 capture  
or compare mode  
Set the DSM speed  
0
1
Capture mode  
Compare mode  
1/8 of timer tick speed  
1/2 of timer tick speed  
1:0  
CAP[1:0]  
00  
Channel 1 capture mode  
select (timer mode)  
DSM interpolator and output shaping  
configuration (DSM mode)  
00  
01  
10  
11  
No capture  
DSM interpolator and output shaping  
enabled  
Capture on rising edge  
Capture on falling edge  
Capture on both edges  
DSM interpolator enabled and output  
shaping disabled  
DSM interpolator disabled and output  
shaping enabled  
DSM interpolator and output shaping  
disabled  
T1CC1H (0xDD) – Timer 1 Channel 1 Capture/Compare Value High  
Bit  
Name  
Reset  
R/W  
Description  
7:0  
T1CC1[15:8] 0x00  
R/W  
Timer 1 channel 1 capture/compare value, high order byte  
DSM data high order byte (DSM mode)  
T1CC1L (0xDC) – Timer 1 Channel 1 Capture/Compare Value Low  
Bit  
Name  
Reset  
R/W  
Description  
7:0  
T1CC1[7:0]  
0x00  
R/W  
Timer 1 channel 1 capture/compare value, low order byte  
DSM data low order byte. The two least significant bits are not used. (DSM mode)  
SWRS055D  
Page 121 of 243  
 
 
 
C2510Fx / CC2511Fx  
T1CCTL2 (0xE7) – Timer 1 Channel 2 Capture/Compare Control  
Bit  
Name  
Reset  
R/W  
Description  
7
CPSEL  
0
R/W  
Timer 1 channel 2 capture select  
0
1
Use normal capture input  
Use RF event(s) enabled in the RFIMregister to trigger a capture  
6
IM  
1
R/W  
R/W  
Channel 2 interrupt mask  
0
1
Interrupt disabled  
Interrupt enabled  
5:3  
CMP[2:0]  
000  
Channel 2 compare mode select. Selects action on output when timer value  
equals compare value in T1CC2  
000  
001  
010  
011  
Set output on compare  
Clear output on compare  
Toggle output on compare  
Set output on compare-up, clear on 0 (clear on compare-down in  
up/down mode)  
100  
Clear output on compare-up, set on 0 (set on compare-down in  
up/down mode)  
101  
110  
111  
Set when equal to T1CC2, clear when equal to T1CC0  
Clear when equal to T1CC2,set when equal to T1CC0  
Not used  
2
MODE  
0
R/W  
R/W  
Mode. Select Timer 1 channel 2 capture or compare mode  
0
1
Capture mode  
Compare mode  
1:0  
CAP[1:0]  
00  
Channel 2 capture mode select  
00  
01  
10  
11  
No capture  
Capture on rising edge  
Capture on falling edge  
Capture on both edges  
T1CC2H (0xDF) – Timer 1 Channel 2 Capture/Compare Value High  
Bit  
Name  
Reset  
R/W  
Description  
7:0  
T1CC2[15:8]  
0x00  
R/W  
Timer 1 channel 2 capture/compare value, high order byte  
T1CC2L (0xDE) – Timer 1 Channel 2 Capture/Compare Value Low  
Bit  
Name  
Reset  
R/W  
Description  
7:0  
T1CC2[7:0]  
0x00  
R/W  
Timer 1 channel 2 capture/compare value, low order byte  
SWRS055D  
Page 122 of 243  
 
 
 
C2510Fx / CC2511Fx  
13.7 MAC Timer (Timer 2)  
The MAC timer is designed for slot timing  
operations used by the MAC layer in an RF  
protocol. The timer includes a highly tunable  
prescaler allowing the user to select a timer  
interval that equals, or is an integer fraction of,  
a transmission slot.  
the 18 bit counter and thus set the maximum  
value.  
The timer 2 interval / time slot, T, can be given  
as:  
T = T2PR · Val(T2CTL.TIP)/ timer tick speed,  
8-bit timer  
where the function Val(x) is set by T2CTL.TIP  
and defined as  
18-bit tunable prescaler  
Val(00) = 64  
13.7.1 Timer Operation  
Val(01) = 128  
This section describes the operation of the  
timer.  
Val(10) = 256  
Val(11) = 1024  
The timer count can be read from the T2CT  
SFR. At each active clock edge, the timer  
count is decremented by one. When the timer  
count reaches 0x00, the register bit  
T2CTL.TEX is set to 1. When T2CTL.TIG=0,  
the timer will not wrap around when the timer  
count reaches 0x00. When T2CTL.TIG=1,  
timer count will wrap around and start counting  
down from 0xFF.  
Example:  
T2PR= 0x09  
T2CTL.TIP= 10  
CLKCON.TICKSPD = 101 (812.5 kHz @ when  
fxosc = 26 MHz)  
T = 9 · 256 / 812.5 kHz = 2.84 ·10-3 s  
If T2CTL.INT=1, IRCON.T2IF will also be  
asserted when T2CTL.TEX is set to 1. An  
interrupt request will be generated if both  
T2CTL.INTand IEN1.T2IEare set to 1.  
13.7.2 Timer 2 DMA Trigger  
There is one DMA trigger associated with  
Timer 2. This is the DMA trigger T2_OVFL,  
which is generated when T2CTL.TEXis set to  
1.  
When a new value is written to the timer count  
register, T2CT, this value is stored in the  
counter immediately. If an active clock edge  
and a write to T2CT occur at the same time,  
the written value will be decremented before it  
is stored.  
13.7.3 Timer 2 Registers  
The SFRs associated with Timer 2 are listed in  
this section. These registers are the following:  
The 18 bit prescaler is controlled by:  
T2CTL– Timer 2 Control  
T2PR– Timer 2 Prescaler  
T2CT– Timer 2 Count  
Timer tick speed (CLKCON.TICKSPD)  
T2CTL.TIP  
Prescaler value (T2PR)  
Note: These registers will be in their reset  
state when returning to active mode from  
PM2 and PM3.  
All events in timer 2 are aligned to timer tick  
speed  
given  
by  
CLKCON.TICKSPD.  
T2CTL.TIP defines how fast the prescaler  
counter counts up towards its maximum value  
where it is reset and starts over again. The  
prescaler value, T2PR, defines the 8 MSB of  
SWRS055D  
Page 123 of 243  
C2510Fx / CC2511Fx  
T2CTL (0x9E) – Timer 2 Control  
Bit  
7
Name  
Reset  
R/W  
Description  
0
0
R/W0  
R/W0  
Reserved  
6
TEX  
This bit is set to 1 when the timer count reaches 0x00. Writing a 1 to this bit has no  
effect  
5
4
0
0
R/W  
R/W  
Reserved. Always set to 0.  
Timer 2 Interrupt enable  
INT  
TIG  
0
1
Interrupt enabled  
Interrupt disabled  
3
2
0
0
R/W  
R/W  
Reserved. Always set to 0  
Tick generator mode  
0
Tick generator is running when T2CT not equal to 0x00. The tick generator will  
always start running form its null state.  
1
Tick generator is in free-running mode. If it is not already running it will start  
from its null state when this bit is set to 1  
1:0  
TIP[1:0]  
00  
R/W  
This value is used to calculate the timer 2 interval / time slot, T  
T = T2PR · Val(T2CTL.TIP)/ timer tick speed,  
00  
01  
10  
11  
64  
128  
256  
1024  
T2CT (0x9C) – Timer 2 Count  
Bit  
Name  
Reset  
R/W  
Description  
7:0  
CNT[7:0]  
0x00  
R/W  
Timer count. Contents of 8-bit counter.  
T2PR (0x9D) – Timer 2 Prescaler  
Bit  
Name  
Reset  
R/W  
Description  
7:0  
PR[7:0]  
0x00  
R/W  
Timer prescaler multiplier. 0x00 is interpreted as 256  
SWRS055D  
Page 124 of 243  
 
 
 
C2510Fx / CC2511Fx  
13.8 Sleep Timer  
The Sleep Timer is used to control when the  
CC2510Fx/CC2511Fx exits from PM{0-2} and  
hence the Sleep Timer can be used to  
implement a wake up functionality which  
enables CC2510Fx/CC2511Fx to periodically wake  
up to active mode and listen for incoming RF  
packets.  
750  
tEvent0  
=
EVENT025WOR_ RES  
fref  
If the 32.768 kHz crystal oscillator is used to  
clock the Sleep Timer, tEvent0 is calculated as  
follows:  
1
tEvent0  
=
EVENT025WOR _ RES  
32768  
13.8.1 Sleep Timer Operation  
This section describes the operation of the  
timer.  
The time from the CC2510Fx/CC2511Fx enters  
PM2 until the next Event 0 is programmed to  
appear (tSLEEPmin) should be larger than 11.08  
ms when fref is 26 MHz and 12 ms when fref is  
24 MHz (Sleep Timer clocked by the low  
power RC oscillator).  
Note: In this section of the document, fRef is  
used to denote the reference frequency for  
the synthesizer.  
For CC2510Fx  
and for  
f =fXOS  
ref  
750  
t
=
384  
fXOSC  
SLEEPmin  
CC2511Fx,  
fref  
fref  
=
2
When referring to the low power RCOSC,  
calibrated values are assumed  
When the Sleep Timer is clocked by the  
32.768 kHz crystal oscillator, tSLEEP = 11.72  
min  
ms (384/32768).  
The Sleep Timer consists of a 31-bit counter.  
The appropriate bits of this counter are  
selected according to a resolution setting  
determined by the WORCTRL.WOR_RES  
register bits. The Sleep Timer is either clocked  
by the 32.768 kHz crystal oscillator or by the  
low power RC oscillator (fref / 750). The timer  
can only be used in PM0, PM1, and PM2.  
13.8.2 Sleep Timer and Power Mode 2  
Entering PM2 has to be aligned to a positive  
edge on the 32 kHz clock source. Note that  
any updates to the compare value, EVENT0,  
has to happen prior to this positive edge.  
There has to be at least two positive edges on  
the 32 kHz clock source between  
WORCTRL.WOR_RESET being asserted and  
entering PM2.  
The Sleep Timer has a programmable timing  
event called Event 0. While in PM0, PM1, or  
PM2, reaching Event  
0
will make the  
If EVENT0 is changed to a value smaller than  
the current counter value, an Event 0 will  
occur immediately.  
CC2510Fx/CC2511Fx enter active mode.  
The time between two consecutive Event 0’s  
(tEvent0) is programmed with a mantissa value  
given  
by  
WOREVT1.EVENT0  
and  
WOREVT0.EVENT0, and an exponent value set  
by WORCTRL.WOR_RES. When using the low  
power RC oscillator to clock the Sleep Timer,  
tEvent0 is given by:  
SWRS055D  
Page 125 of 243  
C2510Fx / CC2511Fx  
// Alignment of entering PM2 to a positive edge on the 32 kHz clock source  
char temp = WORTIME0;  
while(temp == WORTIME0);  
// Wait until a positive 32 kHz edge  
// Enter PM  
PCON |= 0x01;  
// Reset timer and align the entering of PM2 to a positive edge on the 32 kHz  
// clock source  
WORCTRL |= 0x04;  
// Reset Sleep Timer  
char temp = WORTIME0;  
while(temp == WORTIME0);  
temp = WORTIME0;  
// Wait until a positive 32 kHz edge  
while(temp == WORTIME0);  
PCON |= 0x01;  
// Wait until a positive 32 kHz edge  
// Enter PM  
13.8.3 Low Power RC Oscillator and Timing  
13.8.4 Sleep Timer Interrupt  
This section applies to using the low power RC  
oscillator as clock source for the Sleep Timer.  
The Sleep Timer generates the Sleep Timer  
interrupt, ST, when Event 0 occurs. This  
interrupt source can be masked using the  
WORIRQ.EVENT0_MASK interrupt mask bit.  
The interrupt flag bit WORIRQ.EVENT0_FLAG  
will be set when Event 0 occurs.  
The frequency of the low-power RC oscillator,  
which can be used as clock source for the  
Sleep Timer, varies with temperature and  
supply voltage. In order to keep the frequency  
as accurate as possible, the RC oscillator  
should be calibrated whenever possible, which  
is when the high speed crystal oscillator is  
running and the chip is in active mode or PM0.  
When the chip goes to PM1 or PM2, the RC  
oscillator will use the last valid calibration  
result. The frequency of the low power RC  
oscillator is therefore locked to fref / 750.  
13.8.5 Sleep Timer DMA Trigger  
There is one DMA trigger associated with the  
Sleep Timer. This is the DMA trigger ST,  
which is generated when Event 0 occurs.  
13.8.6 Sleep Timer Registers  
This section describes the SFRs associated  
with the Sleep Timer.  
SWRS055D  
Page 126 of 243  
C2510Fx / CC2511Fx  
WORTIME0 (0xA5) – Sleep Timer Low Byte  
Bit  
Name  
Reset  
R/W  
Description  
7:0  
WORTIME0[7:0]  
0x00  
R
8 LSB of the16 bits selected from the 31-bit Sleep Timer according to the  
setting of WORCTRL.WOR_RES[1:0]  
WORTIME1 (0xA6) – Sleep Timer High Byte  
Bit  
Name  
Reset  
R/W  
Description  
7:0  
WORTIME1[15:8]  
0x00  
R
8 MSB of the16 bits selected from the 31-bit Sleep Timer according to the  
setting of WORCTRL.WOR_RES[1:0]  
WOREVT1 (0xA4) – Sleep Timer Event0 Timeout High  
Bit  
Name  
Reset  
R/W  
Description  
7:0  
EVENT0[15:8]  
0x87  
R/W  
High byte of Event 0 timeout register  
Sleep Timer clocked by low power  
RCOSC  
Sleep Timer clocked by 32.768 kHz  
crystal oscillator  
750  
1
EVENT025WOR_ RES  
tEvent0  
=
EVENT025WOR _ RES  
tEvent0  
=
fref  
32768  
WOREVT0 (0xA3) – Sleep Timer Event0 Timeout Low  
Bit  
Name  
Reset  
R/W  
Description  
Low byte of Event 0 timeout register  
7:0  
EVENT0[7:0]  
0x6B  
R/W  
WORCTRL (0xA2) – Sleep Timer Control  
Bit  
7
Name  
Reset  
R/W  
R0  
Description  
-
Not used  
6:4  
3
111  
-
R/W  
R0  
Reserved. Always write 000  
Not used  
2
WOR_RESET  
0
R0/W1  
R/W  
Reset timer. The timer will be reset to 4.  
Sleep Timer resolution  
1:0  
WOR_RES[1:0]  
00  
Controls the resolution and maximum timeout for the Sleep Timer.  
Adjusting the resolution does not affect the clock cycle counter:  
Setting  
Resolution (1 LSB) Bits selected from the 31-bit Sleep  
Timer  
00  
01  
10  
11  
1 period  
15:0  
25 periods  
210 periods  
215 periods  
20:5  
25:10  
30:15  
SWRS055D  
Page 127 of 243  
 
 
 
 
 
C2510Fx / CC2511Fx  
WORIRQ (0xA1) – Sleep Timer Interrupt Control  
Bit  
7:6  
5
Name  
Reset  
R/W  
R0  
Description  
-
Not used  
0
0
R/W  
R/W  
Reserved. Always write 0  
Event 0 interrupt mask  
4
EVENT0_MASK  
0
1
Interrupt is disabled  
Interrupt is enabled  
3:2  
1
-
R0  
Not used  
0
0
R/W0  
R/W0  
Reserved  
0
EVENT0_FLAG  
Event 0 interrupt flag  
0
1
No interrupt is pending  
Interrupt is pending  
SWRS055D  
Page 128 of 243  
 
C2510Fx / CC2511Fx  
13.9 8-bit Timers, Timer 3 and Timer 4  
Timer 3 and Timer 4 are two 8-bit timers which  
supports typical timer/counter functions such  
as output compare and PWM functions. The  
timers have two independent compare  
channels each and use one I/O pin per  
channel.  
speed RC oscillator is used as system clock  
source, the highest clock frequency used by  
Timer 3/4 is fXOSC/2 for CC2510Fx and 12 MHz  
for CC2511Fx, given that the HS RCOSC has  
been calibrated.  
The counter operates as either a free-running  
counter, a modulo counter, a down counter, or  
as an up/down counter for use in centre-  
aligned PWM.  
The features of Timer 3/4 are as follows:  
Two compare channels  
Set, clear, or toggle output compare  
It is possible to read the 8-bit counter value  
through the SFR TxCNT.  
Free-running,  
modulo,  
up/down counter operation  
down,  
or  
Writing a 1 to TxCTL.CLR will reset the 8-bit  
Clock prescaler for divide by 1, 2, 4, 8,  
counter.  
16, 32, 64, 128  
The counter may produce an interrupt request  
when the terminal count value (overflow) is  
reached (see Section 13.9.2.1 – Section  
13.9.2.4). It is possible to start and halt the  
counter with the TxCTL.START bit. The  
counter is started when a 1 is written to  
Interrupt request generation on compare  
and when reaching the terminal count  
value  
DMA trigger function  
TxCTL.START. If  
TxCTL.START, the counter halts at its  
present value.  
a
0
is written to  
Note: In the following sections, an n in the  
register name represent the channel  
number 0 or 1 if nothing else is stated. An  
x in the register name refers to the timer  
number, 3 or 4  
13.9.2 Timer 3/4 Operation  
In general, the control register TxCTL is used  
to control the timer operation. The timer  
modes are described in the following four  
sections.  
13.9.1 8-bit Timer Counter  
Both timers consist of an 8-bit counter that  
increments or decrements at each active clock  
edge. The frequency of the active clock edges  
13.9.2.1 Free-running Mode  
is  
given  
by  
CLKCON.TICKSPD  
and  
In free-running mode the counter starts from  
0x00 and increments at each active clock  
edge. When the counter reaches the terminal  
count value 0xFF (overflow), the counter is  
loaded with 0x00 and continues incrementing  
its value as shown in Figure 34. When 0xFF is  
reached, the TIMIF.TxOVFIF flag is set. The  
IRCON.TxIF flag is only asserted if the  
TxCTL.DIV. CLKCON.TICKSPDis used to set  
the timer tick speed. The timer tick speed will  
vary from 203.125 kHz to 26 MHz for CC2510Fx  
and 187.5 kHz to 24 MHz for CC2511Fx (given  
the use of a 26 MHz or 48 MHz crystal  
respectively). Note that the clock speed of the  
system clock is not affected by the TICKSPD  
setting. The timer tick speed is further divided  
in Timer 3/4 by the prescaler value set by  
TxCTL.DIV. This prescaler value can be 1,  
2, 4, 8, 16, 32, 64, or 128. Thus the lowest  
clock frequency used by Timer 3/4 is 1.587  
kHz and the highest is 26 MHz when a 26  
MHz crystal oscillator is used as system clock  
source (CC2510Fx). The lowest clock frequency  
used by Timer 3/4 is 1.465 kHz and the  
highest is 24 MHz for CC2511Fx. When the high  
corresponding  
interrupt  
mask  
bit  
TxCTL.OVFIM is set. An interrupt request is  
generated when both TxCTL.OVFIM and  
IEN1.TxEN are set to 1. The free-running  
mode can be used to generate independent  
time intervals and output signal frequencies.  
SWRS055D  
Page 129 of 243  
 
C2510Fx / CC2511Fx  
0xFF  
0x00  
OVFIF = 1  
OVFIF = 1  
Figure 34: Free-running Mode  
13.9.2.2 Modulo Mode  
IRCON.TxIF flag is only asserted if the  
corresponding interrupt mask bit  
In modulo mode the counter starts from 0x00  
and increments at each active clock edge.  
When the counter value matches the terminal  
count value TxCC0, the counter is loaded with  
0x00 and continues incrementing its value as  
shown in Figure 35. When TxCC0 is reached,  
the TIMIF.TxOVFIF flag is set. The  
TxCTL.OVFIM is set. An interrupt request is  
generated when both TxCTL.OVFIM and  
IEN1.TxENare set to 1. Modulo mode can be  
used for applications where a period other  
than 0xFF is required.  
TxCC0  
0x00  
OVFIF = 1  
OVFIF = 1  
Figure 35: Modulo Mode  
13.9.2.3 Down Mode  
IRCON.TxIF  
corresponding  
is only asserted if the  
interrupt mask bit  
In down mode, after the timer has been  
started, the counter is loaded with the contents  
in TxCC0. The counter then counts down to  
0x00 (terminal count value) and remains at  
0x00 as shown in Figure 36. The flag  
TIMIF.TxOVFIFis set when 0x00 is reached.  
TxCTL.OVFIM is set. An interrupt request is  
generated when both TxCTL.OVFIM and  
IEN1.TxEN are set to 1. The timer down  
mode can generally be used in applications  
where an event timeout interval is required.  
TxCC0  
0x00  
OVFIF = 1  
Figure 36: Down Mode  
13.9.2.4 Up/Down Mode  
When the counter value matches the terminal  
count value TxCC0, the counter counts down  
until 0x00 is reached and it starts counting up  
In up/down mode the counter starts from 0x00  
and increments at each active clock edge.  
SWRS055D  
Page 130 of 243  
 
 
C2510Fx / CC2511Fx  
again as shown in Figure 37. When 0x00 is  
reached, the TIMIF.TxOVFIF flag is set. The  
IRCON.TxIF flag is only asserted if the  
IEN1.TxEN are set to 1. The up/down mode  
can be used when symmetrical output pulses  
are required with a period other than 0xFF,  
and therefore allows implementation of centre-  
aligned PWM output applications.  
corresponding  
interrupt  
mask  
bit  
TxCTL.OVFIM is set. An interrupt request is  
generated when both TxCTL.OVFIM and  
TxCC0  
0x00  
OVFIF = 1  
OVFIF = 1  
Figure 37: Up/Down Mode  
13.9.3 Channel Mode Control  
For simple PWM use, output compare modes  
3 and 4 are preferred.  
The channel mode is set with each channel’s  
control and status register TxCCTLn.  
13.9.5 Timer 3 and 4 Interrupts  
Note: before an I/O pin can be used by the  
timer, the required I/O pin must be  
configured as a Timer 3/4 peripheral pin as  
described in section 13.4.6 on page 64.  
There is one interrupt vector assigned to each  
of the timers. These are T3 and T4 (interrupt  
#11 and #12, see  
Table  
39).  
The  
following timer events may generate an  
interrupt request:  
Counter reaches terminal count value  
(overflow) or turns around on zero /  
reach zero  
13.9.4 Output Compare Mode  
In output compare mode the I/O pin  
associated with a channel is set as an output.  
After the timer has been started, the contents  
of the counter are compared with the contents  
of the channel compare register TxCCn. If the  
compare register equals the counter contents,  
the output pin is set, reset, or toggled  
according to the compare output mode setting  
of TxCCTLn.CMP. Note that all edges on  
output pins are glitch-free when operating in a  
given compare output mode. Writing to the  
compare register TxCC0 does not take effect  
on the output compare value until the counter  
value is 0x00. Writing to the compare register  
TxCC1takes effect immediately.  
Output compare event  
The  
register  
bits  
TIMIF.T3OVFIF,  
TIMIF.T3CH0IF,  
TIMIF.T4OVFIF,  
TIMIF.T3CH1IF, TIMIF.T4CH0IF, and  
TIMIF.T4CH1IF contains the interrupt flags  
for the two terminal count value event  
(overflow), and the four channel compare  
events, respectively. These flags will be  
asserted regardless off the channel n interrupt  
mask bit (TxCCTLn.IM). The CPU interrupt  
flag, IRCON.TxIF will only be asserted if one  
or more of the channel n interrupt mask bits  
are set to 1. An interrupt request is only  
generated when the corresponding interrupt  
mask bit is set together with IEN1.TxEN. The  
interrupt mask bits are T3CCTL0.IM,  
T3CCTL1.IM, T4CCTL0.IM, T4CCTL1.IM,  
T3CTL.OVFIM, and T4CTL.OVFIM. Note that  
enabling an interrupt mask bit will generate a  
new interrupt request if the corresponding  
interrupt flag is set.  
When a compare occurs, the interrupt flag for  
the appropriate channel (TIMIF.TxCHnIF) is  
asserted. The IRCON.TxIF flag is only  
asserted if the corresponding interrupt mask  
bit TxCCTLn.IM is set to 1. An interrupt  
request is generated if the corresponding  
interrupt mask bit is set together with  
IEN1.TxEN. When operating in up-down  
mode, the interrupt flag for channel 0 is set  
when the counter reaches 0x00 instead of  
when a compare occurs.  
SWRS055D  
Page 131 of 243  
 
C2510Fx / CC2511Fx  
When the timer is used in Free-running Mode  
or Modulo Mode the interrupt flags are set as  
follows:  
Timer 4. These are DMA triggers T3_CH0,  
T3_CH1, T4_CH0, and T4_CH1, which are  
generated on timer compare events as follows:  
T3_CH0: Timer 3 channel 0 compare  
T3_CH1: Timer 3 channel 1 compare  
T4_CH0: Timer 4 channel 0 compare  
T4_CH1: Timer 4 channel 1 compare  
TIMIF.TxCH0IF  
TIMIF.TxCH1IF are set on compare  
event  
and  
TIMIF.TxOVFIF is set when counter  
reaches terminal count value (overflow)  
When the timer is used in Down Mode the  
interrupt flags are set as follows:  
13.9.7 Timer 3 and 4 Registers  
This section describes the following Timer 3  
and Timer 4 registers:  
TIMIF.TxCH0IF  
TIMIF.TxCH1IF are set on compare  
and  
event  
T3CNT- Timer 3 Counter  
T3CTL- Timer 3 Control  
TIMIF.TxOVFIF is set when counter  
reaches zero  
T3CCTLn- Timer 3 Channel n Compare  
Control  
When the timer is used in Up/Down Mode the  
interrupt flags are set as follows:  
T3CCn - Timer 3 Channel n Compare  
Value  
TIMIF.TxCH0IF  
TIMIF.TxOVFIF are set when the  
and  
counter turns around on zero  
T4CNT- Timer 4 Counter  
T4CTL- Timer 4 Control  
TIMIF.TxCH1IF is set on compare  
event  
T4CCTLn- Timer 4 Channel n Compare  
Control  
In addition, the CPU interrupt flag,  
IRCON.TxIFwill be asserted if the channel n  
interrupt mask bit (TxCCTLn.IM) is set to 1.  
T4CCn - Timer 4 Channel n Compare  
Value  
TIMIF- Timer 1/3/4 Interrupt Mask/Flag  
13.9.6 Timer 3 and Timer 4 DMA Triggers  
There are two DMA triggers associated with  
Timer 3 and two DMA triggers associated with  
T3CNT (0xCA) – Timer 3 Counter  
Bit  
Name  
Reset  
R/W  
Description  
Timer count byte. Contains the current value of the 8-bit counter  
7:0  
CNT[7:0]  
0x00  
R
SWRS055D  
Page 132 of 243  
 
C2510Fx / CC2511Fx  
T3CTL (0xCB) – Timer 3 Control  
Bit  
Name  
Reset  
R/W  
Description  
7:5  
DIV[2:0]  
000  
R/W  
Prescaler divider value. Generates the active clock edge used to update the  
counter as follows:  
000  
001  
010  
011  
100  
101  
110  
111  
Tick frequency /1  
Tick frequency /2  
Tick frequency /4  
Tick frequency /8  
Tick frequency /16  
Tick frequency /32  
Tick frequency /64  
Tick frequency /128  
Note: Changes to these bits has immediate effect on the frequency of the active  
clock edges.  
4
3
START  
OVFIM  
0
1
R/W  
Start timer  
0
1
Suspended  
Normal operation  
R/W0  
Overflow interrupt mask  
0
1
Interrupt disabled  
Interrupt enabled  
2
CLR  
0
R0/W1 Clear counter. Writing a 1 resets the counter to 0x00.  
This bit will be 0 when returning from PM2 and PM3  
1:0  
MODE[1:0]  
00  
R/W  
Timer 3 mode select. The timer operating mode is selected as follows:  
00  
01  
10  
11  
Free running, repeatedly count from 0x00 to 0xFF  
Down, count from T3CC0to 0x00  
Modulo, repeatedly count from 0x00 to T3CC0  
Up/down, repeatedly count from 0x00 to T3CC0 and from T3CC0down  
to 0x00  
SWRS055D  
Page 133 of 243  
 
C2510Fx / CC2511Fx  
T3CCTL0 (0xCC) – Timer 3 Channel 0 Capture/Compare Control  
Bit  
7
Name  
Reset  
R/W  
R0  
Description  
-
Not used  
6
IM  
1
R/W  
Channel 0 interrupt mask  
0
1
Interrupt disabled  
Interrupt enabled  
5:3  
CMP[2:0]  
000  
R/W  
Channel 0 compare output mode select. Specified action on output when timer value  
equals compare value in T3CC0  
000  
001  
010  
011  
Set output on compare  
Clear output on compare  
Toggle output on compare  
Set output on compare-up, clear on 0 (clear on compare-down in up/down  
mode)  
100  
Clear output on compare-up, set on 0 (set on compare-down in up/down  
mode)  
101  
110  
111  
Set output on compare, clear on 0xFF  
Clear output on compare, set on 0x00  
Not used  
2
MODE  
0
R/W  
R/W  
Timer 3 channel 0 compare mode enable  
0
1
Disable  
Enable  
1:0  
00  
Reserved. Always write 00  
T3CC0 (0xCD) – Timer 3 Channel 0 Compare Value  
Bit  
Name  
Reset  
R/W  
Description  
7:0  
VAL[7:0]  
0x00  
R/W  
Timer 3 channel 0 compare value  
SWRS055D  
Page 134 of 243  
 
 
C2510Fx / CC2511Fx  
T3CCTL1 (0xCE) – Timer 3 Channel 1 Compare Control  
Bit  
7
Name  
Reset  
R/W  
R0  
Description  
-
Not used  
6
IM  
1
R/W  
Channel 1 interrupt mask  
0
1
Interrupt disabled  
Interrupt enabled  
5:3  
CMP[2:0]  
000  
R/W  
Channel 1 compare output mode select. Specified action on output when timer value  
equals compare value in T3CC1  
000  
001  
010  
011  
Set output on compare  
Clear output on compare  
Toggle output on compare  
Set output on compare-up, clear on 0 (clear on compare-down in up/down  
mode)  
100  
Clear output on compare-up, set on 0 (set on compare-down in up/down  
mode)  
101  
110  
111  
Set output on compare, clear on T3CC0  
Clear output on compare, set on T3CC0  
Not used  
2
MODE  
0
R/W  
R/W  
Timer 3 channel 1 compare mode enable  
0
1
Disable  
Enable  
1:0  
00  
Reserved. Always write 00  
T3CC1 (0xCF) – Timer 3 Channel 1 Compare Value  
Bit  
Name  
Reset  
R/W  
Description  
7:0  
VAL[7:0]  
0x00  
R/W  
Timer 3 channel 1 compare value  
T4CNT (0xEA) – Timer 4 Counter  
Bit  
Name  
Reset  
R/W  
Description  
7:0  
CNT[7:0]  
0x00  
R
Timer count byte. Contains the current value of the 8-bit counter  
SWRS055D  
Page 135 of 243  
 
 
 
C2510Fx / CC2511Fx  
T4CTL (0xEB) – Timer 4 Control  
Bit  
Name  
Reset  
R/W  
Description  
7:5  
DIV[2:0]  
000  
R/W  
Prescaler divider value. Generates the active clock edge used to update the  
counter as follows:  
000  
001  
010  
011  
100  
101  
110  
111  
Tick frequency /1  
Tick frequency /2  
Tick frequency /4  
Tick frequency /8  
Tick frequency /16  
Tick frequency /32  
Tick frequency /64  
Tick frequency /128  
Note: Changes to these bits has immediate effect on the frequency of the active  
clock edges.  
4
3
START  
OVFIM  
0
1
R/W  
Start timer  
0
1
Suspended  
Normal operation  
R/W0  
Overflow interrupt mask  
0
1
Interrupt disabled  
Interrupt enabled  
2
CLR  
0
R0/W1 Clear counter. Writing a 1 resets the counter to 0x00.  
This bit will be 0 when returning from PM2 and PM3  
1:0  
MODE[1:0]  
00  
R/W  
Timer 4 mode select. The timer operating mode is selected as follows:  
00  
01  
10  
11  
Free running, repeatedly count from 0x00 to 0xFF  
Down, count from T4CC0to 0x00  
Modulo, repeatedly count from 0x00 to T4CC0  
Up/down, repeatedly count from 0x00 to T4CC0and from T4CC0down to  
0x00  
SWRS055D  
Page 136 of 243  
 
C2510Fx / CC2511Fx  
T4CCTL0 (0xEC) – Timer 4 Channel 0 Capture/Compare Control  
Bit  
7
Name  
Reset  
R/W  
R0  
Description  
-
Not used  
6
IM  
1
R/W  
Channel 0 interrupt mask  
0
1
Interrupt disabled  
Interrupt enabled  
5:3  
CMP[2:0]  
000  
R/W  
Channel 0 compare output mode select. Specified action on output when timer value  
equals compare value in T4CC0  
000  
001  
010  
011  
Set output on compare  
Clear output on compare  
Toggle output on compare  
Set output on compare-up, clear on 0 (clear on compare-down in up/down  
mode)  
100  
Clear output on compare-up, set on 0 (set on compare-down in up/down  
mode)  
101  
110  
111  
Set output on compare, clear on 0xFF  
Clear output on compare, set on 0x00  
Not used  
2
MODE  
0
R/W  
R/W  
Timer 4 channel 0 compare mode enable  
0
1
Disable  
Enable  
1:0  
00  
Reserved. Always write 00  
T4CC0 (0xED) – Timer 4 Channel 0 Compare Value  
Bit  
Name  
Reset  
R/W  
Description  
7:0  
VAL[7:0]  
0x00  
R/W  
Timer 4 channel 0 compare value  
SWRS055D  
Page 137 of 243  
 
 
C2510Fx / CC2511Fx  
T4CCTL1 (0xEE) – Timer 4 Channel 1 Compare Control  
Bit  
7
Name  
Reset  
R/W  
R0  
Description  
-
Not used  
6
IM  
1
R/W  
Channel 0 interrupt mask  
0
1
Interrupt disabled  
Interrupt enabled  
5:3  
CMP[2:0]  
000  
R/W  
Channel 0 compare output mode select. Specified action on output when timer value  
equals compare value in T4CC0  
000  
001  
010  
011  
Set output on compare  
Clear output on compare  
Toggle output on compare  
Set output on compare-up, clear on 0 (clear on compare-down in up/down  
mode)  
100  
Clear output on compare-up, set on 0 (set on compare-down in up/down  
mode)  
101  
110  
111  
Set output on compare, clear on T4CC0  
Clear output on compare, set on T4CC0  
Not used  
2
MODE  
0
R/W  
R/W  
Timer 4 channel 1 compare mode enable  
0
1
Disable  
Enable  
1:0  
00  
Reserved. Always write 00  
T4CC1 (0xEF) – Timer 4 Channel 1 Compare Value  
Bit  
Name  
Reset  
R/W  
Description  
7:0  
VAL[7:0]  
0x00  
R/W  
Timer 4 channel 1 compare value  
SWRS055D  
Page 138 of 243  
 
 
C2510Fx / CC2511Fx  
TIMIF (0xD8) – Timers 1/3/4 Interrupt Mask/Flag  
Bit  
7
Name  
Reset  
R/W  
R0  
Description  
-
Not used  
6
OVFIM  
1
R/W  
Timer 1 overflow interrupt mask  
0
1
Interrupt disabled  
Interrupt enabled  
5
4
3
2
1
0
T4CH1IF  
T4CH0IF  
T4OVFIF  
T3CH1IF  
T3CH0IF  
T3OVFIF  
0
0
0
0
0
0
R/W0  
R/W0  
R/W0  
R/W0  
R/W0  
R/W0  
Timer 4 channel 1 interrupt flag. Writing a 1 has no effect  
0
1
No interrupt is pending  
Interrupt is pending  
Timer 4 channel 0 interrupt flag. Writing a 1 has no effect  
0
1
No interrupt is pending  
Interrupt is pending  
Timer 4 overflow interrupt flag. Writing a 1 has no effect  
0
1
No interrupt is pending  
Interrupt is pending  
Timer 3 channel 1 interrupt flag. Writing a 1 has no effect  
0
1
No interrupt is pending  
Interrupt is pending  
Timer 3 channel 0 interrupt flag. Writing a 1 has no effect  
0
1
No interrupt is pending  
Interrupt is pending  
Timer 3 overflow interrupt flag. Writing a 1 has no effect  
0
1
No interrupt is pending  
Interrupt is pending  
SWRS055D  
Page 139 of 243  
 
C2510Fx / CC2511Fx  
13.10 ADC  
13.10.1  
ADC Introduction  
Eight individual input channels, single-  
ended or differential (CC2511Fx has only  
six channels)  
The ADC supports up to 12-bit analog-to-  
digital conversion. The ADC includes an  
analog multiplexer with up to eight individually  
configurable channels, reference voltage  
generator, and conversion results written to  
memory through DMA. Several modes of  
operation are available.  
Reference  
voltage  
selectable  
as  
internal, external single ended, external  
differential, or AVDD.  
Interrupt request generation  
DMA triggers at end of conversions  
Temperature sensor input  
The main features of the ADC are as follows:  
Selectable decimation rates which also  
sets the resolution (7 to 12 bits).  
Battery measurement capability  
Figure 38: ADC Block Diagram  
13.10.2  
ADC Operation  
To configure a P0 pin to be used as an ADC  
input the corresponding bit in the ADCCFG  
register must be set to 1. The default value in  
this register disables the ADC inputs. Please  
see Section 13.4.7 on Page 92 for more details  
on how to configure the ADC input pins. In the  
following these port pin will be referred to as  
the AIN0 - AIN7 pins. The ADC can be set up  
This section describes the general setup and  
operation of the ADC and describes the usage  
of the ADC control and status registers  
accessed by the CPU.  
13.10.2.1 ADC Core  
to automatically perform  
conversions and optionally perform an extra  
conversion.  
a
sequence of  
The ADC is capable of converting an analog  
input into a digital representation with up to 12  
bits resolution. The ADC uses a selectable  
positive reference voltage.  
It is possible to configure the inputs as single-  
ended or differential inputs. In the case where  
differential inputs are selected, the differential  
inputs consist of the input pairs AIN0 - AIN1,  
AIN2 - AIN3, AIN4 - AIN5, and AIN6 - AIN7.  
Note that neither a negative supply, nor a  
supply larger than VDD (unregulated power)  
can be applied to these pins. It is the  
difference between the pairs that are  
converted in differential mode.  
13.10.2.2 ADC Inputs  
The signals on the P0 port pins can be used as  
ADC inputs.  
Note: P0_6 and P0_7 do not exist on  
CC2511Fx, hence only six input channels are  
available (AIN0 – AIN5)  
SWRS055D  
Page 140 of 243  
C2510Fx / CC2511Fx  
In addition to the input pins AIN0 - AIN7, the  
output of an on-chip temperature sensor can  
be selected as an input to the ADC for  
temperature measurements.  
The ADCCON1.EOCbit is a status bit that is set  
high when a conversion ends and cleared  
when ADCHis read.  
The ADCCON1.ST bit is used to start a  
sequence of conversions. A sequence will start  
It is also possible to select  
a voltage  
corresponding to AVDD/3 as an ADC input.  
This input allows the implementation of e.g. a  
battery monitor in applications where this  
feature is required.  
when  
this  
bit  
is  
set  
high,  
ADCCON1.STSEL=11, and no conversion is  
currently running. When the sequence is  
completed, this bit is automatically cleared.  
The ADCCON1.STSEL bits select which event  
that will start a new sequence of conversions.  
The options which can be selected are rising  
edge on external pin P2_0, end of previous  
sequence, a Timer 1 channel 0 compare  
event, or ADCCON1.STis 1.  
13.10.2.3 ADC Conversion Sequences  
The ADC will perform  
a
sequence of  
conversions, and the results can be moved to  
memory (through DMA) without any interaction  
from the CPU.  
ADCCON2.SREFis used to select the reference  
voltage. The reference voltage should only be  
changed when no conversion is running.  
The ADCCON2.SCH register bits are used to  
define an ADC conversion sequence from the  
ADC inputs. If some of the inputs in this  
sequence are not configured to be analog  
input signals in the ADCCFGregister, these will  
be skipped. For differential inputs both input  
pins must be configured to be analog input  
signals.  
The ADCCON2.SDIVbits select the decimation  
rate (and thereby also the resolution and time  
required to complete a conversion and sample  
rate). The decimation rate should only be  
changed when no conversion is running.  
0000 ADCCON2.SCH 0111: Single-  
The ADCCON2.SCH register bits are used to  
define an ADC conversion sequence.  
ended inputs  
1000  
ADCCON2.SCH  
1011:  
The ADC can be programmed to perform a  
single conversion (single-ended, differential,  
GND, internal voltage reference, temperature  
sensor, or AVDD/3). This is called an extra  
conversion and is controlled with the ADCCON3  
register. This conversion is triggered by writing  
to ADCCON3. If this register is written while the  
ADC is running, the conversion will take place  
as soon as the sequence has completed. If the  
register is written while the ADC is not running,  
the conversion will take place immediately  
after the ADCCON3register is updated.  
Differential inputs  
1100 ADCCON2.SCH 1111: GND,  
internal voltage reference, temp. sensor,  
and AVDD/3  
When ADCCON2.SCH is set to a value less  
than 1000 a conversion sequence will contain  
a conversion from each ADC input, starting at  
AIN0 and ending at the input programmed in  
ADCCON2.SCH.When ADCCON2.SCHis set to  
a value ranging from 1000 to 1011, the  
sequence will start at the differential input pair  
(AIN0 – AIN1) and stop at the input pair given  
by ADCCON2.SCH. For even higher settings,  
only single conversions are performed. In  
addition to this sequence of conversions, the  
ADC can be programmed to perform a single  
conversion (see next section).  
The ADCCON3 register controls which input to  
use, reference voltage, and decimation rate for  
the extra conversion. The coding of the  
register bits is exactly as for ADCCON2.  
Note: If a sequence of conversions is  
started without setting any of the P0 pins  
as analog inputs, ADCCON2.SCH and  
ADCCON1.EOC will still be updated, as if  
the conversions had taken place.  
13.10.2.4 ADC Operating Modes  
This section describes the operating modes  
and initialization of conversions.  
The ADC has three control registers:  
ADCCON1, ADCCON2, and ADCCON3. These  
registers are used to configure the ADC and to  
report status.  
13.10.2.5 ADC Reference Voltage  
The positive reference voltage for analog-to-  
digital conversions is selectable as either an  
internally generated 1.25 V voltage, the AVDD  
pin, an external voltage applied to the AIN7  
input pin, or a differential voltage applied to the  
SWRS055D  
Page 141 of 243  
C2510Fx / CC2511Fx  
AIN6 - AIN7 inputs (AIN6 must have the  
highest input voltage). It is possible to select  
the reference voltage as the input to the ADC  
in order to perform a conversion of the  
reference voltage e.g. for calibration purposes.  
Similarly, it is possible to select the ground  
terminal GND as an input.  
used and CLKCON.CLKSPD should be 000.  
The ADC runs on a clock which is the system  
clock divided by 6 to give a 4.33/4 MHz ADC  
clock. Both the delta-sigma modulator and the  
decimation filter use the ADC clock for their  
calculations. Using other frequencies will affect  
the results, and conversion time. All data  
presented within this data sheet assume the  
use of the high speed crystal oscillator.  
Note: P0_6 and P0_7 do not exist on  
CC2511Fx, hence it is not possible to use  
external voltage reference for the ADC on  
the CC2511Fx.  
The time required to perform a conversion  
depends on the selected decimation rate.  
When, for instance, the decimation rate is set  
to 128, the decimation filter uses exactly 128  
ADC clock periods to calculate the result.  
When a conversion is started, the input  
multiplexer is allowed 16 ADC clock periods to  
settle in case the channel has been changed  
since the previous conversion. The 16 clock  
cycles settling time applies to all decimation  
rates. This means that the conversion time,  
13.10.2.6 ADC Conversion Results  
The digital conversion result is represented in  
two's complement form. For single ended  
configurations the result is always positive (the  
result is the difference between ground and the  
input signal AINn, where n is 0, 1, 2, …, 7) and  
will be a value between 0 and 2047. The  
maximum value is reached when the input  
amplitude is equal VREF, the selected voltage  
reference. For differential configurations the  
difference between two pin pairs are converted  
and this difference can be negatively signed.  
For 12-bit resolution the digital conversion  
result is 2047 when the analog input is equal to  
VREF, and the conversion result is -2048  
when the analog input is equal to -VREF.  
T
conv, is given by:  
Tconv = (decimation rate + 16) x T where  
0.22 µs T 0.23 µs for CC2510Fx, depending  
on the frequency of the high speed crystal  
oscillator  
T = 0.25 µs for CC2511Fx  
13.10.2.8 ADC Interrupts  
The ADC will only generate an interrupt when  
an extra conversion has completed.  
The digital conversion result is available in  
ADCHand ADCLwhen ADCCON1.EOC is set to  
1. Note that the conversion result always  
resides in MSB section of ADCH:ADCL.  
13.10.2.9 ADC DMA Triggers  
DMA triggers 20 – 28 are associated with  
When reading the ADCCON2.SCH bits, the  
number returned will indicate what the last  
conversion was. Notice that when the value  
written to ADCCON2.SCHis less than 1100, the  
number returned will be the number written +  
single-ended  
or  
differential  
conversion  
sequences (ADCCON2.SCH 1100). The ADC  
will generate a DMA trigger event when a new  
sample is ready from a conversion in the  
sequence. The same is the case if a single  
1.  
For example, after a sequence of  
conversion is completed (ADCCON2.SCH  
conversions from AIN0 to AIN4 has completed,  
ADCCON2.SCH will be read as 0101, while  
after a single conversion of the temperature  
sensor has completed, the register field will be  
read as 1110 (same as the value written to it).  
If an extra conversion has been initiated by  
writing to ADCCON3.ECH, ADCCON2.SCH will  
be updated, after the conversion has  
completed, with the same value as written to  
ADCCON3.ECH, even if this value was less  
than 1100.  
1100). Be aware that DMA trigger number 27  
and 28 are shared with the I2S module.  
In addition there is one DMA trigger,  
ADC_CHALL, which is active when new data  
is ready from any of the conversions in the  
ADC conversion sequence and from the single  
conversion defined by ADCCON2.SCH.  
A
completion of an extra conversion will not  
generate a trigger event.  
The DMA triggers are listed in Table 51 on  
Page 105.  
13.10.2.7 ADC Conversion Timing  
The high speed crystal oscillator should be  
selected as system clock when the ADC is  
SWRS055D  
Page 142 of 243  
 
C2510Fx / CC2511Fx  
13.10.3 ADC Registers  
This section describes the ADC registers.  
ADCL (0xBA) – ADC Data Low  
Bit  
Name  
Reset  
R/W  
Description  
7:4  
ADC[3:0]  
0000  
R
Least significant part of ADC conversion result. The decimation rate  
configures through ADCCON2.SDIVdetermines how many of these bits are  
relevant to use.  
3:0  
0000  
R
ADCH (0xBB) – ADC Data High  
Bit  
Name  
Reset  
R/W  
Description  
7:0  
ADC[11:4]  
0x00  
R
Most significant part of ADC conversion result. The decimation rate configures  
through ADCCON2.SDIVdetermines how many of these bits are relevant to  
use.  
ADCCON1 (0xB4) – ADC Control 1  
Bit  
Name  
Reset  
R/W  
R
Description  
7
EOC  
0
End of conversion. Cleared when ADCH has been read. If a new conversion  
is completed before the previous data has been read, the EOC bit will remain  
high.  
H0  
0
1
Conversion not complete  
Conversion completed  
6
ST  
0
R/W1  
R/W  
Start conversion. Read as 1 until conversion has completed  
0
1
No conversion in progress  
Start a conversion sequence if ADCCON1.STSEL=11and no  
sequence is running.  
5:4  
STSEL[1:0]  
11  
Start select. Selects which event that will start a new conversion sequence.  
00  
01  
10  
11  
External trigger on P2_0 pin.  
Full speed. Do not wait for triggers.  
Timer 1 channel 0 compare event  
ADCCON1.ST=1  
3:2  
RCTRL[1:0]  
00  
R/W  
Controls the 16 bit random generator. When set to 01, the setting will  
automatically return to 00 when operation has completed.  
00  
01  
10  
11  
Normal (13x unrolling) or operation completed  
Clock the LFSR once (no unrolling).  
Reserved  
Stopped. Random generator is turned off.  
1:0  
11  
R/W  
Reserved. Always write 11  
SWRS055D  
Page 143 of 243  
 
 
 
C2510Fx / CC2511Fx  
ADCCON2 (0xB5) – ADC Control 2  
Bit  
Name  
Reset  
R/W  
Description  
Selects reference voltage used for the sequence of conversions  
7:6  
SREF[1:0]  
00  
R/W  
00  
01  
10  
11  
Internal 1.25V reference  
External reference on AIN7 pin (only CC2510Fx)  
AVDD pin  
External reference on AIN6-AIN7 differential input (only CC2510Fx)  
5:4  
SDIV[1:0]  
01  
R/W  
Sets the decimation rate for channels included in the sequence of  
conversions. The decimation rate also determines the resolution and time  
required to complete a conversion.  
00  
01  
10  
11  
64 dec rate (7 bits resolution)  
128 dec rate (9 bits resolution)  
256 dec rate (10 bits resolution)  
512 dec rate (12 bits resolution)  
3:0  
SCH[3:0]  
00  
R/W  
Sequence Channel Select. Selects the end of the sequence.  
SCH0111: A conversion sequence will contain a conversion from each  
ADC input, starting at AIN0 and ending at the input programmed in  
ADCCON2.SCH.  
1000 SCH1011: The sequence will start at the differential input pair  
(AIN0 – AIN1) and stop at the input pair given by ADCCON2.SCH.  
SCH1100: Only single conversions are performed.  
When reading the ADCCON2.SCHbits, the number returned will indicate what  
the last conversion was. Please see Section 13.10.2.6 for details.  
0000  
0001  
0010  
0011  
0100  
0101  
0110  
0111  
1000  
1001  
1010  
1011  
1100  
1101  
1110  
1111  
AIN0  
AIN1  
AIN2  
AIN3  
AIN4  
AIN5  
AIN6  
AIN7  
AIN0-AIN1  
AIN2-AIN3  
AIN4-AIN5  
AIN6-AIN7  
GND  
Positive voltage reference  
Temperature sensor  
AVDD/3  
SWRS055D  
Page 144 of 243  
 
C2510Fx / CC2511Fx  
ADCCON3 (0xB6) – ADC Control 3  
Bit  
Name  
Reset  
R/W  
Description  
Selects reference voltage used for the extra conversion  
7:6  
EREF[1:0]  
00  
R/W  
00  
01  
10  
11  
Internal 1.25V reference  
External reference on AIN7 pin (only CC2510Fx)  
AVDD pin  
External reference on AIN6-AIN7 differential input (only CC2510Fx)  
5:4  
EDIV[1:0]  
00  
R/W  
Sets the decimation rate used for the extra conversion. The decimation rate  
also determines the resolution and time required to complete the conversion.  
00  
01  
10  
11  
64 dec rate (7 bits resolution)  
128 dec rate (9 bits resolution)  
256 dec rate (10 bits resolution)  
512 dec rate (12 bits resolution)  
3:0  
ECH[3:0]  
0000  
R/W  
Extra channel select. An extra conversion will be triggered by writing to these  
bits. If they are written while the ADC is running, the conversion will take  
place as soon as the sequence has completed. If the bits are written while  
the ADC is not running, the conversion will take place immediately after this  
register has been updated.  
The bits are automatically cleared when the extra conversion has finished.  
0000  
0001  
0010  
0011  
0100  
0101  
0110  
0111  
1000  
1001  
1010  
1011  
1100  
1101  
1110  
1111  
AIN0  
AIN1  
AIN2  
AIN3  
AIN4  
AIN5  
AIN6  
AIN7  
AIN0-AIN1  
AIN2-AIN3  
AIN4-AIN5  
AIN6-AIN7  
GND  
Positive voltage reference  
Temperature sensor  
VDD/3  
SWRS055D  
Page 145 of 243  
 
C2510Fx / CC2511Fx  
13.11 Random Number Generator  
13.11.1 Introduction  
The random number generator is a 16-bit  
Linear Feedback Shift Register (LFSR) with  
polynomial X 16 + X 15 + X 2 +1 (i.e. CRC16).  
It uses different levels of unrolling depending  
on the operation it performs. The basic version  
(no unrolling) is shown below.  
The random number generator has the  
following features.  
Generate pseudo-random bytes which  
can be read by the CPU.  
Calculate CRC16 of bytes that are  
written to RNDH.  
The random number generator is turned off  
when ADCCON1.RCTRL=11.  
Seeded by value written to RNDL.  
15  
14  
13  
12  
11  
10  
9
8
7
6
5
4
3
2
1
0
+
+
in_bit  
+
Figure 39: Basic Structure of the Random Number Generator  
13.11.2  
Random  
Number  
Generator  
replaced with the new data byte that was  
Operation  
written to RNDL.  
The operation of the random number generator  
is controlled by the ADCCON1.RCTRLbits. The  
current value of the 16-bit shift register in the  
LFSR can be read from the RNDH and RNDL  
registers.  
13.11.2.3 CRC16  
The LFSR can also be used to calculate the  
CRC value of a sequence of bytes. Writing to  
the RNDH register will trigger  
calculation. The new byte is processed from  
the MSB end and an 8x unrolling is used, so  
that a new byte can be written to RNDH every  
clock cycle.  
a
CRC  
13.11.2.1 Semi Random Sequence  
Generation  
The default operation (ADCCON1.RCTRL=00)  
is to clock the LSFR once (13x unrolling) thus  
give a new pseudo-random byte from LSB of  
the LSFR each time the RNDLregister is read.  
Note that the LFSR must be properly seeded  
by writing to RNDL, before the CRC  
calculations start. Usually the seed value  
should be 0x0000 or 0xFFFF. Using 0xFFFF  
as seed value will give the CRC used by the  
radio.  
Another way is to update the LFSR is to set  
ADCCON1.RCTRL=01. This will clock the LFSR  
once (no unrolling) and the ADCCON1.RCTRL  
bits will automatically be cleared when the  
operation has completed.  
For the following byte sequence:  
0x03, 0x41, 0x42, 0x43  
The CRC will be 0xB4BC when using 0xFFFF  
as seed value.  
13.11.2.2 Seeding  
The LFSR can be seeded by writing to the  
RNDL register twice. Each time the RNDL  
register is written, the 8 LSB of the LFSR is  
copied to the 8 MSB and the 8 LSBs are  
13.11.3  
Registers  
The random number generator registers are  
described in this section.  
SWRS055D  
Page 146 of 243  
C2510Fx / CC2511Fx  
RNDL (0xBC) – Random Number Generator Data Low Byte  
Bit  
Name  
Reset  
R/W  
Description  
[7:0]  
RNDL[7:0]  
0xFF  
R/W  
Random value/seed or CRC result, low byte  
When used for random number generation writing this register twice will  
seed the random number generator. Writing to this register copies the 8  
LSBs of the LFSR to the 8 MSBs and replaces the 8 LSBs with the data  
value written.  
The value returned when reading from this register is the 8 LSBs of the  
LSFR.  
When used for random number generation, reading this register returns the 8  
LSBs of the random number. When used for CRC calculations, reading this  
register returns the 8 LSBs of the CRC result.  
RNDH (0xBD) – Random Number Generator Data High Byte  
Bit  
Name  
Reset  
R/W  
Description  
[7:0]  
RNDH[7:0]  
0xFF  
R/W  
Random value or CRC result/input data, high byte  
When written, a CRC16 calculation will be triggered, and the data value  
written is processed starting with the MSB bit.  
The value returned when reading from this register is the 8 MSBs of the  
LSFR.  
When used for random number generation, reading this register returns the 8  
MSBs of the random number. When used for CRC calculations, reading this  
register returns the 8 MSBs of the CRC result.  
13.12 AES Coprocessor  
can be processed. Before each block load, a  
dedicated start command must be sent to the  
coprocessor.  
The CC2510Fx/CC2511Fx data encryption is  
performed using a dedicated coprocessor  
which supports the Advanced Encryption  
Standard, AES. The coprocessor allows  
encryption/decryption to be performed with  
minimal CPU usage.  
13.12.2 Key and IV  
Before a key or IV/nonce load starts, an  
appropriate load key or IV/nonce command  
must be issued to the coprocessor. When  
loading the IV it is important to also set the  
correct mode.  
The coprocessor has the following features:  
ECB, CBC, CFB, OFB, CTR, and CBC-  
MAC modes.  
Hardware support for CCM mode  
128-bits key and IV/Nonce  
A key load or IV load operation aborts any  
processing that could be running.  
DMA transfer trigger capability  
The key, once loaded, stays valid until a key  
reload takes place.  
13.12.1 AES Operation  
The IV must be downloaded before the  
beginning of each message (not block).  
To encrypt a message, the following procedure  
must be followed:  
Both key and IV are cleared by a reset of the  
device and when PM2 or PM3 are entered.  
Load key  
Load initialization vector (IV)/nonce  
13.12.3 Padding of Input Data  
Download and upload data for  
AES works on blocks of 128 bits. If the last  
block contains less than 128 bits, it must be  
padded with zeros when written to the  
coprocessor.  
encryption/decryption.  
The AES coprocessor works on blocks of 128  
bits. A block of data is loaded into the  
coprocessor, encryption is performed, and the  
result must be read out before the next block  
SWRS055D  
Page 147 of 243  
 
 
 
C2510Fx / CC2511Fx  
13.12.4 Interface to CPU  
Both encryption and decryption are performed  
similarly.  
The CPU communicates with the coprocessor  
using three SFRs:  
The CBC-MAC mode is a variant of the CBC  
mode. When performing CBC-MAC, data is  
downloaded to the coprocessor one 128 bits  
block at a time, except for the last block.  
Before the last block is loaded, the mode must  
be changed to CBC. The last block is then  
downloaded and the block uploaded will be the  
MAC value. CBC-MAC decryption is similar to  
encryption. The message MAC uploaded must  
be compared with the MAC to be verified.  
ENCCS, Encryption control and status  
register  
ENCDI, Encryption input register  
ENCDO, Encryption output register  
Read/write to the control and status register is  
done by the CPU, while read/write the  
output/input registers is intended for use  
together with direct memory access (DMA).  
13.12.6 AES Interrupts  
When using DMA, one channel is used for  
input data and one for output data. The DMA  
channels must be initialized before a start  
command is written to the ENCCS. Writing a  
start command generates a DMA trigger and  
the transfer is started. After each block is  
processed, the interrupt flag, S0CON.ENCIF, is  
asserted, and an interrupt request generated if  
IEN0.ENCIE is set to 1. The interrupt is used  
to issue a new start command to the ENCCS.  
The AES interrupt flag, S0CON.ENCIF, is  
asserted when encryption or decryption of a  
block is completed. An interrupt request is  
generated if IEN0.ENCIEis set to 1  
13.12.7 AES DMA Triggers  
There are two DMA triggers associated with  
the AES coprocessor. These are ENC_DW,  
which is active when input data needs to be  
downloaded to the ENCDI register, and  
ENC_UP, which is active when output data  
needs to be uploaded from the ENCDOregister.  
13.12.5 Modes of Operation  
ECB and CBC modes are performed as  
described in Section 13.12.1  
The ENCDIand ENCDOregisters should be set  
as destination and source locations for DMA  
channels used to transfer data to or from the  
AES coprocessor.  
When using CFB, OFB, and CTR mode, the  
128 bits blocks are divided into four 32 bit  
blocks. 32 bits are loaded into the AES  
coprocessor and the resulting 32 bits are read  
out. This continues until all 128 bits have been  
encrypted. The only time one has to consider  
this is if data is loaded/read directly using the  
CPU. When using DMA, this is handled  
automatically by the DMA triggers generated  
by the AES coprocessor, thus DMA is  
preferred.  
13.12.8 AES Registers  
This section describes the AES coprocessor  
registers. These registers will be in their reset  
state when returning to active mode from PM2  
and PM3.  
SWRS055D  
Page 148 of 243  
C2510Fx / CC2511Fx  
ENCCS (0xB3) – Encryption Control and Status  
Bit  
7
Name  
Reset  
-
R/W  
R0  
Description  
Not used  
6:4  
MODE[2:0]  
000  
R/W  
Encryption/decryption mode  
000  
001  
010  
011  
100  
101  
110  
111  
CBC  
CFB  
OFB  
CTR  
ECB  
CBC MAC  
Reserved  
Reserved  
3
RDY  
1
0
R
Encryption/decryption ready status  
0
1
Encryption/decryption in progress  
Encryption/decryption is completed  
2:1  
CMD[1:0]  
R/W  
Command to be performed when a 1 is written to ST.  
00  
01  
10  
11  
Encrypt block  
Decrypt block  
Load key  
Load IV/nonce  
0
ST  
0
R/W1  
H0  
Start processing command set by CMD. Must be issued for each command or  
128 bits block of data. Cleared by hardware  
ENCDI (0xB1) – Encryption Input Data  
Bit  
Name  
Reset  
R/W  
Description  
7:0  
DIN[7:0]  
0x00  
R/W  
Encryption input data.  
ENCDO (0xB2) – Encryption Output Data  
Bit  
Name  
Reset  
R/W  
Description  
7:0  
DOUT[7:0]  
0x00  
R/W  
Encryption output data.  
SWRS055D  
Page 149 of 243  
 
 
 
C2510Fx / CC2511Fx  
13.13 Watchdog Timer  
The watchdog timer (WDT) is intended as a  
recovery method in situations where the  
software hangs. The WDT shall reset the  
system when software fails to clear the WDT  
within a selected time interval. The watchdog  
can be used in applications where high  
reliability is required. If the watchdog  
function is not needed in an application, it is  
possible to configure the watchdog timer to  
be used as an interval timer that can be  
used to generate interrupts at selected time  
intervals.  
selected timer interval value, the counter is  
reset to 0x0000 and continues incrementing  
its value. The watchdog clear sequence  
consists  
of  
writing  
1010  
to  
WDCTL.CLR[3:0] followed by writing 0101  
to the same register bits within one half of a  
watchdog clock period. If this complete  
sequence is not performed, the watchdog  
timer generates a reset signal for the  
system. Note that as long as a correct  
watchdog clear sequence begins within the  
selected timer interval, the counter is reset  
when the complete sequence has been  
received.  
The features of the watchdog timer are as  
follows:  
When the watchdog timer has been enabled  
in watchdog mode, it is not possible to  
change the mode by writing to the  
WDCTL.MODE bit. The timer interval value  
can be changed by writing to the  
WDCTL.INT[1:0]bits.  
Four selectable timer intervals  
Watchdog mode  
Timer mode  
Interrupt request generation in timer  
mode  
Note that a change in the timer interval  
value should be followed by a clearing of  
the watchdog timer to avoid an unwanted  
watchdog reset.  
Clock independent from system clock  
The operation of the WDT module is  
controlled by the WDCTL register. The  
watchdog timer consists of a 15-bit counter  
clocked by the one of the low speed  
oscillators. Note that the content of the 15-bit  
counter is not user-accessible. The content  
of the 15-bit counter is reset to 0x0000 when  
a PM2 or PM3 is entered.  
In watchdog mode, the WDT does not  
produce an interrupt request.  
13.13.2 Timer Mode  
To set the WDT in normal timer mode, the  
WDCTL.MODE bit is set to 1. When register  
bit WDCTL.EN is set to 1, the timer is started  
and the counter starts incrementing. When  
the counter reaches the selected interval  
value, the IRCON2.WDTIF flag is asserted  
and an interrupt request is generated if  
watchdog timer interrupt is enabled  
(IEN2.WDTIE=1).  
13.13.1 Watchdog Mode  
The watchdog timer is disabled after a  
system reset. To set the WDT in watchdog  
mode the WDCTL.MODEbit must be set to 0.  
The watchdog timer counter starts  
incrementing when the enable bit WDCTL.EN  
is set to 1. When the timer is enabled in  
watchdog mode it is not possible to disable  
In timer mode, it is possible to clear the timer  
contents by writing a 1 to WDCTL.CLR[0].  
When the timer is cleared the contents of the  
counter is set to 0x0000. The timer is  
stopped by setting WDCTL.EN=0 and  
the timer. Therefore, writing  
a
0
to  
WDCTL.EN has no effect if a 1 was already  
written to this bit when WDCTL.MODE was 0.  
The WDT operates with a watchdog timer  
clock frequency of 32.768 kHz (low speed  
crystal oscillator) or 32 - 36 kHz (calibrated  
low power RC oscillator). The timer interval  
depend on the count value settings (64, 512,  
8192, and 32768 respectively) configured in  
WDCTL.INT.  
restarted  
WDCTL.EN=1.  
from  
0x000  
by  
setting  
The timer interval is set by the  
WDCTL.INT[1:0] bits. In timer mode, a  
reset will not be produced when the timer  
interval value is reached.  
If the counter reaches the selected timer  
interval value (watchdog timeout), the  
watchdog timer generates a reset signal for  
the system. If a watchdog clear sequence is  
performed before the counter reaches the  
13.13.3 Watchdog Mode and Power Modes  
In active mode and PM0 the WDT runs and  
resets the chip upon timeout. To avoid reset,  
SWRS055D  
Page 150 of 243  
C2510Fx / CC2511Fx  
the watchdog timer must be cleared before  
the counter expires.  
Power Mode  
Comments  
PM1  
The WDT runs but does not reset the chip upon timeout. If active mode is entered just as the timer  
expires, the chip will be reset immediately, hence the WDT needs to be cleared regularly (before  
timeout) also when in PM1.  
PM2 and PM3  
The WDT is disabled and reset, and the configuration is retained. The counter will start from 0x0000  
when active mode is entered from PM2 or PM3  
Table 54: Watchdog Mode and Power Modes  
13.13.4 Watchdog Timer Register  
WDCTL (0xC9) – Watchdog Timer Control  
Bit  
Name  
Reset  
R/W  
Description  
7:4  
CLR[3:0] 0000  
R/W  
Clear timer. When 1010 followed by 0101 is written to these bits, the counter is reset to  
0x0000. Note that the watchdog will only be cleared when 0101 is written within 0.5  
watchdog clock period after 1010 was written. Writing to these bits when EN is 0 has no  
effect.  
3
EN  
0
R/W  
Enable timer. When a 1 is written to this bit the timer is enabled and starts  
incrementing. Writing a 0 to this bit in timer mode stops the timer. Writing a 0 to this bit  
in watchdog mode has no effect.  
0
1
Timer disabled  
Timer enabled  
2
MODE  
0
R/W  
R/W  
Mode select.  
0
1
Watchdog mode  
Timer mode  
1:0  
INT[1:0]  
00  
Timer interval select. These bits select the timer interval defined as a given number of  
low speed oscillator periods.  
Timer interval  
# of periods  
32.768 kHz crystal  
oscillator  
32 kHz RCOSC  
34.667 kHz RCOSC  
(calibrated,  
CC2511Fx)  
(calibrated, CC2510Fx  
running @ 26 MHz)  
00  
01  
10  
11  
32768  
8192  
512  
1 s  
1.024 s  
0.256 s  
16 ms  
2 ms  
0.945 s  
0.25 s  
0.236 s  
15.625 ms  
1.953 ms  
14.769 ms  
1.846 ms  
64  
SWRS055D  
Page 151 of 243  
 
C2510Fx / CC2511Fx  
13.14 USART  
USART0 and  
communications interfaces that can be  
operated separately in either asynchronous  
UART mode or in synchronous SPI mode. The  
two USARTs are identical in functionality but  
are assigned to separate I/O pins. Refer to  
Section 13.4 on Page 88 for I/O configuration.  
USART1  
are  
serial  
When  
UxCSR.TX_BYTE bit is set to 1. The USARTx  
TX complete CPU interrupt flag  
the  
transmission  
ends,  
the  
(IRCON2.UTXxIF) is asserted when the  
UxDBUF register is ready to accept new  
transmit data, and an interrupt request is  
generated if IEN2.UTXxIE=1. This happens  
immediately after the transmission has been  
started, hence a new data byte value can be  
loaded into the data buffer while the byte is  
being transmitted.  
13.14.1  
UART Mode  
For asynchronous serial interfaces, the UART  
mode is provided. In UART mode the interface  
uses  
a
two-wire or four-wire interface  
13.14.1.2 UART Receive  
consisting of the pins RXD and TXD, and  
optionally RTS and CTS. The UART mode  
includes the following features:  
Data reception on the UART is initiated when a  
1 is written to the UxCSR.RE bit. The UART  
will then search for a valid start bit on the  
RXDx input pin and set the UxCSR.ACTIVEbit  
high. When a valid start bit has been detected  
the received byte is shifted into the receive  
register. The UxCSR.RX_BYTE bit and the  
CPU interrupt flag, TCON.URXxIF, is set to 1  
when the operation has completed and an  
8 or 9 data bits  
Odd, even, or no parity  
Configurable start and stop bit level  
Configurable LSB or MSB first transfer  
Independent receive and transmit  
interrupt  
IEN0.URXxIE=1.  
UxCSR.ACTIVE will go low.  
request  
is  
generated  
if  
time  
interrupts  
At  
the  
same  
Independent receive and transmit DMA  
triggers  
The received data byte is available through the  
UxDBUF register. When UxDBUF is read,  
UxCSR.RX_BYTE is cleared by hardware.  
Parity and framing error status  
The UART mode provides full duplex  
asynchronous  
transfers  
and  
the  
synchronization of bits in the receiver does not  
interfere with the transmit function. A UART  
byte transfer consists of a start bit, eight data  
bits, an optional ninth data or parity bit, and  
one or two stop bits. Note that the data  
transferred is referred to as a byte, although  
the data can actually consist of eight or nine  
bits.  
13.14.1.3 UART Hardware Flow Control  
Hardware flow control is enabled when the  
UxUCR.FLOW bit is set to 1. The RTS output  
will then be driven low when the receive  
register is empty and reception is enabled.  
Transmission of a byte will not occur before  
the CTS input go low.  
The UART operation is controlled by the  
USART x Control and Status registers, UxCSR,  
and the USART x UART Control register,  
UxUCR, where x is the USART number, 0 or 1.  
13.14.1.4 UART Character Format  
If the BIT9and PARITYbits in register UxUCR  
are set high, parity generation and detection is  
enabled. The parity is computed and  
transmitted as the ninth bit, and during  
reception, the parity is computed and  
compared to the received ninth bit. If there is a  
parity error, the UxCSR.ERR bit is set high.  
This bit is cleared when UxCSRis read.  
The UART mode is selected when  
UxCSR.MODEis set to 1.  
13.14.1.1 UART Transmit  
A UART transmission is initiated when the  
USART  
Receive/Transmit  
Data  
Buffer,  
The number of stop bits to be transmitted is set  
to one or two bits determined by the register bit  
UxUCR.SPB. The receiver will always check for  
one stop bit. If the first stop bit received during  
reception is not at the expected stop bit level, a  
framing error is signaled by setting register bit  
UxCSR.FE high. UxCSR.FE is cleared when  
UxDBUF register is written. The byte is  
transmitted on the TXDx output pin. The  
UxDBUFregister is double-buffered.  
The UxCSR.ACTIVE bit goes high when the  
byte transmission starts and low when it ends.  
SWRS055D  
Page 152 of 243  
C2510Fx / CC2511Fx  
asserted and the received data byte is  
available in UxDBUF. An interrupt request is  
generated if IEN0.URXxIE=1  
UxCSR is read. The receiver will check both  
stop bits when UxUCR.SPB=1. Note that the  
USARTx RX complete CPU interrupt flag,  
TCON.URXxIF, and the UxCSR.RX_BYTE bit  
will be asserted when the first stop bit is  
checked OK. If the second stop bit is not OK,  
the framing error bit, UxCSR.FE, will be  
asserted. This means that this bit is updated 1  
bit duration later than the 2 other above  
mentioned bits. The UxCSR.ACTIVEbit will be  
de-asserted after the second stop bit (if  
UxUCR.SPB=1).  
Since UxDBUF  
is double-buffered, the  
assertion of the USARTx TX complete CPU  
interrupt flag (IRCON2.UTXxIF) happens just  
after a transmission has been initiated, and is  
therefore not safe to use. Instead, the  
assertion of the UxCSR.TX_BYTEbit should be  
used as an indication on when new data can  
be written to UxDBUF. For DMA transfers this  
is handled automatically, but with the limitation  
that the UxGDR.CPHA bit must be set to zero.  
13.14.2  
SPI Mode  
For  
systems  
requiring  
setting  
UxGDR.CPHA=1,the DMA can not be used.  
This section describes the SPI mode of  
operation for synchronous communication. In  
SPI mode, the USART communicates with an  
external system through a 3-wire or 4-wire  
interface. The interface consists of the pins  
MOSI, MISO, SCK and SSN. Refer to Section  
13.4 on Page 88 for I/O configuration.  
Also note that the USARTx TX complete  
interrupt occurs approximately 1 byte period  
prior to the USARTx RX complete interrupt.  
In SPI master mode, only the MOSI, MISO,  
and SCK should be configured as peripherals  
(see Section 13.4.6.1 and Section 13.4.6.2). If  
the external slave requires a slave select  
signal (SSN) this can be implemented by using  
a general-purpose I/O pin and control from  
SW.  
The SPI mode includes the following features:  
3-wire (master) and 4-wire SPI interface  
Master and slave modes  
Configurable SCK polarity and phase  
Configurable LSB or MSB first transfer  
13.14.2.2 SPI Slave Operation  
An SPI byte transfer in slave mode is  
controlled by the external system. The data on  
the MOSI input is shifted into the receive  
register controlled by the serial clock SCK,  
which is an input in slave mode. At the same  
time the byte in the transmit register is shifted  
out onto the MISO output.  
The SPI mode is selected when UxCSR.MODE  
is set to 0.  
In SPI mode, the USART can be configured to  
operate either as an SPI master or as an SPI  
slave by setting UxCSR.SLAVE to 0 or 1,  
respectively.  
The UxCSR.ACTIVE bit goes high when the  
transfer starts and low when the transfer ends.  
When the transfer ends, the UxCSR.RX_BYTE  
bit is set to 1  
13.14.2.1 SPI Master Operation  
An SPI byte transfer in master mode is initiated  
when the UxDBUF register is written. The  
USART generates the SCK signal using the  
baud rate generator (see Section 13.14.3) and  
shifts the provided byte from the transmit  
register onto the MOSI output. At the same  
time the receive register shifts in the received  
byte from the MISO input pin.  
At the end of the transfer, the USARTx RX  
complete CPU interrupt flag, TCON.URXxIF, is  
asserted and the received data byte is  
available in UxDBUF. An interrupt request is  
generated if IEN0.URXxIE=1. The USARTx  
TX  
complete  
CPU  
interrupt  
flag,  
IRCON2.UTXxIF, is asserted at the start of  
the operation and an interrupt request is  
generated if IEN2.UTXxIE=1.  
The polarity and clock phase of the serial clock  
SCK is selected by UxGCR.CPOL and  
UxGCR.CPHA. The order of the byte transfer is  
selected by the UxGCR.ORDERbit.  
The expected polarity and clock phase of SCK  
is selected by UxGCR.CPOLand UxGCR.CPHA  
as shown in Figure 40. The expected order of  
the byte transfer is selected by the  
UxGCR.ORDER bit.  
The UxCSR.ACTIVE bit goes high when the  
transfer starts and low when the transfer ends.  
When the transfer ends, the UxCSR.TX_BYTE  
bit is set to 1.  
At the end of the transfer, the USARTx RX  
complete CPU interrupt flag, TCON.URXxIF, is  
SWRS055D  
Page 153 of 243  
C2510Fx / CC2511Fx  
13.14.2.3 Slave Select pin (SSN)  
end of the byte sent / received. If this is not the  
case, the next received byte will be corrupted.  
If there is a rising edge on SSN in the middle  
of a byte, this should be followed by a USART  
flush to avoid corruption of the following byte.  
When the USART is operating in SPI slave  
mode, a 4-wire interface is used with the Slave  
Select (SSN) pin as an input to the SPI (edge  
controlled). The SPI slave becomes active  
after a falling edge on SSN and will receive  
data on the MOSI input and send data on the  
MISO output. After a rising edge on SSN, the  
SPI slave is inactive and will not receive data.  
Note that the MISO output is not tri-stated  
when the SPI slave is inactive. Also note that  
the rising edge on SSN must be aligned to the  
In SPI master mode, the SSN pin is not used.  
When the USART operates as an SPI master  
and a slave select signal is needed by an  
external SPI slave device, a general purpose  
I/O pin should be used to implement the slave  
select signal function in software.  
Figure 40: SPI Dataflow  
13.14.3  
Baud Rate Generation  
where F is the system clock frequency set by  
the selected system clock source.  
An internal baud rate generator set up the  
UART baud rate when operating in UART  
mode and the SPI master clock frequency  
when operating in SPI mode.  
The register values required for standard baud  
rates are shown in Table 55 (F = 26 MHz) and  
Table 56 (24 MHz). The tables also give the  
difference in actual baud rate to standard baud  
rate value as a percentage error.  
The  
UxBAUD.BAUD_M[7:0]  
and  
UxGCR.BAUD_E[4:0] registers define the  
baud rate used for UART transfers and the  
rate of the serial clock (SCK) for SPI transfers.  
The baud rate is given by the following  
equation:  
The maximum baud rate for UART mode is  
F/16  
(UxGCR.BAUD_E[4:0]=16  
and  
UxBAUD.BAUD_M[7:0]=0).  
The maximum baud rate for SPI master mode  
(256 + BAUD _ M )2BAUD _ E  
and  
thus  
SCK  
frequency  
is  
F/8  
and  
Baudrate =  
F  
(UxGCR.BAUD_E[4:0]=17  
228  
SWRS055D  
Page 154 of 243  
C2510Fx / CC2511Fx  
For SPI slave mode the maximum baud rate is  
always F/8.  
UxBAUD.BAUD_M[7:0]=0).  
mode does not need to receive data, the  
If SPI master  
maximum  
(UxGCR.BAUD_E[4:0]=19  
UxBAUD.BAUD_M[7:0]=0). Setting higher  
baud rates than this will give erroneous results.  
SPI  
rate  
is  
F/2  
and  
Note that the baud rate must be configured  
before any other UART or SPI operations take  
place (the baud rate should never be changed  
when UxCSR.ACTIVEis asserted).  
Baud rate [bps]  
2400  
UxBAUD.BAUD_M UxGCR.BAUD_E Error (%)  
131  
131  
131  
34  
6
0.04  
0.04  
0.04  
0.13  
0.04  
0.13  
0.04  
0.13  
0.04  
0.13  
0.13  
4800  
7
9600  
8
14400  
9
19200  
131  
34  
9
28800  
10  
10  
11  
11  
12  
13  
38400  
131  
34  
57600  
76800  
131  
34  
115200  
230400  
34  
Table 55: Commonly used Baud Rate Settings for 26 MHz System Clock  
Baud rate [bps]  
2400  
UxBAUD.BAUD_M UxGCR.BAUD_E Error (%)  
163  
163  
163  
59  
6
0.08  
0.08  
0.09  
0.13  
0.10  
0.14  
0.10  
0.14  
0.10  
0.14  
0.14  
4800  
7
9600  
8
14400  
9
19200  
163  
59  
9
28800  
10  
10  
11  
11  
12  
13  
38400  
163  
59  
57600  
76800  
163  
59  
115200  
230400  
59  
Table 56: Commonly used Baud Rate Settings for 24 MHz System Clock  
13.14.4  
USART Flushing  
13.14.5  
USART Interrupts  
The current operation can be aborted  
(operation stopped and all data buffers  
Each USART has two interrupts. These are the  
USART RX complete interrupt  
(TCON.URXxIF) and the USART TX  
complete interrupt (IRCON2.UTXxIF). The  
interrupts are enabled by setting  
IEN0.URXxIE=1 and IEN2.UTXxIE=1,  
x
cleared)  
by  
setting  
x
UxUCR.FLUSH=1.Asserting the FLUSH bit  
should either be aligned with USART interrupts  
or a wait time of one bit duration (at current  
baud rate) should be added after setting the bit  
to 1 before accessing the USART registers.  
respectively. Please see the previous sections  
on how the interrupt flags are asserted in the  
different modes of operation (UART RX, UART  
TX, SPI master, and SPI Slave).  
SWRS055D  
Page 155 of 243  
C2510Fx / CC2511Fx  
The interrupt enables and flags are  
summarized below.  
buffer, UxDBUF, as source or destination  
address.  
Interrupt enable bits:  
Note: For systems requiring setting  
UxGDR.CPHA=1, the DMA can not be  
used.  
USART0 RX : IEN0.URX0IE  
USART1 RX : IEN0.URX1IE  
USART0 TX : IEN2.UTX0IE  
USART1 TX : IEN2.UTX1IE  
Interrupt flags:  
Refer to Table 51 on Page 105 for an overview  
of the DMA triggers.  
13.14.7  
USART Registers  
The registers for the USART are described in  
this section. For each USART there are five  
registers consisting of the following (x refers to  
USART number i.e. 0 or 1):  
USART0 RX : TCON.URX0IF  
USART1 RX : TCON.URX1IF  
USART0 TX : IRCON2.UTX0IF  
USART1 TX : IRCON2.UTX1IF  
UxCSRUSART x Control and Status  
UxUCRUSART x UART Control  
UxGCRUSART x Generic Control  
13.14.6  
USART DMA Triggers  
There are two DMA triggers associated with  
each USART (URX0, UTX0, URX1, and  
UTX1). The DMA triggers are activated by RX  
complete and TX complete events i.e. the  
same events that might generate USART  
interrupt requests. A DMA channel can be  
configured using a USART Receive/transmit  
UxDBUF USART x Receive/Transmit  
Data Buffer  
UxBAUDUSART x Baud Rate Control  
SWRS055D  
Page 156 of 243  
C2510Fx / CC2511Fx  
U0CSR (0x86) – USART 0 Control and Status  
Bit  
Name  
Reset  
R/W  
Description  
7
MODE  
0
R/W  
USART 0 mode select  
0
1
SPI mode  
UART mode  
6
5
4
RE  
0
0
0
R/W  
R/W  
R/W0  
UART 0 receiver enable  
0
1
Receiver disabled  
Receiver enabled  
SLAVE  
FE  
SPI 0 master or slave mode select  
0
1
SPI master  
SPI slave  
UART 0 framing error status  
0
1
No framing error detected  
Byte received with incorrect stop bit level  
Note: TCON.URX0IF and U0CSR.RX_BYTEbit will be asserted when  
the first stop bit is checked OK, meaning that if two stop bits are sent and  
the second stop bit is not OK, this bit is asserted 1 bit duration later than  
the 2 other above mentioned bits.  
3
2
1
0
ERR  
0
0
0
0
R/W0  
R/W0  
R/W0  
R
UART 0 parity error status  
0
1
No parity error detected  
Byte received with parity error  
RX_BYTE  
TX_BYTE  
ACTIVE  
Receive byte status  
0
1
No byte received  
Received byte ready  
Transmit byte status  
0
1
Byte not transmitted  
Last byte written to Data Buffer register transmitted  
USART 0 transmit/receive active status  
0
1
USART 0 idle  
USART 0 busy in transmit or receive mode  
SWRS055D  
Page 157 of 243  
 
C2510Fx / CC2511Fx  
U0UCR (0xC4) – USART 0 UART Control  
Bit  
Name  
Reset  
R/W  
Description  
7
FLUSH  
0
R0/W1 Flush unit. When set to 1, this event will immediately stop the current  
operation and return the unit to idle state.  
This bit will be 0 when returning from PM2 and PM3  
6
5
FLOW  
0
0
R/W  
R/W  
UART 0 hardware flow control enable. Selects use of hardware flow control  
with RTS and CTS pins  
0
1
Flow control disabled  
Flow control enabled  
D9  
UART 0 data bit 9 contents. This value is used when 9 bit transfer is  
enabled. When parity is disabled the value written to D9 is transmitted as the  
9
th bit when BIT9=1.  
If parity is enabled then this bit sets the parity level as follows.  
0
1
Even parity  
Odd parity  
4
3
2
1
0
BIT9  
0
0
0
1
0
R/W  
R/W  
R/W  
R/W  
R/W  
UART 0 9-bit data enable  
0
1
8 bits transfer  
9 bits transfer (content of the 9th bit is given by D9and PARITY.)  
PARITY  
SPB  
UART 0 parity enable  
0
1
Parity disabled  
Parity enabled  
UART 0 number of stop bits  
0
1
1 stop bit  
2 stop bits  
STOP  
START  
UART 0 stop bit level  
0
1
Low stop bit  
High stop bit  
UART 0 start bit level. The polarity of the idle line is assumed to be the  
opposite of the selected start bit level.  
0
1
Low start bit  
High start bit  
SWRS055D  
Page 158 of 243  
 
C2510Fx / CC2511Fx  
U0GCR (0xC5) – USART 0 Generic Control  
Bit  
Name  
Reset  
R/W  
Description  
7
CPOL  
0
R/W  
SPI 0 clock polarity  
0
1
Negative clock polarity (SCK low when idle)  
Positive clock polarity (SCK high when idle)  
6
CPHA  
0
R/W  
R/W  
R/W  
SPI 0 clock phase  
0
1
Data centered on first edge of SCK period  
Data centered on second edge of SCK period  
5
ORDER  
0
Bit order for transfers  
0
1
LSB first  
MSB first  
4:0  
BAUD_E[4:0]  
0x00  
Baud rate exponent value. BAUD_Ealong with BAUD_Mdecides the UART 0  
baud rate and the SPI 0 clock (SCK) frequency  
U0DBUF (0xC1) – USART 0 Receive/Transmit Data Buffer  
Bit  
Name  
Reset  
R/W  
Description  
7:0  
DATA[7:0]  
0x00  
R/W  
USART 0 receive and transmit data buffer. Writing data to U0DBUFplaces  
the data into the internal transmit buffer. Reading U0DBUFreturns the  
contents of the receive buffer.  
U0BAUD (0xC2) – USART 0 Baud Rate Control  
Bit  
Name  
Reset  
R/W  
Description  
7:0  
BAUD_M[7:0]  
0x00  
R/W  
Baud rate mantissa value. BAUD_Malong with BAUD_Edecides the UART 0  
baud rate and the SPI 0 clock (SCK) frequency  
SWRS055D  
Page 159 of 243  
 
 
 
C2510Fx / CC2511Fx  
U1CSR (0xF8) – USART 1 Control and Status  
Bit  
Name  
Reset  
R/W  
Description  
7
MODE  
0
R/W  
USART 1 mode select  
0
1
SPI mode  
UART mode  
6
5
4
RE  
0
0
0
R/W  
R/W  
R/W0  
UART 1 receiver enable  
0
1
Receiver disabled  
Receiver enabled  
SLAVE  
FE  
SPI 1 master or slave mode select  
0
1
SPI master  
SPI slave  
UART 1 framing error status  
0
1
No framing error detected  
Byte received with incorrect stop bit level  
Note that TCON.URX1IF and U1CSR.RX_BYTEbit will be asserted  
when the first stop bit is checked OK, meaning that if two stop bits are  
sent and the second stop bit is not OK, this bit is asserted 1 bit duration  
later than the 2 other above mentioned bits.  
3
2
1
0
ERR  
0
0
0
0
R/W0  
R/W0  
R/W0  
R
UART 1 parity error status  
0
1
No parity error detected  
Byte received with parity error  
RX_BYTE  
TX_BYTE  
ACTIVE  
Receive byte status  
0
1
No byte received  
Received byte ready  
Transmit byte status  
0
1
Byte not transmitted  
Last byte written to Data Buffer register transmitted  
USART 1 transmit/receive active status  
0
1
USART 1 idle  
USART 1 busy in transmit or receive mode  
SWRS055D  
Page 160 of 243  
 
C2510Fx / CC2511Fx  
U1UCR (0xFB) – USART 1 UART Control  
Bit  
Name  
Reset  
R/W  
Description  
7
FLUSH  
0
R0/W1 Flush unit. When set to 1, this event will immediately stop the current  
operation and return the unit to idle state.  
This bit will be 0 when returning from PM2 and PM3  
6
5
FLOW  
0
0
R/W  
R/W  
UART 1 hardware flow control enable. Selects use of hardware flow control  
with RTS and CTS pins  
0
1
Flow control disabled  
Flow control enabled  
D9  
UART 1 data bit 9 contents. This value is used when 9 bit transfer is  
enabled. When parity is disabled the value written to D9 is transmitted as the  
9
th bit when BIT9=1.  
If parity is enabled then this bit sets the parity level as follows.  
0
1
Even parity  
Odd parity  
4
3
2
1
0
BIT9  
0
0
0
1
0
R/W  
R/W  
R/W  
R/W  
R/W  
UART 1 9-bit data enable  
0
1
8 bits transfer  
9 bits transfer (content of the 9th bit is given by D9and PARITY.)  
PARITY  
SPB  
UART 1 parity enable  
0
1
Parity disabled  
Parity enabled  
UART 1 number of stop bits  
0
1
1 stop bit  
2 stop bits  
STOP  
START  
UART 1 stop bit level  
0
1
Low stop bit  
High stop bit  
UART 1 start bit level. The polarity of the idle line is assumed to be the  
opposite of the selected start bit level.  
0
1
Low start bit  
High start bit  
SWRS055D  
Page 161 of 243  
 
C2510Fx / CC2511Fx  
U1GCR (0xFC) – USART 1 Generic Control  
Bit  
Name  
Reset  
R/W  
Description  
7
CPOL  
0
R/W  
SPI 1 clock polarity  
0
1
Negative clock polarity (SCK low when idle)  
Positive clock polarity (SCK high when idle)  
6
CPHA  
0
R/W  
R/W  
R/W  
SPI 1 clock phase  
0
1
Data centered on first edge of SCK period  
Data centered on second edge of SCK period  
5
ORDER  
0
Bit order for transfers  
0
1
LSB first  
MSB first  
4:0  
BAUD_E[4:0]  
0x00  
Baud rate exponent value. BAUD_Ealong with BAUD_Mdecides the UART 1  
baud rate and the SPI 1 clock (SCK) frequency  
U1DBUF (0xF9) – USART 1 Receive/Transmit Data Buffer  
Bit  
Name  
Reset  
R/W  
Description  
7:0  
DATA[7:0]  
0x00  
R/W  
USART 1 receive and transmit data buffer. Writing data to U1DBUFplaces  
the data into the internal transmit buffer. Reading U1DBUFreturns the  
contents of the receive buffer.  
U1BAUD (0xFA) – USART 1 Baud Rate Control  
Bit  
Name  
Reset  
R/W  
Description  
7:0  
BAUD_M[7:0]  
0x00  
R/W  
Baud rate mantissa value. BAUD_Malong with BAUD_Edecides the UART 1  
baud rate and the SPI 1 clock (SCK) frequency  
SWRS055D  
Page 162 of 243  
 
 
 
C2510Fx / CC2511Fx  
13.15 I2S  
Please see Section 13.4.6.6 for details on I/O  
pin mapping for the I2S interface. When the  
module is in master mode, it drives the SCK  
and WS lines. When the I2S interface is in slave  
mode, these lines are driven by an external  
master. The data on the serial data lines is  
transferred one bit per SCK cycle, most  
significant bit first. The WS signal selects the  
channel of the current word transfer (left = 0,  
right = 1). It also determines the length of each  
word. There is a transition on the WS line one  
bit time before the first word is transferred and  
before the last bit of each word. Figure 41  
shows the I2S signaling. Only a single serial  
data signal is shown in this figure. The SD  
signal could be the RX or TX signal depending  
on the direction of the data.  
The CC2510Fx/CC2511Fx provides an industry  
standard I2S interface. The I2S interface can be  
used to transfer digital audio samples between  
the CC2510Fx/CC2511Fx and an external audio  
device.  
The I2S interface can be configured to operate  
as master or slave and may use mono as well  
as stereo samples. When mono mode is  
enabled, the same audio sample will be used  
for both channels. Both full and half duplex is  
supported and automatic µ-Law compression  
and expansion can be used.  
The I2S interface consists of 4 signals:  
Continuous Serial Clock (SCK)  
Word Select (WS)  
Serial Data In (RX)  
Serial Data Out (TX)  
SCK  
WS  
MSB  
LSB  
MSB  
LSB  
MSB  
SD  
SAMPLE n,  
SAMPLE n+1,  
SAMPLE n-1,  
LEFT CHANNEL  
RIGHT CHANNEL  
RIGHT CHANNEL  
Figure 41: I2S Digital Audio Signaling  
I2S RX: I2SCFG0.RXIEN  
I2S TX: I2SCFG0.TXIEN  
Interrupt flags:  
13.15.1  
Enabling I2S  
The I2SCFG0.ENAB bit must be set to 1 to  
enable the I2S transmitter/receiver. However,  
when I2SCFG0.ENAB is 0, the I2S can still be  
I2S RX: I2SSTAT.RXIRQ  
I2S TX: I2SSTAT.TXIRQ  
used  
as  
a
stand-alone  
µ-Law  
compression/expansion engine. Refer to  
Section 13.15.12 on Page 166 for more details  
about this.  
The TX interrupt flag I2SSTAT.TXIRQ is  
asserted together with IRCON2.I2STXIF  
when the internal TX buffer is empty and the  
I2S fetches the new data previously written to  
the I2SDATH:I2SDATL registers. The TX  
interrupt flag, I2SSTAT.TXIRQ, is cleared  
when I2SDATHregister is written. An interrupt  
13.15.2  
The I2S has two interrupts:  
I2S Interrupts  
I2S RX complete interrupt (I2SRX)  
I2S TX complete interrupt (I2STX)  
The I2S interrupt enable bits are found in the  
I2SCFG0 register. The interrupt flags are  
located in the I2SSTAT register. The interrupt  
enables and flags are summarized below.  
request  
is  
only  
generated  
when  
I2SCFG0.TXIEN and IEN2.I2STXIE are  
both set to 1.  
The RX interrupt flag I2SSTAT.RXIRQ is  
asserted together with TCON.I2SRXIF when  
the internal RX buffer is full and the contents of  
Interrupt enable bits:  
SWRS055D  
Page 163 of 243  
 
C2510Fx / CC2511Fx  
the RX buffer is copied to the pair of internal  
data registers that can be read from the  
Thus, when debugging an application,  
software may check for underflow/overflow  
when an interrupt is generated or when the  
application completes. The TXUNF / RXOVF  
flags should be cleared in software.  
I2SDATH:I2SDATL  
registers.  
The  
RX  
interrupt flag, I2SSTAT.RXIRQ, is cleared  
when the I2SDATH register is read. An  
interrupt request is only generated when  
I2SCFG0.RXIEN and IEN0.I2SRXIE are  
both set to 1.  
13.15.5  
Writing a Word (TX)  
When each sample fits into a single byte or µ-  
Law compressed samples (always 8 bits) are  
written, i.e. µ-Law expansion is enabled  
(I2SCFG0.ULAWE=1), only the I2SDATH  
register needs to be written.  
Notice that interrupts will also be generated if  
the corresponding RXIRQ or TXIRQ flags are  
set from software, given that the interrupts are  
enabled.  
The I2S shares interrupt vector with USART 1,  
and the ISR must take this into account if both  
modules are used. Refer to Section 11.5 on  
Page 58 for more details about interrupts.  
When each sample is more than 8 bits the low  
byte must be written to the I2SDATL register  
before the high byte is written to the I2SDATH  
register, hence writing the I2SDATH register  
indicates the completion of the write operation.  
When the I2S is configured to send stereo, i.e.  
I2SCFG0.TXMONO is 0, the I2SSTAT.TXLR  
flag can be used to determine whether the left-  
or right-channel sample is to be written to the  
data registers.  
13.15.3  
I2S DMA Triggers  
There are two DMA triggers associated with  
the I2S interface, I2SRXand I2STX. The DMA  
triggers are activated by RX complete and TX  
complete events, i.e. the same events that can  
generated the I2S interrupt requests. The DMA  
triggers are not masked by the interrupt enable  
bits, I2SCFG0.RXIEN and I2SCFG0.TXIEN,  
hence a DMA channel can be configured to  
use the I2S receive/transmit data registers,  
I2SDATH:I2SDATL, as source or destination  
address and let RX and TX complete trigger  
the DMA.  
13.15.6  
Reading a Word (RX)  
If each sample fits into a single byte or if µ-Law  
compression is enabled (I2SCFG0.ULAWC=1),  
only the I2SDATH register needs to be read.  
When each sample is more than 8 bits the low  
byte must be read from the I2SDATL register  
before the high byte is being read from the  
I2SDATH register, hence reading from the  
I2SDATH register indicates the completion of  
the read operation.  
Notice that the DMA triggers I2SRX and  
ADC_CH6 share the same DMA trigger  
number (# 27) in the same way as I2STX and  
ADC_CH7 share DMA trigger number 28. This  
means that I2SRX can not be used together  
with ADC_CH6 and I2STX can not be used  
together with ADC_CH7. On the CC2511Fx ADC  
channels 6 and 7 cannot be used since P0_6  
and P0_7 I/O pins are not available.  
When the I2S is configured to receive stereo,  
i.e.  
I2SCFG0.RXMONO  
is  
0,  
the  
I2SSTAT.RXLRflag can be used to determine  
whether the sample currently in the data  
registers is a left- or right-channel sample.  
Refer to Table 51 on Page 105 for an overview  
of the DMA triggers.  
13.15.7  
Full vs. Half Duplex  
The I2S interface supports full duplex and half  
duplex operation.  
13.15.4  
Underflow/Overflow  
If the I2S attempts to read from the internal TX  
buffer when it is empty, an underflow condition  
occurs. The I2S will then continue to read from  
In full duplex both the RX and TX lines will be  
used. Both the I2SCFG0.TXIEN and  
I2SCFG0.RXIENinterrupt enable bits must be  
set to 1 if interrupts are used and both DMA  
triggers I2STX and I2SRX must be used.  
the  
data  
in  
the  
TX  
buffer,  
and  
I2SSTAT.TXUNFwill be asserted.  
If the I2S attempts to write to the internal RX  
buffer while it is full, an overflow condition  
occurs. The contents of the RX buffer will be  
overwritten and the I2SSTAT.RXOVF flag will  
be asserted.  
When half duplex is used only one of the RX  
and TX lines are typically connected. Only the  
appropriate interrupt flag should be set and  
only one of the DMA triggers should be used.  
SWRS055D  
Page 164 of 243  
C2510Fx / CC2511Fx  
13.15.8  
Master Mode  
The value of the numerator is set in the  
I2SCLKF2.NUM[14:8]:I2SCLKF1.NUM[7:0]  
The I2S is configured as a master device by  
setting I2SCFG0.MASTER to 1. When the  
module is in master mode, it drives the SCK  
and WS lines.  
registers and the denominator value is set in  
I2SCLKF2.DENOM[8]:I2SCLKF0.DENOM[7:0].  
Please note that to stay within the timing  
requirements of the I2S specification [6], a  
minimum value of 3.35 should be used for the  
(NUM/ DENOM) fraction.  
13.15.8.1 Clock Generation  
When the I2S is configured as master, the  
frequency of the SCK clock signal must be set  
to match the sample rate. The clock frequency  
must be set before master mode is enabled.  
The fractional divider is made such that most  
normal sample rates should be supported for  
most normal word sizes with a 24 MHz system  
clock frequency (CC2511Fx). Examples of  
supported configurations for a 24 MHz system  
clock are given in Table 57. Table 58 shows the  
configuration values for a 26 MHz system clock  
frequency. Notice that the generated I2S  
frequency is not exact for the 44.1 kHz, 16 bits  
word size configuration at 26 MHz. The  
numbers are calculated using the following  
formulas, where Fs is the sample rate and W is  
the word size:  
SCK is generated by dividing the system clock  
using a fractional clock divider. The amount of  
division is given by the 15 bit numerator, NUM ,  
and 9-bit denominator, DENOM, as shown in the  
following formula:  
Fclk  
NUM  
Fsck  
=
2(  
)
DENOM  
Fsck  
Fs =  
NUM  
DENOM  
2*W  
where  
> 3.35  
Fclk  
DENOM 4*W * Fs  
NUM  
Fclk is the system clock frequency and Fsck is the  
CLKDIV=  
=
I2S SCK sample clock frequency.  
I2SCLKF2 I2SCLKF1 I2SCLKF0  
Fsck (kHz)  
Word Size (W)  
CLKDIV  
93.75  
Exact  
Yes  
8
8
0x01  
0x01  
0x04  
0x00  
0x77  
0x77  
0xE2  
0x7D  
0x04  
0x08  
0x93  
0x10  
8
16  
16  
16  
46.875  
8.503401  
7.8125  
Yes  
44.1  
48  
Yes  
Yes  
Table 57: Example I2S Clock Configurations (CC2511Fx, 24 MHz)  
I2SCLKF2 I2SCLKF1 I2SCLKF0  
Fsck (kHz)  
Word Size (W)  
CLKDIV  
101.5625  
50.78125  
9.21201  
8.46354  
Exact  
Yes  
Yes  
No  
8
8
0x06  
0x06  
0x8A  
0x06  
0x59  
0x59  
0x2F  
0x59  
0x10  
0x20  
0x1B  
0xC0  
8
16  
16  
16  
44.1  
48  
Yes  
Table 58: Example I2S Clock Configurations (CC2510Fx, 26 MHz)  
13.15.8.2 Word Size  
I2SCFG1.WORDS[4:0] bits. Setting the word  
size to a value of 17 or more causes the I2S to  
pad each word with 0’s in the least significant  
bits since the data registers provide maximum  
16 bits. This feature allows samples to be sent  
The word size must be set before master  
mode is enabled. The word size is the number  
of bits used for each sample and can be set to  
a value between 1 and 33. To set the word  
size, write word size  
1
to the  
SWRS055D  
Page 165 of 243  
 
 
C2510Fx / CC2511Fx  
to an I2S device that takes a higher resolution  
than 16 bits.  
Three triggers can be used to copy/clear the  
word counter.  
If the size of the received samples exceeds 16  
bits, only the 16 most significant bits will be put  
in the data registers and the remaining low  
order bits will be discarded.  
USB SOF: USB Start of Frame. Occurs  
every ms (CC2511Fx only)  
T1_CH0: Timer 1, compare, channel 0  
IOC_1: IO pin input transition (P1_3)  
13.15.9  
Slave Mode  
Which trigger to use is configured through the  
TRIGNUMfield in the I2SCFG1register. When  
the I2S is configured not to use any trigger  
(I2SCFG1.TRIGNUM=0), the word counter can  
only be copied/cleared from software.  
The I2S is configured as a slave device by  
setting I2SCFG0.MASTERto 0. When in slave  
mode the SCK and WS signals are generated  
by an external I2S master and are inputs to the  
I2S interface.  
The word counter will saturate if it reaches its  
maximum value. Software should configure the  
trigger-interval and sample-rate to ensure this  
never happens.  
13.15.9.1 Word Size  
When the I2S operates in slave mode, the word  
size is determined by the master that  
generates the WS signal.  
The I2S will provide bits from the internal 16-bit  
buffer until the buffer is empty. If the buffer  
becomes empty and the master still requests  
more bits, the I2S will send 0’s (low order bits).  
CC2511Fx: The word counter is typically used to  
calculate the average sample rate over a long  
period of time (e.g. 1 second) needed by  
adaptive isochronous USB endpoints. The  
USB SOF event must then be used as trigger.  
13.15.12 µ-Law Compression and Expansion  
If more than 16 bits are being received, the low  
order bits are discarded.  
The I2S interface can be configured to perform  
µ-Law compression and expansion. µ-Law  
compression is enabled by setting the  
13.15.10 Mono  
The I2S also supports mono audio samples.  
I2SCFG0.ULAWC bit to  
1
and µ-Law  
expansion is enabled by setting the  
I2SCFG0.ULAWEbit to 1.  
To receive mono samples, I2SCFG0.RXMONO  
should be set to 1. Words from the right  
channel will then not be read into the data  
registers. This feature is included because  
some mono devices repeat their audio data in  
both channels and the left channel is the  
default mono channel.  
When the I2S interface is enabled, i.e. the  
I2SCFG0.ENABbit is 1, and µ-Law expansion  
is enabled, every byte of µ-Law compressed  
data written to the I2SDATH register is  
expanded to a 16-bit sample before being  
transmitted. When the I2S interface is enabled  
and µ-Law compression is enabled each  
sample received is compressed to an 8-bit µ-  
Law sample and put in the I2SDATHregister.  
When the I2S interface is disabled, i.e. the  
I2SCFG0.ENAB bit is 0, it can still be used to  
perform µ-Law compression/expansion for  
other resources in the system. To perform an  
expansion, I2SCFG0.ULAWE must be 1 and  
I2SCFG0.ULAWC must be 0 before writing a  
byte of compressed data to the I2SDATH  
register. The expansion takes one clock cycle  
to perform, and then the result can be read  
from the I2SDATH:I2SDATL registers.  
To send mono samples, I2SCFG0.TXMONO  
should be set to 1. Each word will then be  
repeated in both channels before a new word  
is fetched from the data registers. This is to  
enable sending a mono audio signal to a  
stereo audio sink device.  
13.15.11 Word Counter  
The I2S contains a 10-bit word counter, which  
is counting transitions on the WS line. The  
counter can be cleared by triggers or by writing  
to the I2SWCNT register. When a trigger  
occurs, or a value is written to I2SWCNT, the  
current value of the word counter is copied into  
the  
To perform a compression I2SCFG0.ULAWE  
must be 01 and I2SCFG0.ULAWC must be 1.  
To start the compression, an un-compressed  
16-bit sample should be written to the  
I2SSTAT.WCNT[9:8]:I2SWCNT.WCNT[7:0]regi  
sters and the word counter is cleared.  
I2SDATH:I2SDATL  
registers.  
The  
compression takes one clock cycle to perform,  
SWRS055D  
Page 166 of 243  
 
C2510Fx / CC2511Fx  
and then the result can be read from the  
I2SDATH register.  
in XDATA memory space in the region 0xDF40-  
0xDF48. Table 33 on Page 49 gives an  
overview of register addresses while the tables  
in this section describe each register. Notice  
that the reset values for the registers reflect a  
configuration with 16-bit stereo samples and  
44.1 kHz sample rate. The I2S is not enabled at  
reset.  
Only one of the flags I2SCFG0.ULAWC and  
I2SCFG0.ULAWE should be set to 1 when the  
I2SCFG0.ENABbit is 0.  
13.15.13 I2S Registers  
This section describes all the registers used for  
I2S control and status. The I2S registers reside  
0xDF40: I2SCFG0 – I2S Configuration Register 0  
Bit  
Field Name  
Reset  
R/W  
Description  
Transmit interrupt enable  
7
TXIEN  
0
R/W  
0
1
Interrupt disabled  
Interrupt enabled  
6
5
RXIEN  
0
0
R/W  
R/W  
Receive interrupt enable  
0
1
Interrupt disabled  
Interrupt enabled  
ULAWE  
µ-Law expansion enable  
0
1
Expansion disabled  
Expansion enabled  
ENAB=0  
ENAB=1  
Enable expansion of data to transmit  
Expand data written to I2SDATH  
4
ULAWC  
0
R/W  
µ-Law compression enable  
0
1
Compression disabled  
Compression enabled  
ENAB=0  
ENAB=1  
Enable compression of data received  
Compress data written to I2SDATH:I2SDATL  
3
2
TXMONO  
RXMONO  
0
0
R/W  
R/W  
TX mono enable  
0
1
Stereo mode  
Each sample of audio data will be repeated in both channels before a new  
sample is fetched. This is to enable sending a mono signal to a stereo audio sink  
device.  
RX mono enable  
0
1
Stereo mode  
Data from the right channel will be discarded, i.e. not be read into the data  
registers. This feature is included because some mono devices repeat their  
audio data in both channels and left is the default mono channel.  
1
0
MASTER  
ENAB  
0
0
R/W  
R/W  
Master mode enable  
0
Slave (CLK and WS are read from the pads)  
1
Master (generate the CLK and WS)  
I2S interface enable  
0
1
Disable (I2S can be used as a µ-Law compression/expansion unit)  
Enable  
SWRS055D  
Page 167 of 243  
 
 
C2510Fx / CC2511Fx  
0xDF41: I2SCFG1 – I2S Configuration Register 1  
Bit  
Field Name  
Reset  
R/W  
Description  
7:3  
WORDS[4:0]  
01111 R/W  
This field gives the word size – 1. The word size is the bit-length of one sample for  
one channel. Used to generate the WS signal when in master mode.  
Reset value 01111 corresponds to 16 bit samples.  
Word counter copy / clear trigger  
2:1  
TRIGNUM[1:0]  
00  
R/W  
00  
01  
10  
11  
No trigger. Counter copied / cleared by writing to the I2SWCNTregister  
USB SOF (CC2511Fx only)  
IOC_1 (P1_3)  
T1_CH0  
0
IOLOC  
0
R/W  
The pin locations for the I2S signals. This bit selects between the two alternative pin  
mapping alternatives. Refer to Table 50 on Page 90 for an overview of pin locations.  
0
Alt. 1 in Table 50 is used  
1
Alt. 2 in Table 50 is used  
Note: The I2S interface will have precedence in cases where other peripherals  
(except for the debug interface) are configured to be on the same location.  
0xDF42: I2SDATL – I2S Data Low Byte  
Bit  
Field Name  
Reset  
R/W  
Description  
7:0  
I2SDAT[7:0]  
0x00  
R/W  
Data register low byte.  
If this register is not written between two writes to the I2SDATHregister, the low byte  
of the TX register will be cleared.  
Note: This register will be in its reset state when returning to active mode from PM2  
and PM3.  
0xDF43: I2SDATH – I2S Data High Byte  
Bit  
Field Name  
Reset  
R/W  
Description  
7:0  
I2SDAT[15:8]  
0x00  
R/W  
Data register high byte.  
When this register is read, I2SSTAT.RXIRQ is de-asserted and the RX buffer is  
considered empty. When this register is written, I2SSTAT.TXIRQ is de-asserted and  
the TX buffer is considered full.  
Note: This register will be in its reset state when returning to active mode from PM2  
and PM3.  
0xDF44: I2SWCNT – I2S Word Count Register  
Bit  
Field Name  
Reset  
R/W  
Description  
7:0  
WCNT[7:0]  
0x00  
R/W  
This register contains the 8 low order bits of the 10-bit internal word counter at the  
time of the last trigger. If this register is written (any value),the value of the internal  
word counter is copied into this register and I2SSTAT.WCNT[9:8],and the internal  
word counter is cleared.  
Refer to Section 13.15.11 for details about how to use this register.  
SWRS055D  
Page 168 of 243  
 
 
 
 
 
 
C2510Fx / CC2511Fx  
0xDF45: I2SSTAT – I2S Status Register  
Bit  
Field Name  
Reset  
R/W  
Description  
7
6
5
TXUNF  
RXOVF  
TXLR  
0
0
0
R/W  
R/W  
R
TX buffer underflow. This bit must be cleared by software  
Rx buffer overflow. This bit must be cleared by software  
0
1
0
1
Left channel should be placed in transmit buffer  
Right channel should be placed in transmit buffer  
Left channel currently in receive buffer  
4
3
RXLR  
0
0
R
Right channel currently in receive buffer  
TXIRQ  
R/W1  
H0  
TX interrupt flag. This bit is cleared by hardware when the I2SDATH register is  
written.  
0
1
Interrupt not pending  
Interrupt pending  
2
RXIRQ  
0
R/W1  
H0  
RX Interrupt flag. This is cleared by hardware when the I2SDATH register is read.  
0
1
Interrupt not pending  
Interrupt pending  
1:0  
WCNT[9:8]  
00  
R
Upper 2 bits of the 10-bit internal word counter at the time of the last trigger  
0xDF46: I2SCLKF0 – I2S Clock Configuration Register 0  
Bit  
Field Name  
Reset  
R/W  
Description  
7:0  
DENOM[7:0]  
0x93  
R/W  
The clock division denominator low bits  
0xDF47: I2SCLKF1 – I2S Clock Configuration Register 1  
Bit  
Field Name  
Reset  
R/W  
Description  
7:0  
NUM[7:0]  
0xE2  
R/W  
Clock division numerator low bits  
0xDF48: I2SCLKF2 – I2S Clock Configuration Register 2  
Bit  
Field Name  
Reset  
R/W  
Description  
7
DENOM[8]  
NUM[14:8]  
0
R/W  
R/W  
Clock division denominator high bits  
Clock division numerator high bits  
6:0  
0x04  
SWRS055D  
Page 169 of 243  
 
 
 
 
C2510Fx / CC2511Fx  
13.16 USB Controller  
firmware. The firmware must be able to reply  
correctly to all standard requests from the USB  
host and work according to the protocol  
implemented in the driver on the PC.  
Note: The USB controller is only available  
on the CC2511Fx.  
The CC2511Fx contains a Full-Speed USB 2.0  
compatible  
USB  
controller  
for  
serial  
The USB Controller has the following features:  
communication with a PC or other equipment  
with USB host functionality.  
Full-Speed operation (up to 12 Mbps)  
5 endpoints (in addition to endpoint 0)  
that can be used as IN, OUT, or IN/OUT  
and can be configured as bulk/interrupt  
or isochronous.  
Note: This section will focus on describing  
the functionality of the USB controller, and  
it is assumed that the reader has a good  
understanding of USB and is familiar with  
the terms and concepts used. Refer to the  
Universal Serial Bus Specification for  
details [5].  
1 KB SRAM FIFO available for storing  
USB packets  
Endpoints supporting packet sizes from  
Standard USB nomenclature is used  
regarding IN and OUT. I.e., IN is always  
into the host (PC) and OUT is out of the  
host (into the CC2511Fx)  
8 – 512 bytes  
Support for double buffering of USB  
packets  
Figure 42 shows a block diagram of the USB  
controller. The USB PHY is the physical  
interface with input and output drivers. The  
USB SIE is the Serial Interface Engine which  
controls the packet transfer to/from the  
endpoints. The USB controller is connected to  
the rest of the system through the Memory  
Arbiter.  
The USB controller monitors the USB bus for  
relevant activity and handles packet transfers.  
The CC2511Fx will always operate as a slave on  
the USB bus and responds only on requests  
from the host (a packet can only be sent (or  
received) when the USB host sends a request  
in the form of a token).  
Appropriate response to USB interrupts and  
loading/unloading  
of  
packets  
into/from  
endpoint FIFOs is the responsibility of the  
SWRS055D  
Page 170 of 243  
C2510Fx / CC2511Fx  
USB Controller  
EP0  
EP1  
DP  
EP2  
Memory  
USB PHY  
USB SIE  
Arbiter  
EP3  
DM  
EP4  
EP5  
1 KB  
SRAM  
(FIFOs)  
Figure 42: USB Controller Block Diagram  
13.16.1  
48 MHz Clock  
13.16.2  
USB Enable  
A 48 MHz external crystal must be used for the  
USB Controller to operate correctly. This 48  
MHz clock is divided by two internally to  
generate a maximum system clock frequency  
of 24 MHz. It is important that the crystal  
oscillator is stable before the USB Controller is  
accessed. See 13.1.5.1 for details on how to  
set up the crystal oscillator.  
The USB Controller must be enabled before it  
is used. This is performed by setting the  
SLEEP.USB_EN  
bit  
to  
1.  
Setting  
SLEEP.USB_EN to 0 will reset the USB  
controller.  
13.16.3  
USB Interrupts  
There are 3 interrupt flag registers with  
associated interrupt enable mask registers.  
Interrupt Flag  
Description  
Associated Interrupt  
Enable Mask Register  
Contains flags for common USB interrupts  
USBCIF  
USBIIF  
USBCIE  
USBIIE  
Contains interrupt flags for endpoint 0 and all the IN  
endpoints  
Contains interrupt flags for all OUT endpoints  
USBOIF  
USBOIE  
Note: All interrupts except SOF and suspend are initially enabled after reset  
Table 59: USB Interrupt Flags Interrupt Enable Mask Registers  
In addition to the interrupt flags in the registers  
pending. The USB controller uses interrupt #6  
for USB interrupts. This interrupt number is  
shared with Port 2 inputs, hence the interrupt  
routine must also handle Port 2 interrupts if  
they are enabled. The interrupt routine should  
read all the interrupt flag registers and take  
action depending on the status of the flags.  
The interrupt flag registers will be cleared  
when they are read and the status of the  
individual interrupt flags should therefore be  
saved in memory (typically in a local variable  
shown in Table 59, there are two CPU interrupt  
flags associated with the USB controller;  
IRCON2.USBIF and IRCON.P0IF. For an  
interrupt request to be generated, IEN1.P0IE  
and/or IEN2.USBIEmust be set to 1 together  
with the desired interrupt enable bits from the  
USBCIE, USBIIE, and USBOIE registers.  
When an interrupt request has been  
generated, the CPU which will start executing  
the ISR if there are no higher priority interrupts  
SWRS055D  
Page 171 of 243  
 
C2510Fx / CC2511Fx  
on the stack) to allow them to be accessed  
multiple times.  
13.16.5  
Endpoint 0 Interrupts  
The following events may generate an EP0  
interrupt request:  
At the end of the ISR, after the interrupt flags  
have been read, the interrupt flags should be  
cleared to allow for new USB/P2 interrupts to  
be detected. The port 2 interrupt status flags in  
the P2IFG register should be cleared prior to  
clearing IRCON2.P2IF(see Section 11.5.2).  
A data packet has been received  
(USBCS0.OUTPKT_RDY=1)  
A data packet that was loaded into the  
EP0 FIFO has been sent to the USB  
host (USBCS0.INPKT_RDY should be  
set to 1 when a new packet is ready to  
be transferred. This bit will be cleared by  
HW when the data packet has been  
sent)  
Refer  
to  
Table 39 and Table 40 for a complete list of  
interrupts, and Section 11.5 for more details  
about interrupts.  
An IN transaction has been completed  
(the interrupt is generated during the  
Status stage of the transaction)  
13.16.3.1 USB Resume Interrupt  
P0_7 does not exist on the CC2511Fx, but the  
corresponding interrupt is used for USB  
resume interrupt. This means that to be able to  
wake up the CC2511Fx from PM1/suspend when  
resume signaling has been detected on the  
USB bus, IEN1.P0IE must be set to 1  
A  
STALL  
has  
been  
sent  
(USBCS0.SENT_STALL=1)  
A control transfer ends due to a  
premature end of control transfer  
(USBCS0.SETUP_END=1)  
together  
with  
PICTL.P0IENH.  
PICTL.P0ICONmust be 0 to enable interrupts  
on rising edge. The P0 ISR should check the  
P0IFG.USB_RESUME, and resume if this bit is  
set to 1. If PM1 is entered from within an ISR  
due to a suspend interrupt, it is important that  
the priority of the P0 interrupt is set higher than  
the priority of the interrupt from which PM1  
was entered. See Section 13.16.9 for more  
details about suspend and resume.  
Any of these events will cause the  
USBIIF.EP0IF to be asserted regardless of  
the status of the EP0 interrupt mask bit  
USBIIE.EP0IE. If the EP0 interrupt mask bit  
is set to 1, the CPU interrupt flag  
IRCON2.USBIF will also be asserted. An  
interrupt request is only generated if  
IEN2.USBIE and USBIIE.EP0IE are both  
set to 1.  
13.16.4  
Endpoint 0  
13.16.5.1 Error Conditions  
Endpoint 0 (EP0) is a bi-directional control  
endpoint and during the enumeration phase all  
communication is performed across this  
endpoint. Before the USBADDR register has  
been set to a value other than 0, the USB  
controller will only be able to communicate  
through endpoint 0. Setting the USBADDR  
register to a value between 1 and 127 will  
bring the USB function out of the Default state  
in the enumeration phase and into the Address  
state. All configured endpoints will then be  
available for the application.  
When a protocol error occurs, the USB  
controller sends a STALL handshake. The  
USBCS0.SENT_STALL bit is asserted and an  
interrupt request is generated if the endpoint 0  
interrupt is properly enabled. A protocol error  
can be any of the following:  
An OUT token is received after  
USBCS0.DATA_END has been set to  
complete the OUT Data stage (the host  
tries to send more data than expected)  
An IN token is received after  
USBCS0.DATA_END has been set to  
complete the IN Data stage (the host  
tries to receive more data than  
expected)  
The EP0 FIFO is only used as either IN or  
OUT and double buffering is not provided for  
endpoint 0. The maximum packet size for  
endpoint 0 is fixed at 32 bytes.  
Endpoint 0 is controlled through the USBCS0  
register by setting the USBINDEXregister to 0.  
The USBCNT0 register contains the number of  
bytes received.  
The USB host tries to send a packet that  
exceeds the maximum packet size  
during the OUT Data stage  
The size of the DATA1 packet received  
during the Status stage is not 0  
SWRS055D  
Page 172 of 243  
 
 
C2510Fx / CC2511Fx  
The firmware can also terminate the current  
transaction by setting the  
USBCS0.SEND_STALL bit to 1. The USB  
controller will then send a STALL handshake in  
response to the next requests from the USB  
host.  
3. Set the USBCS0.CLR_OUTPKT_RDY bit  
to 1. This denotes the end of the Setup  
stage. If the control transfer has no Data  
stage, the USBCS0.DATA_END bit must  
also be set. If there is no Data stage, the  
USB Controller will stay in the IDLE  
state.  
If an EP0 interrupt is caused by the assertion  
of the USBCS0.SENT_STALL bit, this bit  
should be de-asserted and firmware should  
consider the transfer as aborted (free memory  
buffers etc.).  
13.16.5.3 IN Transactions (TX state)  
If the control transfer requires data to be sent  
to the host, the Setup stage will be followed by  
one or more IN transactions in the Data stage.  
In this case the USB controller will be in TX  
state and only accept IN tokens. A successful  
IN transaction comprises two or three  
sequential packets (a token packet, a data  
packet, and a handshake packet17). If more  
than 32 bytes (maximum packet size) is to be  
sent, the data must be split into a number of 32  
byte packets followed by a residual packet. If  
the number of bytes to send is a multiple of 32,  
the residual packet will be a zero length data  
packet, hence a packet size less than 32 bytes  
denotes the end of the transfer.  
If EP0 receives an unexpected token during  
the Data stage, the USBCS0.SETUP_END bit  
will be asserted and an EP0 interrupt will be  
generated (if enabled properly). EP0 will then  
switch to the IDLE state. Firmware should then  
set the USBCS0.CLR_SETUP_ENDbit to 1 and  
abort  
the  
current  
transfer.  
If  
USBCS0.OUTPKT_RDY is asserted, this  
indicates that another Setup Packet has been  
received that firmware should process.  
13.16.5.2 SETUP Transactions (IDLE State)  
The control transfer consists of 2 – 3 stages of  
transactions (Setup – Data - Status or Setup -  
Status). The first transaction is a Setup  
transaction. A successful Setup transaction  
comprises three sequential packets (a token  
packet, a data packet, and a handshake  
packet), where the data field (payload) of the  
data packet is exactly 8 bytes long and are  
referred to as the Setup Packet. In the Setup  
stage of a control transfer, EP0 will be in the  
IDLE state. The USB controller will reject the  
data packet if the Setup Packet is not 8 bytes.  
Also, the USB controller will examine the  
contents of the Setup Packet to determine  
whether or not there is a Data stage in the  
control transfer. If there is a Data stage, EP0  
will switch state to TX (IN transaction) or RX  
Firmware should load the EP0 FIFO with the  
first  
data  
packet  
and  
set  
the  
USBCS0.INPKT_RDY bit as soon as possible  
after the USBCS0.CLR_OUTPKT_RDY bit has  
been set. The USBCS0.INPKT_RDY will be  
cleared and an EP0 interrupt will be generated  
when the data packet has been sent. Firmware  
might then load more data packets as  
necessary. An EP0 interrupt will be generated  
for each packet sent. Firmware must set  
USBCS0.DATA_END  
in  
addition  
to  
USBCS0.INPKT_RDY when the last data  
packet has been loaded. This will start the  
Status stage of the control transfer.  
EP0 will switch to the IDLE state when the  
Status stage has completed. The Status stage  
may fail if the USBCS0.SEND_STALL bit is set  
to 1. The USBCS0.SENT_STALL bit will then  
be asserted and an EP0 interrupt will be  
generated as explained in Section 13.16.5.1.  
(OUT  
transaction)  
when  
the  
USBCS0.CLR_OUTPKT_RDY bit is set to 1 (if  
USBCS0.DATA_END=0).  
When  
a
packet  
is  
received,  
the  
USBCS0.OUTPKT_RDYbit will be asserted and  
an interrupt request is generated (EP0  
interrupt) if the interrupt has been enabled.  
Firmware should perform the following when a  
Setup Packet has been received:  
If USBCS0.INPKT_RDY is not set when  
receiving an IN token, the USB Controller will  
reply with a NAK to indicate that the endpoint  
is working, but temporarily has no data to  
send.  
1. Unload the Setup Packet from the EP0  
FIFO  
13.16.5.4 OUT Transactions (RX state)  
2. Examine the contents and perform the  
appropriate operations  
If the control transfer requires data to be  
received from the host, the Setup stage will be  
followed by one or more OUT transactions in  
the Data stage. In this case the USB controller  
will be in RX state and only accept OUT  
SWRS055D  
Page 173 of 243  
 
C2510Fx / CC2511Fx  
tokens.  
A
successful OUT transaction  
The USBINDEXregister must have the value of  
the endpoint number before the Indexed  
Endpoint Registers are accessed (see Table  
35 on Page 50).  
comprises two or three sequential packets (a  
token packet, a data packet, and a handshake  
packet18). If more than 32 bytes (maximum  
packet size) is to be received, the data must  
be split into a number of 32 byte packets  
followed by a residual packet. If the number of  
bytes to receive is a multiple of 32, the residual  
packet will be a zero length data packet, hence  
a data packet with payload less than 32 bytes  
denotes the end of the transfer.  
13.16.6.1 FIFO Management  
Each endpoint has a certain number of FIFO  
memory bytes available for incoming and  
outgoing data packets. Table 60 shows the  
FIFO size for endpoints 1 - 5. It is the firmware  
that is responsible for setting the USBMAXIand  
USBMAXO registers correctly for each endpoint  
to prevent data from being overwritten.  
The USBCS0.OUTPKT_RDY bit will be set and  
an EP0 interrupt will be generated when a data  
packet has been received. The firmware  
should set USBCS0.CLR_OUTPKT_RDY when  
the data packet has been unloaded from the  
EP0 FIFO. When the last data packet has  
been received (packet size less than 32 bytes)  
When both the IN and the OUT endpoint of an  
endpoint number do not use double buffering,  
the sum of USBMAXI and USBMAXO must not  
exceed the FIFO size for the endpoint. Figure  
43 a) shows how the IN and OUT FIFO  
memory for an endpoint is organized with  
single buffering. The IN FIFO grows down from  
the top of the endpoint memory region while  
the OUT FIFO grows up from the bottom of the  
endpoint memory region.  
firmware  
should  
also  
set  
the  
USBCS0.DATA_END bit. This will start the  
Status stage of the control transfer. The size of  
the data packet is kept in the USBCNT0  
registers. Note that this value is only valid  
when USBCS0.OUTPKT_RDY=1.  
EP0 will switch to the IDLE state when the  
Status stage has completed. The Status stage  
may fail if the DATA1 packet received is not a  
zero length data packet or if the  
USBCS0.SEND_STALL bit is set to 1. The  
USBCS0.SENT_STALL bit will then be  
asserted and an EP0 interrupt will be  
generated as explained in Section 13.16.5.1.  
When the IN or OUT endpoint of an endpoint  
number use double buffering, the sum of  
USBMAXI and USBMAXO must not exceed half  
the FIFO size for the endpoint. Figure 43 b)  
illustrates the IN and OUT FIFO memory for an  
endpoint that uses double buffering. Notice  
that the second OUT buffer starts from the  
middle of the memory region and grows  
upwards. The second IN buffer also starts from  
the middle of the memory region but grows  
downwards.  
13.16.6 Endpoints 1 – 5  
Each endpoint can be used as an IN only, an  
OUT only, or IN/OUT. For an IN/OUT endpoint  
there are basically two endpoints, an IN  
endpoint and an OUT endpoint associated with  
the endpoint number. Configuration and  
control of IN endpoints is performed through  
the USBCSIL and USBCSIH registers. The  
USBCSOL and USBCSOH registers are used to  
configure and control OUT endpoints. Each IN  
and OUT endpoint can be configured as either  
To configure an endpoint as IN only, set  
USBMAXOto 0 and to configure an endpoint as  
OUT only, set USBMAXIto 0.  
For unused endpoints, both USBMAXO and  
USBMAXIshould be set to 0.  
EP Number FIFO Size (in bytes)  
1
2
3
4
5
32  
Isochronous  
(USBCSIH.ISO=1  
and/or  
Bulk/Interrupt  
and/or  
64  
USBCSOH.ISO=1)  
(USBCSIH.ISO=0  
USBCSOH.ISO=0)  
or  
128  
256  
512  
endpoints.  
Bulk  
and  
Interrupt endpoints are handled identically by  
the USB controller but will have different  
properties from a firmware perspective.  
Table 60: FIFO Sizes for EP 1 – 5  
SWRS055D  
Page 174 of 243  
 
 
C2510Fx / CC2511Fx  
0
0
IN FIFO  
(Buffer 1)  
IN FIFO  
USBMAXI - 1  
USBMAXI - 1  
USBMAX0 - 1  
OUT FIFO  
(Buffer 2)  
0
0
IN FIFO  
(Buffer 2)  
USBMAXI - 1  
USBMAX0 - 1  
USBMAX0 - 1  
0
OUT FIFO  
(Buffer 1)  
OUT FIFO  
a)  
0
b)  
Figure 43: IN/OUT FIFOs, a) Single Buffering b) Double Buffering  
13.16.6.2 Double Buffering  
OUT FIFO to be extracted and the value of this  
byte to be returned.  
To enable faster transfer and reduce the need  
for retransmissions, CC2511Fx implements  
double buffering, allowing two packets to be  
buffered in the FIFO in each direction. This is  
When a data packet has been written to an IN  
FIFO, the USBCSIL.INPKT_RDY bit must be  
set to 1. If double buffering is enabled, the  
USBCSIL.INPKT_RDY bit will be cleared  
immediately after it has been written and  
another data packet can be loaded. This will  
not generate an IN endpoint interrupt, since an  
interrupt is only generated when a packet has  
been sent. When double buffering is used  
firmware should check the status of the  
USBCSIL.PKT_PRESENT bit before writing to  
the IN FIFO. If this bit is 0, two data packets  
can be written. Double buffered isochronous  
endpoints should only need to load two  
packets the first time the IN FIFO is loaded.  
After that, one packet is loaded for every USB  
frame. To send a zero length data packet,  
USBCSIL.INPKT_RDY should be set to 1  
without loading a data packet into the IN FIFO.  
highly  
recommended  
for  
isochronous  
endpoints, which are expected to transfer one  
data packet every USB frame without any  
retransmission. For isochronous endpoint one  
data packet will be sent/received every USB  
frame. However, the data packet may be  
sent/received at any time during the USB  
frame period and there is a chance that two  
data packets may be sent/received at a few  
micro seconds interval. For isochronous  
endpoints, an incoming packet will be lost if  
there is no buffer available and a zero length  
data packet will be sent if there is no data  
packet ready for transmission when the USB  
host requests data. Double buffering is not as  
critical for bulk and interrupt endpoints as it is  
for isochronous endpoint since packets will not  
be lost. Double buffering, however, may  
improve the effective data rate for bulk  
endpoints.  
A data packet can be read from the OUT FIFO  
when the USBCSOL.OUTPKT_RDY bit is 1. An  
interrupt will be generated when this occurs, if  
enabled. The size of the data packet is kept in  
the USBCNTH:USBCNTL registers. Note that  
To enable double buffering for an IN endpoint,  
USBCSIH.IN_DBL_BUF must be set to 1. To  
enable double buffering for an OUT endpoint,  
set USBCSOH.OUT_DBL_BUFto 1.  
this  
value  
is  
only  
valid  
when  
USBCSOL.OUTPKT_RDY=1. When the data  
packet has been read from the OUT FIFO, the  
USBCSOL.OUTPKT_RDYbit must be cleared. If  
double buffering is enabled there may be two  
data packets in the FIFO. If another data  
13.16.6.3 FIFO Access  
The endpoint FIFOs are accessed by reading  
and writing to the registers in Table 36 on  
Page 51. Writing to a register causes the byte  
written to be inserted into the IN FIFO.  
Reading a register causes the next byte in the  
packet  
is  
ready  
when  
the  
USBCSOL.OUTPKT_RDY bit is cleared the  
USBCSOL.OUTPKT_RDY bit will be asserted  
immediately and an interrupt will be generated  
SWRS055D  
Page 175 of 243  
C2510Fx / CC2511Fx  
(if enabled) to signal that a new data packet  
has been received. The  
A data packet has been received  
(USBCSOL.OUTPKT_RDY=1)  
USBCSOL.FIFO_FULL bit will be set when  
there are two data packets in the OUT FIFO.  
A  
STALL  
has  
been  
sent  
Only  
(USBCSIL.SENT_STALL=1).  
Bulk/Interrupt endpoints can be stalled  
The AutoClear feature is supported for OUT  
endpoints.  
When  
enabled,  
the  
Any  
of  
these  
events  
to  
will  
be  
cause  
asserted  
USBCSOL.OUTPKT_RDY  
bit is  
cleared  
USBOIF.OUTEPxIF  
automatically when USBMAXObytes have been  
read from the OUT FIFO. The AutoClear  
regardless of the status of the OUT EPx  
interrupt mask bit USBOIE.OUTEPxIE. If the  
OUT EPx interrupt mask bit is set to 1, the  
CPU interrupt flag IRCON2.USBIFwill also be  
asserted. An interrupt request is only  
generated  
USBOIE.OUTEPxIEare both set to 1.  
feature  
is  
enabled  
by  
setting  
USBCSOH.AUTOCLEAR=1.  
The  
AutoClear  
feature can be used to reduce the time the  
data packet occupies the OUT FIFO buffer and  
is typically used for bulk endpoints.  
if  
IEN2.USBIE  
and  
A complementary AutoSet feature is supported  
for IN endpoints. When enabled, the  
USBCSIL.INPKT_RDY bit is set automatically  
when USBMAXIbytes have been written to the  
IN FIFO. The AutoSet feature is enabled by  
setting USBCSIH.AUTOSET=1. The AutoSet  
feature can reduce the overall time it takes to  
send a data packet and is typically used for  
bulk endpoints.  
13.16.6.5 Bulk/Interrupt IN Endpoint  
Interrupt IN transfers occur at regular intervals  
while bulk IN transfers utilize available  
bandwidth not allocated to isochronous,  
interrupt, or control transfers.  
Interrupt IN endpoints may set the  
USBCSIH.FORCE_DATA_TOGbit. When this bit  
is set the data toggle bit is continuously  
toggled regardless of whether an ACK was  
received or not. This feature is typically used  
by interrupt IN endpoints that are used to  
communicate rate feedback for Isochronous  
endpoints.  
13.16.6.4 Endpoint 1 – 5 Interrupts  
The following events may generate an IN EPx  
interrupt request (x indicates the endpoint  
number):  
A data packet that was loaded into the  
IN FIFO has been sent to the USB host  
(USBCSIL.INPKT_RDYshould be set to  
1 when a new packet is ready to be  
transferred. This bit will be cleared by  
HW when the data packet has been  
sent)  
A Bulk/Interrupt IN endpoint can be stalled by  
setting the USBCSIL.SEND_STALL bit to 1.  
When the endpoint is stalled, the USB  
controller will respond with  
handshake to IN tokens.  
a
STALL  
The  
USBCSIL.SENT_STALL bit will then be set  
and an interrupt will be generated, if enabled.  
A  
STALL  
has  
been  
sent  
Only  
A bulk transfer longer than the maximum  
packet size is performed by splitting the  
transfer into a number of data packets of  
maximum size followed by a smaller data  
packet containing the remaining bytes. If the  
transfer length is a multiple of the maximum  
packet size, a zero length data packet is sent  
last. This means that a packet with a size less  
than the maximum packet size denotes the  
end of the transfer. The AutoSet feature can  
be useful in this case, since many data  
packets will be of maximum size.  
(USBCSIL.SENT_STALL=1).  
Bulk/Interrupt endpoints can be stalled  
The IN FIFO is flushed due to the  
USBCSIH.FLUSH_PACKET bit being set  
to 1  
Any  
of  
these  
events  
will  
cause  
USBIIF.INEPxIF to be asserted regardless  
of the status of the IN EPx interrupt mask bit  
USBIIE.INEPxIE. If the IN EPx interrupt  
mask bit is set to 1, the CPU interrupt flag  
IRCON2.USBIF will also be asserted. An  
interrupt request is only generated if  
IEN2.USBIEand USBIIE.INEPxIEare both  
set to 1. The x in the register names refer to  
the endpoint number 1 - 5)  
13.16.6.6 Isochronous IN Endpoint  
An Isochronous IN endpoint is used to transfer  
periodic data from the USB controller to the  
host (one data packet every USB frame).  
The following events may generate an OUT  
EPx interrupt request:  
If there is no data packet loaded in the IN FIFO  
when the USB host requests data, the USB  
SWRS055D  
Page 176 of 243  
C2510Fx / CC2511Fx  
controller sends a zero length data packet and  
the USBCSIL.UNDERRUNbit will be asserted.  
reduce the chance for this to happen by using  
double buffering and use DMA to effectively  
unload data packets.  
Double buffering requires that a data packet is  
loaded into the IN FIFO during the frame  
preceding the frame where it should be sent. If  
the first data packet is loaded before an IN  
token is received, the data packet will be sent  
during the same frame as it was loaded and  
hence violate the double buffering strategy.  
Thus, when double buffering is used, the  
USBPOW.ISO_WAIT_SOF bit should be set to  
1 to avoid this. Setting this bit will ensure that a  
loaded data packet is not sent until the next  
SOF token has been received.  
An isochronous data packet in the OUT FIFO  
may have bit errors. The hardware will detect  
this condition and set USBCSOL.DATA_ERROR.  
Firmware should therefore always check this  
bit when unloading a data packet.  
The AutoClear feature will typically not be used  
for isochronous endpoints since the packet  
size will increase or decrease from frame to  
frame.  
13.16.7  
DMA  
The AutoSet feature will typically not be used  
for isochronous endpoints since the packet  
size will increase or decrease from frame to  
frame.  
DMA should be used to fill the IN endpoint  
FIFOs and empty the OUT endpoint FIFOs.  
Using DMA will improve the read/write  
performance significantly compared to using  
the 8051 CPU. It is therefore highly  
recommended to use DMA unless timing is not  
critical or only a few bytes are to be  
transferred.  
13.16.6.7 Bulk/Interrupt OUT Endpoint  
Interrupt OUT transfers occur at regular  
intervals while bulk OUT transfers utilize  
available  
bandwidth  
not  
allocated  
to  
There are no DMA triggers for the USB  
controller, meaning that DMA transfers must  
be triggered by firmware.  
isochronous, interrupt, or control transfers.  
A Bulk/Interrupt OUT endpoint can be stalled  
by setting the USBCSOL.SEND_STALL bit to  
1. When the endpoint is stalled, the USB  
The word size can be byte (8 bits) or word (16  
bits). When word size transfer is used the  
ENDIAN register must be set correctly (see  
Section 11.2.3.6). The ENDIAN.USBRLE bit  
selects whether a word is read as little or big  
endian from the OUT FIFOs and the  
ENDIAN.USBWLEbit selects whether a word is  
written as little or big endian to the IN FIFOs.  
Writing and reading words for the different  
settings is shown in Figure 44 and Figure 45  
respectively. Notice that the setting for these  
bits will be used for all endpoints.  
Consequently, it is not possible to have  
multiple DMA channels active at once that use  
different endianess. The ENDIANregister must  
be configured to use big endian for both read  
and write for a word size transfer to produce  
the same result as a byte size transfer of an  
even number of bytes. Word size transfers are  
slightly more efficient than byte transfers.  
controller will respond with  
a
STALL  
handshake when the host is done sending the  
data packet. The data packet is discarded and  
is not placed in the OUT FIFO. The USB  
controller  
will  
assert  
the  
USBCSOL.SENT_STALL bit when the STALL  
handshake is sent and generate an interrupt  
request if the OUT endpoint interrupt is  
enabled.  
As the AutoSet feature is useful for bulk IN  
endpoints, the AutoClear feature is useful for  
OUT endpoints since many packets will be of  
maximum size.  
13.16.6.8 Isochronous OUT Endpoint  
An Isochronous OUT endpoint is used to  
transfer periodic data from the host to the USB  
controller (one data packet every USB frame).  
Refer to Section 13.5 for more details  
regarding DMA.  
If there is no buffer available when a data  
packet  
is  
being  
received,  
the  
USBCSOL.OVERRUN bit will be asserted and  
the packet data will be lost. Firmware can  
SWRS055D  
Page 177 of 243  
C2510Fx / CC2511Fx  
Figure 44: Writing Big/Little Endian  
Figure 45: Reading Big/Little Endian  
13.16.8  
USB Reset  
All endpoint FIFOs are flushed  
USBCS0, USBCSIL,  
USBCSOL, USBCSOHare cleared.  
When reset signaling is detected on the bus,  
the USBCIF.RSTIF flag will be asserted. If  
USBCIE.RSTIE is enabled, IRCON2.USBIF  
will also be asserted and an interrupt request  
is generated if IEN2.USBIE=1. The firmware  
should take appropriate action when a USB  
reset occurs. A USB reset should place the  
device in the Default state where it will only  
respond to address 0 (the default address).  
One or more resets will normally take place  
during the enumeration phase right after the  
USB cable is connected.  
USBCSIH,  
All interrupts, except SOF and suspend,  
are enabled  
An interrupt request is generated (if  
IEN2.USBIE=1  
USBCIE.RSTIE=1)  
and  
Firmware should close all pipes and wait for a  
new enumeration phase when USB reset is  
detected.  
The following actions are performed by the  
USB controller when a USB reset occurs:  
13.16.9  
Suspend and Resume  
USB controller will  
The  
assert  
USBADDRis set to 0  
USBINDEXis set to 0  
USBCIF.SUSPENDIF and enter suspend  
mode when the USB bus has been  
SWRS055D  
Page 178 of 243  
C2510Fx / CC2511Fx  
continuously idle for 3 ms, provided that  
13.16.10 Remote Wakeup  
USBPOW.SUSPEND_EN=1. IRCON2.USBIFwill  
The USB controller can resume from suspend  
by signaling resume to the USB hub. Resume  
is performed by setting USBPOW.RESUME to 1  
for approximately 10 ms. According to the USB  
2.0 Specification [5], the resume signaling  
must be present for at least 1 ms and no more  
than 15 ms. It is, however, recommended to  
keep the resume signaling for approximately  
10 ms. Notice that support for remote wakeup  
must be declared in the USB descriptor, and  
that the USB host must grant the device the  
privilege to perform remote wakeup (through a  
SET_FEATURE request).  
be asserted if USBCIE.SUSPENDIE  
is  
enabled, and an interrupt request is generated  
if IEN2.USBIE=1.  
While in suspend mode, only limited current  
can be sourced from the USB bus. See the  
USB 2.0 Specification [5] for details about this.  
To be able to meet the suspend-current  
requirement, the CC2511Fx should be taken  
down to PM1 when suspend is detected. The  
CC2511Fx should not enter PM2 or PM3 since  
this will reset the USB controller.  
Any valid non-idle signaling on the USB bus  
will cause the USBCIF.RESUMIF to be  
asserted and an interrupt request to be  
generated and wake up the system if the USB  
resume interrupt is configured correctly. Refer  
to 13.16.3.1 for details about how to set up the  
USB resume interrupt.  
13.16.11 USB Registers  
This section describes all USB registers used  
for control and status for the USB. The USB  
registers reside in XDATA memory space in  
the region 0xDE00 - 0xDE3F. These registers  
can be divided into three groups: The Common  
USB Registers, the Indexed Endpoint  
Registers, and the Endpoint FIFO Registers.  
Table 34, Table 35, and Table 36 give an  
overview of the registers in the three groups  
respectively, while the remaining of this section  
will describe each register in detail. The  
Indexed Endpoint Registers represent the  
currently selected endpoint. The USBINDEX  
register is used to select the endpoint.  
Any valid non-idle signaling on the USB bus  
will cause the USBCIF.RESUMIF to be  
asserted and an interrupt request to be  
generated and wake up the system if the USB  
resume interrupt is configured correctly. Refer  
to 13.16.3.1 for details about how to set up the  
USB resume interrupt.  
When the system wakes up (enters active  
mode) from suspend, no USB registers must  
be accessed before the 48 MHZ crystal  
oscillator has stabilized.  
Notice that the upper register addresses  
0xDE2C – 0xDE3F are reserved.  
A USB reset will also wake up the system from  
suspend. A USB resume interrupt request will  
be generated, if the interrupt is configured as  
described  
in  
13.16.3.1,  
but  
the  
USBCIF.RSTIF interrupt flag will be set  
instead of the USBCIF.RESUMIF interrupt  
flag.  
SWRS055D  
Page 179 of 243  
C2510Fx / CC2511Fx  
0xDE00: USBADDR – Function Address  
Bit  
Field Name  
Reset  
R/W  
Description  
7
UPDATE  
0
R
This bit is set when the USBADDRregister is written and cleared when the  
address becomes effective.  
6:0  
USBADDR[6:0]  
0x00  
R/W  
Device address  
0xDE01: USBPOW – Power/Control Register  
Bit  
Field Name  
Reset  
R/W  
Description  
7
ISO_WAIT_SOF  
0
R/W  
When this bit is set to 1, the USB controller will send zero length data packets  
from the time INPKT_RDYis asserted and until the first SOF token has been  
received. This only applies to isochronous endpoints.  
6:4  
3
-
R0  
R
Not used  
RST  
0
0
During reset signaling, this bit is set to1  
2
RESUME  
R/W  
Drive resume signaling for remote wakeup. According to the USB Specification  
the duration of driving resume must be at least 1 ms and no more than 15 ms.  
It is recommended to keep this bit set for approximately 10 ms.  
1
0
SUSPEND  
0
0
R
Suspend mode entered. This bit will only be used when SUSPEND_EN=1.  
Reading the USBCIFregister or asserting RESUMEwill clear this bit.  
SUSPEND_EN  
R/W  
Suspend Enable. When this bit is set to 1, suspend mode will be entered when  
USB bus has been idle for 3 ms.  
0xDE02: USBIIF – IN Endpoints and EP0 Interrupt Flags  
Bit  
Field Name  
Reset  
R/W  
Description  
7:6  
5
-
R0  
Not used  
INEP5IF  
INEP4IF  
INEP3IF  
INEP2IF  
INEP1IF  
EP0IF  
0
0
0
0
0
0
R, H0  
R, H0  
R, H0  
R, H0  
R, H0  
R, H0  
Interrupt flag for IN endpoint 5. Cleared by HW when read  
Interrupt flag for IN endpoint 4. Cleared by HW when read  
Interrupt flag for IN endpoint 3. Cleared by HW when read  
Interrupt flag for IN endpoint 2. Cleared by HW when read  
Interrupt flag for IN endpoint 1. Cleared by HW when read  
Interrupt flag for endpoint 0. Cleared by HW when read  
4
3
2
1
0
0xDE04: USBOIF – Out Endpoints Interrupt Flags  
Bit  
Field Name  
Reset  
R/W  
Description  
7:6  
5
-
R0  
Not used  
OUTEP5IF  
OUTEP4IF  
OUTEP3IF  
OUTEP2IF  
OUTEP1IF  
0
0
0
0
0
-
R, H0  
R, H0  
R, H0  
R, H0  
R, H0  
R0  
Interrupt flag for OUT endpoint 5. Cleared by HW when read  
Interrupt flag for OUT endpoint 4. Cleared by HW when read  
Interrupt flag for OUT endpoint 3. Cleared by HW when read  
Interrupt flag for OUT endpoint 2. Cleared by HW when read  
Interrupt flag for OUT endpoint 1. Cleared by HW when read  
Not used  
4
3
2
1
0
SWRS055D  
Page 180 of 243  
 
 
 
C2510Fx / CC2511Fx  
0xDE06: USBCIF – Common USB Interrupt Flags  
Bit  
Field Name  
Reset  
R/W  
Description  
7:4  
3
-
R0  
Not used  
SOFIF  
0
0
0
0
R, H0  
R, H0  
R, H0  
R, H0  
Start-Of-Frame interrupt flag. Cleared by HW when read  
Reset interrupt flag. Cleared by HW when read  
Resume interrupt flag. Cleared by HW when read  
Suspend interrupt flag. Cleared by HW when read  
2
RSTIF  
1
RESUMIF  
SUSPENDIF  
0
0xDE07: USBIIE – IN Endpoints and EP0 Interrupt Enable Mask  
Bit  
Field Name  
Reset  
R/W  
Description  
7:6  
5
00  
1
R/W  
R/W  
Reserved. Always write 00  
INEP5IE  
IN endpoint 5 interrupt enable  
0
1
Interrupt disabled  
Interrupt enabled  
4
3
2
1
0
INEP4IE  
INEP3IE  
INEP2IE  
INEP1IE  
EP0IE  
1
1
1
1
1
R/W  
R/W  
R/W  
R/W  
R/W  
IN endpoint 4 interrupt enable  
0
1
Interrupt disabled  
Interrupt enabled  
IN endpoint 3 interrupt enable  
0
1
Interrupt disabled  
Interrupt enabled  
IN endpoint 2 interrupt enable  
0
1
Interrupt disabled  
Interrupt enabled  
IN endpoint 1 interrupt enable  
0
1
Interrupt disabled  
Interrupt enabled  
Endpoint 0 interrupt enable  
0
1
Interrupt disabled  
Interrupt enabled  
SWRS055D  
Page 181 of 243  
 
 
C2510Fx / CC2511Fx  
0xDE09: USBOIE – Out Endpoints Interrupt Enable Mask  
Bit  
Field Name  
Reset  
R/W  
Description  
7:6  
5
00  
1
R/W  
R/W  
Reserved. Always write 00  
OUTEP5IE  
OUT endpoint 5 interrupt enable  
0
1
Interrupt disabled  
Interrupt enabled  
4
3
2
1
0
OUTEP4IE  
OUTEP3IE  
OUTEP2IE  
OUTEP1IE  
1
1
1
1
-
R/W  
R/W  
R/W  
R/W  
R0  
OUT endpoint 4 interrupt enable  
0
1
Interrupt disabled  
Interrupt enabled  
OUT endpoint 3 interrupt enable  
0
1
Interrupt disabled  
Interrupt enabled  
OUT endpoint 2 interrupt enable  
0
1
Interrupt disabled  
Interrupt enabled  
OUT endpoint 1 interrupt enable  
0
1
Interrupt disabled  
Interrupt enabled  
Not used  
0xDE0B: USBCIE – Common USB Interrupt Enable Mask  
Bit  
Field Name  
Reset  
R/W  
Description  
7:4  
3
-
R0  
Not used  
SOFIE  
0
R/W  
Start-Of-Frame interrupt enable  
0
1
Interrupt disabled  
Interrupt enabled  
2
1
0
RSTIE  
1
1
0
R/W  
R/W  
R/W  
Reset interrupt enable  
0
1
Interrupt disabled  
Interrupt enabled  
RESUMEIE  
SUSPENDIE  
Resume interrupt enable  
0
1
Interrupt disabled  
Interrupt enabled  
Suspend interrupt enable  
0
1
Interrupt disabled  
Interrupt enabled  
0xDE0C: USBFRML – Current Frame Number (Low byte)  
Bit  
Field Name  
Reset  
R/W  
Description  
7:0  
FRAME[7:0]  
0x00  
R
Low byte of 11-bit frame number  
SWRS055D  
Page 182 of 243  
 
 
 
C2510Fx / CC2511Fx  
0xDE0D: USBFRMH – Current Frame Number (High byte)  
Bit  
Field Name  
Reset  
R/W  
Description  
7:3  
2:0  
-
R0  
R
Not used  
FRAME[10:8]  
000  
3 MSB of 11-bit frame number  
0xDE0E: USBINDEX – Current Endpoint Index Register  
Bit  
Field Name  
Reset  
R/W  
Description  
7:4  
3:0  
-
R0  
Not used  
USBINDEX[3:0]  
0000  
R/W  
Endpoint selected. Must be set to value in the range 0 – 5  
0xDE10: USBMAXI – Max. Packet Size for IN Endpoint{1-5}  
Bit  
Field Name  
Reset  
R/W  
Description  
7:0  
USBMAXI[7:0]  
0x00  
R/W  
Maximum packet size in units of 8 bytes for IN endpoint selected by  
USBINDEXregister. The value of this register should correspond to the  
wMaxPacketSize field in the Standard Endpoint Descriptor for the endpoint.  
This register must not be set to a value grater than the available FIFO  
memory for the endpoint.  
0xDE11: USBCS0 – EP0 Control and Status (USBINDEX=0)  
Bit  
Field Name  
Reset R/W  
Description  
7
CLR_SETUP_END  
0
0
0
0
R/W  
H0  
Set this bit to 1 to de-assert the SETUP_ENDbit of this register. This bit will be  
cleared automatically.  
6
5
4
CLR_OUTPKT_RDY  
SEND_STALL  
R/W  
H0  
Set this bit to 1 to de-assert the OUTPKT_RDYbit of this register. This bit will  
be cleared automatically.  
R/W  
H0  
Set this bit to 1 to terminate the current transaction. The USB controller will  
send the STALL handshake and this bit will be de-asserted.  
SETUP_END  
R
This bit is set if the control transfer ends due to a premature end of control  
transfer. The FIFO will be flushed and an interrupt request (EP0) will be  
generated if the interrupt is enabled. Setting CLR_SETUP_END=1 will de-  
assert this bit  
3
DATA_END  
0
R/W  
H0  
This bit is used to signal the end of a data transfer and must be asserted in  
the following three situations:  
1
2
3
When the last data packet has been loaded and USBCS0.INPKT_RDYis  
set to 1  
When the last data packet has been unloaded and  
USBCS0.CLR_OUTPKT_RDYis set to 1  
When USBCS0.INPKT_RDYhas been asserted without having loaded  
the FIFO (for sending a zero length data packet).  
The USB controller will clear this bit automatically  
2
1
SENT_STALL  
INPKT_RDY  
0
0
R/W  
H1  
This bit is set when a STALL handshake has been sent. An interrupt request  
(EP0) will be generated if the interrupt is enabled This bit must be cleared  
from firmware.  
R/W  
H0  
Set this bit when a data packet has been loaded into the EP0 FIFO to notify  
the USB controller that a new data packet is ready to be transferred. When  
the data packet has been sent, this bit is cleared and an interrupt request  
(EP0) will be generated if the interrupt is enabled.  
0
OUTPKT_RDY  
0
R
Data packet received. This bit is set when an incoming data packet has been  
placed in the OUT FIFO. An interrupt request (EP0) will be generated if the  
interrupt is enabled. Set CLR_OUTPKT_RDY=1to de-assert this bit.  
SWRS055D  
Page 183 of 243  
 
 
 
 
 
 
C2510Fx / CC2511Fx  
0xDE11: USBCSIL – IN EP{1-5} Control and Status Low  
Bit  
Field Name  
Reset  
R/W  
Description  
7
6
-
R0  
Not used  
CLR_DATA_TOG  
SENT_STALL  
0
R/W  
H0  
Setting this bit will reset the data toggle to 0. Thus, setting this bit will force  
the next data packet to be a DATA0 packet. This bit is automatically  
cleared.  
5
4
3
2
0
0
0
0
R/W  
This bit is set when a STALL handshake has been sent. The FIFO will be  
flushed and the INPKT_RDYbit in this register will be de-asserted. An  
interrupt request (IN EP{1 - 5}) will be generated if the interrupt is enabled.  
This bit must be cleared from firmware.  
SEND_STALL  
FLUSH_PACKET  
UNDERRUN  
R/W  
Set this bit to 1 to make the USB controller reply with a STALL handshake  
when receiving IN tokens. Firmware must clear this bit to end the STALL  
condition. It is not possible to stall an isochronous endpoint, thus this bit will  
only have effect if the IN endpoint is configured as bulk/interrupt.  
R/W  
H0  
Set to 1 to flush next packet that is ready to transfer from the IIN FIFO. The  
INPKT_RDYbit in this register will be cleared. If there are two packets in  
the IN FIFO due to double buffering, this bit must be set twice to completely  
flush the IN FIFO. This bit is automatically cleared.  
R/W  
In isochronous mode, this bit is set if an IN token is received when  
INPKT_RDY=0, and a zero length data packet is transmitted in response to  
the IN token. In Bulk/Interrupt mode, this bit is set when a NAK is returned  
in response to an IN token. Firmware should clear this bit.  
1
0
PKT_PRESENT  
INPKT_RDY  
0
0
R
This bit is 1 when there is at least one packet in the IN FIFO.  
R/W  
H0  
Set this bit when a data packet has been loaded into the IN FIFO to notify  
the USB controller that a new data packet is ready to be transferred. When  
the data packet has been sent, this bit is cleared and an interrupt request  
(IN EP{1 - 5}) will be generated if the interrupt is enabled.  
0xDE12: USBCSIH – IN EP{1-5} Control and Status High  
Bit  
Field Name  
Reset  
R/W  
Description  
7
AUTOSET  
0
R/W  
When this bit is 1, the USBCSIL.INPKT_RDYbit is automatically asserted  
when a data packet of maximum size (specified by USBMAXI) has been  
loaded into the IN FIFO.  
6
ISO  
0
R/W  
Selects IN endpoint type  
0
1
Bulk/Interrupt  
Isochronous  
5:4  
3
10  
0
R/W  
R/W  
Reserved. Always write 10  
FORCE_DATA_TOG  
IN_DBL_BUF  
Setting this bit will force the IN endpoint data toggle to switch and the data  
packet to be flushed from the IN FIFO even though an ACK was received.  
This feature can be useful when reporting rate feedback for isochronous  
endpoints.  
2:1  
0
-
R0  
Not used  
0
R/W  
Double buffering enable (IN FIFO)  
0
1
Double buffering disabled  
Double buffering enabled  
0xDE13: USBMAXO – Max. Packet Size for OUT{1-5} Endpoint  
Bit  
Field Name  
Reset  
R/W  
Description  
7:0  
USBMAXO[7:0]  
0x00  
R/W  
Maximum packet size in units of 8 bytes for OUT endpoint selected by  
USBINDEXregister. The value of this register should correspond to the  
wMaxPacketSize field in the Standard Endpoint Descriptor for the endpoint.  
This register must not be set to a value grater than the available FIFO memory  
for the endpoint.  
SWRS055D  
Page 184 of 243  
 
 
 
 
 
C2510Fx / CC2511Fx  
0xDE14: USBCSOL – OUT EP{1-5} Control and Status Low  
Bit  
Field Name  
Reset  
R/W  
Description  
7
CLR_DATA_TOG  
0
R/W  
H0  
Setting this bit will reset the data toggle to 0. Thus, setting this bit will force the  
next data packet to be a DATA0 packet. This bit is automatically cleared.  
6
5
SENT_STALL  
SEND_STALL  
0
0
R/W  
This bit is set when a STALL handshake has been sent. An interrupt request  
(OUT EP{1 - 5}) will be generated if the interrupt is enabled. This bit must be  
cleared from firmware  
R/W  
Set this bit to 1 to make the USB controller reply with a STALL handshake  
when receiving OUT tokens. Firmware must clear this bit to end the STALL  
condition. It is not possible to stall an isochronous endpoint, thus this bit will  
only have effect if the IN endpoint is configured as bulk/interrupt.  
4
3
FLUSH_PACKET  
DATA_ERROR  
0
0
R/W  
H0  
Set to 1 to flush next packet that is to be read from the OUT FIFO. The  
OUTPKT_RDYbit in this register will be cleared. If there are two packets in the  
OUT FIFO due to double buffering, this bit must be set twice to completely flush  
the OUT FIFO. This bit is automatically cleared.  
R
This bit is set if there is a CRC or bit-stuff error in the packet received. Cleared  
when OUTPKT_RDY is cleared. This bit will only be valid if the OUT endpoint is  
isochronous.  
2
1
0
OVERRUN  
0
0
0
R/W  
R
This bit is set when an OUT packet cannot be loaded into the OUT FIFO.  
Firmware should clear this bit. This bit is only valid in isochronous mode  
FIFO_FULL  
OUTPKT_RDY  
This bit is asserted when no more packets can be loaded into the OUT FIFO  
full.  
R/W  
This bit is set when a packet has been received and is ready to be read from  
OUT FIFO. An interrupt request (OUT EP{1 - 5}) will be generated if the  
interrupt is enabled. This bit should be cleared when the packet has been  
unloaded from the FIFO.  
0xDE15: USBCSOH – OUT EP{1-5} Control and Status High  
Bit  
Field Name  
Reset  
R/W  
Description  
7
AUTOCLEAR  
0
R/W  
When this bit is set to 1, the USBCSOL.OUTPKT_RDYbit is automatically  
cleared when a data packet of maximum size (specified by USBMAXO) has been  
unloaded to the OUT FIFO.  
6
ISO  
0
R/W  
Selects OUT endpoint type  
0
1
Bulk/Interrupt  
Isochronous  
5:4  
3:1  
0
00  
-
R/W  
R0  
Reserved. Always write 00  
Not used  
OUT_DBL_BUF  
0
R/W  
Double buffering enable (OUT FIFO)  
0
1
Double buffering disabled  
Double buffering enabled  
SWRS055D  
Page 185 of 243  
 
 
 
C2510Fx / CC2511Fx  
0xDE16: USBCNT0 – Number of Received Bytes in EP0 FIFO (USBINDEX=0)  
Bit  
Field Name  
Reset  
R/W  
Description  
7:6  
5:0  
-
R0  
R
Not used  
USBCNT0[5:0]  
000000  
Number of received bytes into EP 0 FIFO. Only valid when OUTPKT_RDY is  
asserted  
0xDE16: USBCNTL – Number of Bytes in EP{1 – 5} OUT FIFO Low  
Bit  
Field Name  
Reset  
R/W  
Description  
7:0  
USBCNT[7:0]  
0x00  
R
8 LSB of number of received bytes into OUT FIFO selected by USBINDEX  
register. Only valid when USBCSOL.OUTPKT_RDY is asserted.  
0xDE17: USBCNTH – Number of Bytes in EP{1 – 5} OUT FIFO High  
Bit  
Field Name  
Reset  
R/W  
Description  
7:3  
2:0  
-
R0  
R
Not used  
USBCNT[10:8]  
000  
3 MSB of number of received bytes into OUT FIFO selected by USBINDEX  
register. Only valid when USBCSOL.OUTPKT_RDY is set  
0xDE20: USBF0 – Endpoint 0 FIFO  
Bit  
Field Name  
Reset  
R/W  
Description  
7:0  
USBF0[7:0]  
0x00  
R/W  
Endpoint 0 FIFO. Reading this register unloads one byte from the EP0 FIFO.  
Writing to this register loads one byte into the EP0 FIFO.  
Note: The FIFO memory for EP0 is used for both incoming and outgoing data  
packets.  
0xDE22: USBF1 – Endpoint 1 FIFO  
Bit  
Field Name  
Reset  
R/W  
Description  
7:0  
USBF1[7:0]  
0x00  
R/W  
Endpoint 1 FIFO register. Reading this register unloads one byte from the EP1  
OUT FIFO. Writing to this register loads one byte into the EP1 IN FIFO.  
0xDE24: USBF2 – Endpoint 2 FIFO  
Bit  
Field Name  
Reset  
R/W  
Description  
7:0  
USBF2[7:0]  
0x00  
R/W  
See Endpoint 1 FIFO description.  
0xDE26: USBF3 – Endpoint 3 FIFO  
Bit  
Field Name  
Reset  
R/W  
Description  
7:0  
USBF3[7:0]  
0x00  
R/W  
See Endpoint 1 FIFO description.  
0xDE28: USBF4 – Endpoint 4 FIFO  
Bit  
Field Name  
Reset  
R/W  
Description  
7:0  
USBF4[7:0]  
0x00  
R/W  
See Endpoint 1 FIFO description.  
0xDE2A: USBF5 – Endpoint 5 FIFO  
Bit  
Field Name  
Reset  
R/W  
Description  
7:0  
USBF5[7:0]  
0x00  
R/W  
See Endpoint 1 FIFO description.  
SWRS055D  
Page 186 of 243  
 
 
 
 
 
 
 
 
 
C2510Fx / CC2511Fx  
14 Radio  
RADIO CONTROL  
ADC  
LNA  
ADC  
RF_P  
RF_N  
FREQ  
SYNTH  
0
90  
PA  
Figure 46: CC2510Fx/CC2511Fx Radio Module  
A simplified block diagram of the radio module  
The frequency synthesizer includes  
a
completely on-chip LC VCO and a 90 degrees  
phase shifter for generating the I and Q LO  
signals to the down-conversion mixers in  
receive mode.  
in the CC2510Fx/CC2511Fx is shown in Figure 46.  
CC2510Fx/CC2511Fx features a low-IF receiver.  
The received RF signal is amplified by the low-  
noise amplifier (LNA) and down-converted in  
quadrature (I and Q) to the intermediate  
frequency (IF). At IF, the I/Q signals are  
digitized by the ADCs. Automatic gain control  
(AGC), fine channel filtering, demodulation  
bit/packet synchronization are performed  
digitally.  
The high speed crystal oscillator generates the  
reference frequency for the synthesizer, as  
well as clocks for the ADC and the digital part.  
An SFR interface is used for data buffer  
access from the CPU. Configuration and status  
registers are accessed through registers  
mapped to XDATA memory.  
The transmitter part of CC2510Fx/CC2511Fx is  
based on direct synthesis of the RF frequency.  
The digital baseband includes support for  
channel configuration, packet handling, and  
data buffering.  
Note: In this section of the document, fRef is used to denote  
the reference frequency for the synthesizer.  
fXOSC  
For CC2510Fx and for CC2511Fx,  
fref = fXOSC  
fref  
=
2
14.1 Command Strobes  
The CPU uses a set of command strobes to  
control operation of the radio.  
strobes are used to enable the frequency  
synthesizer, enable receive mode, enable  
transmit mode, etc. (see Figure 47).  
Command strobes may be viewed as single  
byte instructions which each start an internal  
sequence in the radio. These command  
The 6 command strobes are listed in Table 61  
on Page 189.  
SWRS055D  
Page 187 of 243  
 
C2510Fx / CC2511Fx  
SIDLE  
Default state when the radio is not  
receiving or transmitting..  
Idle  
SCAL  
Used for calibrating frequency  
synthesizer upfront (entering  
receive or transmit mode can  
then be done quicker).  
Transitional state.  
Manual freq.  
synth. calibration  
SRX or STX or SFSTXON  
Frequency  
synthesizer startup,  
optional calibration,  
settling  
Frequency synthesizer is turned on, can optionally be  
calibrated, and then settles to the correct frequency.  
Transitional state.  
SFSTXON  
Frequency synthesizer is on,  
ready to start transmitting.  
Transmission starts very  
quickly after receiving the  
STX command strobe.  
Frequency  
synthesizer on  
STX  
SRX  
STX  
TXOFF_MODE=01  
SFSTXON or RXOFF_MODE=01  
STX or RXOFF_MODE=10  
SRX or TXOFF_MODE=11  
Transmit mode  
Receive mode  
TXOFF_MODE=00  
RXOFF_MODE=00  
Optional transitional state.  
Transmission is  
turned off and this  
state is entered if  
the RFD register  
becomes empty in  
the middle of a  
packet.  
Reception is turned  
off and this state is  
entered if the RFD  
register overflows.  
TX Overflow  
RX Overflow  
Optional freq.  
synth. calibration  
SIDLE  
SIDLE  
Idle  
Figure 47: Simplified State Diagram  
SWRS055D  
Page 188 of 243  
 
C2510Fx / CC2511Fx  
RFST  
Value  
Command  
Strobe  
Description  
Name  
0x00  
0x01  
SFSTXON  
Enable and calibrate frequency synthesizer (if MCSM0.FS_AUTOCAL=1). If in RX (with  
CCA):  
Go to a wait state where only the synthesizer is running (for quick RX / TX turnaround).  
SCAL  
Calibrate frequency synthesizer and turn it off. SCALcan be strobed from IDLE mode  
without setting manual calibration mode (MCSM0.FS_AUTOCAL=0)  
0x02  
0x03  
SRX  
STX  
Enable RX. Perform calibration first if coming from IDLE and MCSM0.FS_AUTOCAL=1.  
In IDLE state: Enable TX. Perform calibration first if MCSM0.FS_AUTOCAL=1.  
If in RX state and CCA is enabled: Only go to TX if channel is clear.  
0x04  
SIDLE  
SNOP  
Enter IDLE state (frequency synthesizer turned off).  
No operation.  
All  
others  
Table 61: Command Strobes  
14.2 Radio Registers  
The operation of the radio is configured  
through a set of RF registers. These RF  
registers are mapped to XDATA memory  
space as shown in Figure 14 on Page 40 .  
In addition to configuration registers, the RF  
registers also provide status information from  
the radio.  
Section 11.2.3.4 on Page 47 gives a full  
description of all RF registers.  
14.3 Interrupts  
There are two interrupt vector assigned to the  
radio. These are the RFTXRX interrupt  
(interrupt #0) and the RF interrupt (interrupt  
#16):  
For an interrupt request to be generated when  
TCON.RFTXRXIF  
is  
asserted,  
IEN0.RFTXRXIEmust be 1.  
RFTXRX: RX data ready or TX data  
complete (related to the RFDregister)  
14.3.1.2 RF  
There are 8 different events that can generate  
an RF interrupt request. These events are:  
RF: All other general RF interrupts  
The RF interrupt vector combines the  
interrupts shown in the RFIM register shown  
on Page 191. Note that these RF interrupts are  
rising-edge triggered meaning that an interrupt  
is generated when e.g. the SFD status flag  
goes from 0 to 1.  
TX underflow  
RX overflow  
RX timeout  
Packet received/transmitted. Also used  
to detect overflow/underflow conditions  
The RF interrupt flags are described in the  
next section.  
CS  
PQT reached  
CCA  
14.3.1 Interrupt Registers  
14.3.1.1 RFTXRX  
SFD  
Each of these events has a corresponding  
interrupt flag in the RFIF register which is  
asserted when the event occurs. If the  
corresponding mask bit is set in the RFIM  
register, the CPU interrupt flag S1CON.RFIF  
will also be asserted in addition to the interrupt  
flag in RFIF. If IEN2.RFIE=1 when  
The RFTXTX interrupt is related to the RFD  
register. The CPU interrupt flag RFTXRXIF  
found in the TCON register is asserted when  
there are data in the RFD register ready to be  
read (RX), and when a new byte can be written  
(TX).  
SWRS055D  
Page 189 of 243  
 
C2510Fx / CC2511Fx  
Refer to 11.5 for details about the interrupts.  
S1CON.RFIF is asserted, and interrupt  
request will be generated.  
RFIF (0xE9) – RF Interrupt Flags  
Bit  
Name  
Reset  
R/W  
Description  
7
IRQ_TXUNF  
0
R/W0  
TX underflow  
0
1
No interrupt pending  
Interrupt pending  
6
5
4
IRQ_RXOVF  
IRQ_TIMEOUT  
IRQ_DONE  
0
0
0
R/W0  
R/W0  
R/W0  
RX overflow  
0
1
No interrupt pending  
Interrupt pending  
RX timeout, no packet has been received in the programmed period  
0
1
No interrupt pending  
Interrupt pending  
Packet received/transmitted. Also used to detect underflow/overflow  
conditions  
0
1
No interrupt pending  
Interrupt pending  
3
2
1
0
IRQ_CS  
0
0
0
0
R/W0  
R/W0  
R/W0  
R/W0  
Carrier sense  
0
1
No interrupt pending  
Interrupt pending  
IRQ_PQT  
IRQ_CCA  
IRQ_SFD  
Preamble quality threshold reached  
0
1
No interrupt pending  
Interrupt pending  
Clear Channel Assessment  
0
1
No interrupt pending  
Interrupt pending  
Start of Frame Delimiter, sync word detected  
0
1
No interrupt pending  
Interrupt pending  
SWRS055D  
Page 190 of 243  
 
C2510Fx / CC2511Fx  
RFIM (0x91) – RF Interrupt Mask  
Bit  
Name  
Reset  
R/W  
Description  
7
IM_TXUNF  
0
R/W  
TX underflow  
0
1
Interrupt disabled  
Interrupt enabled  
6
5
4
3
2
1
0
IM_RXOVF  
IM_TIMEOUT  
IM_DONE  
IM_CS  
0
0
0
0
0
0
0
R/W  
R/W  
R/W  
R/W  
R/W  
R/W  
R/W  
RX overflow  
0
1
Interrupt disabled  
Interrupt enabled  
RX timeout, no packet has been received in the programmed period.  
0
1
Interrupt disabled  
Interrupt enabled  
Packet received/transmitted. Also used to detect underflow/overflow conditions  
0
1
Interrupt disabled  
Interrupt enabled  
Carrier sense  
0
1
Interrupt disabled  
Interrupt enabled  
IM_PQT  
Preamble quality threshold reached.  
0
1
Interrupt disabled  
Interrupt enabled  
IM_CCA  
Clear Channel Assessment  
0
1
Interrupt disabled  
Interrupt enabled  
IM_SFD  
Start of Frame Delimiter, sync word detected  
0
1
Interrupt disabled  
Interrupt enabled  
14.4 TX/RX Data Transfer  
Data to transmit is written to the RF Data  
register, RFD. Received data is read from the  
same register. The RFDregister can be viewed  
as a 1 byte FIFO. That means that if a byte is  
received in the RFDregister, and it is not read  
before the next byte is received, the radio will  
enter RX_OVERFLOW state and the  
RFIF.IRQ_RXOVF flag will be set together  
with RFIF.IRQ_DONE. In TX, the radio will  
RX and TX FIFOs can be implemented in  
memory and it is recommended to use the  
DMA to transfer data between the FIFOs and  
the RF Data register, RFD. The DMA channel  
used to transfer received data to memory  
when the radio is in RX mode would have RFD  
as the source (SRCADDR[15:0]), the RX  
FIFO  
in  
memory  
as  
destination  
(DRSTADDR[15:0]), and RADIO as DMA  
trigger (TRIG[4:0]). For description on the  
usage of DMA, refer to Section 13.5 on Page  
99.  
enter  
TX_UNDERFLOW  
state  
(RFIF.IRQ_TXUVF and RFIF.IRQ_DONE will  
be asserted) if too few bytes are written to the  
RFD register compared to what the radio  
expect. To exit RX_OVERFLOW and/or  
TX_UNDERFLOW state, an SIDLE strobe  
command should be issued.  
A simple example of transmitting data is shown  
in Figure 48. This example does not use DMA.  
Note: The RFD register content will not be  
retianed in PM2 and PM3  
SWRS055D  
Page 191 of 243  
 
C2510Fx / CC2511Fx  
; Transmit the following data: 0x02, 0x12, 0x34  
; (Assume that the radio has already been configured, the high speed  
; crystal oscillator is selected as system clock, and CLKCON.CLKSPD=000)  
MOV  
JNB  
CLR  
MOV  
JNB  
CLR  
MOV  
JNB  
CLR  
MOV  
RFST,#03H  
RFTXRXIE,C1  
RFTXRXIE  
RFD,#02H  
RFTXRXIE,C2  
RFTXRXIE  
RFD,#12H  
RFTXRXIE,C3  
RFTXRXIE  
; Start TX with STX command strobe  
; Wait for interrupt flag telling radio is  
; ready to accept data, then write first  
; data byte to radio (packet length = 2)  
; Wait for radio  
;
; Send first byte in payload  
; Wait for radio  
C1:  
C2:  
C3:  
;
RFD,#34H  
; Send second byte in payload  
; Done  
Figure 48: Simple RF Transmit Example  
14.5 Data Rate Programming  
The data rate used when transmitting, or the  
data rate expected in receive is programmed  
RDATA 220  
DRATE _ E = log  
2
fref  
by  
the  
MDMCFG3.DRATE_M  
and  
the  
RDATA 228  
MDMCFG4.DRATE_E configuration registers.  
The data rate is given by the formula below.  
DRATE _ M =  
256  
fref 2DRATE _ E  
If DRATE_M is rounded to the nearest integer  
and becomes 256, increment DRATE_E and  
use DRATE_M=0.  
(
256 + DRATE _ M  
2DRATE _ E  
)
RDATA  
=
fref  
228  
The following approach can be used to find  
suitable values for a given data rate:  
14.6 Receiver Channel Filter Bandwidth  
In order to meet different channel width  
requirements, the receiver channel filter is  
programmable. The MDMCFG4.CHANBW_E and  
MDMCFG4.CHANBW_M configuration registers  
control the receiver channel filter bandwidth.  
The following formula gives the relation  
between the register settings and the channel  
filter bandwidth:  
be subtracted from the signal bandwidth. The  
following example illustrates this:  
With the channel filter bandwidth set to 600  
kHz, the signal should stay within 80% of 600  
kHz, which is 480 kHz. Assuming 2.44 GHz  
frequency and ±20 ppm frequency uncertainty  
for both the transmitting device and the  
receiving  
device,  
the  
total  
frequency  
uncertainty is ±40 ppm of 2.44 GHz, which is  
±98 kHz. If the whole transmitted signal  
bandwidth is to be received within 480 kHz, the  
transmitted signal bandwidth should be  
maximum 480 kHz – 2·98 kHz, which is 284  
kHz.  
fref  
BWchannel  
=
8(4 + CHANBW_ M )·2CHANBW_ E  
For best performance, the channel filter  
bandwidth should be selected so that the  
signal bandwidth occupies at most 80% of the  
channel filter bandwidth. The channel centre  
tolerance due to crystal accuracy should also  
The CC2510Fx/CC2511Fx supports channel filter  
bandwidths shown in Table 62 and Table 63  
respectively.  
SWRS055D  
Page 192 of 243  
 
C2510Fx / CC2511Fx  
MDMCFG4.  
MDMCFG4.CHANBW_E  
00 01 10 11  
812 406 203 102  
MDMCFG4.  
MDMCFG4.CHANBW_E  
CHANBW_M  
CHANBW_M  
00  
01  
10  
11  
94  
75  
63  
54  
00  
01  
10  
11  
00  
01  
10  
11  
750 375 188  
600 300 150  
500 250 125  
429 214 107  
650 325 162  
541 270 135  
464 232 116  
81  
68  
58  
Table 62: Channel Filter Bandwidths [kHz]  
(assuming fref = 26 MHz)  
Table 63: Channel Filter Bandwidths [kHz]  
(assuming fref = 24 MHz)  
14.7 Demodulator, Symbol Synchronizer, and Data Decision  
14.7.2  
Bit Synchronization  
CC2510Fx/CC2511Fx contains an advanced and  
highly configurable demodulator. Channel  
filtering and frequency offset compensation is  
performed digitally. To generate the RSSI level  
(see Section 14.10.3 for more information) the  
signal level in the channel is estimated. Data  
filtering is also included for enhanced  
performance.  
The bit synchronization algorithm extracts the  
clock from the incoming symbols. The  
algorithm requires that the expected data rate  
is programmed as described in Section 14.5  
on Page 192. Re-synchronization is performed  
continuously to adjust for error in the incoming  
symbol rate.  
14.7.1  
Frequency Offset Compensation  
14.7.3  
Byte Synchronization  
When using 2-FSK, GFSK, or MSK  
modulation, the demodulator will compensate  
for the offset between the transmitter and  
receiver frequency, within certain limits, by  
estimating the centre of the received data.  
This value is available in the FREQEST status  
register. Writing the value from FREQEST into  
Byte synchronization is achieved by  
a
continuous sync word search. The sync word  
is a 16 bit configurable field (can be repeated  
to get a 32 bit) that is automatically inserted at  
the start of the packet by the modulator in  
transmit mode. The demodulator uses this  
field to find the byte boundaries in the stream  
of bits. The sync word will also function as a  
system identifier, since only packets with the  
correct predefined sync word will be received if  
the sync word detection in RX is enabled in  
register MDMCFG2 (see Section 14.10.1). The  
sync word detector correlates against the  
user-configured 16 or 32 bit sync word. The  
correlation threshold can be set to 15/16,  
16/16, or 30/32 bits match. The sync word can  
be further qualified using the preamble quality  
indicator mechanism described below and/or a  
carrier sense condition. The sync word is  
configured through the SYNC1 and SYNC0  
registers and is sent MSB first.  
FSCTRL0.FREQOFF  
synthesizer is  
the  
frequency  
adjusted  
automatically  
according to the estimated frequency offset.  
The tracking range of the algorithm is  
selectable as fractions of the channel  
bandwidth with the FOCCFG.FOC_LIMIT  
configuration register.  
If the FOCCFG.FOC_BS_CS_GATE bit is set,  
the offset compensator will freeze until carrier  
sense asserts. This may be useful when the  
radio is in RX for long periods with no traffic,  
since the algorithm may drift to the boundaries  
when trying to track noise.  
The tracking loop has two gain factors, which  
affects the settling time and noise sensitivity of  
the algorithm. FOCCFG.FOC_PRE_K sets the  
gain before the sync word is detected, and  
FOCCFG.FOC_POST_K selects the gain after  
the sync word has been found.  
In order to make false detections of sync  
words less likely,  
a
mechanism called  
preamble quality indication (PQI) can be used  
to qualify the sync word. A threshold value for  
the preamble quality must be exceeded in  
order for a detected sync word to be accepted.  
See Section 14.10.2 on Page 198 for more  
details.  
SWRS055D  
Page 193 of 243  
 
C2510Fx / CC2511Fx  
14.8 Packet Handling Hardware Support  
The CC2510Fx/CC2511Fx has built-in hardware  
Forward error correction by the use of  
interleaving and coding of the data  
(convolutional coding).  
support for packet oriented radio protocols.  
In transmit mode, the packet handler can be  
configured to add the following elements to the  
packet:  
In receive mode, the packet handling support  
will de-construct the data packet by  
implementing the following (if enabled):  
A programmable number of preamble  
bytes  
Preamble detection  
A two byte synchronization (sync) word.  
Can be duplicated to give a 4-byte sync  
word (recommended). It is not possible  
to only insert preamble or only insert a  
sync word.  
Sync word detection  
CRC computation and CRC check  
One byte address check  
A CRC checksum computed over the  
Packet length check (length byte  
data field  
checked against  
maximum length)  
a
programmable  
The recommended setting is 4-byte preamble  
and 4-byte sync word, except for 500 kBaud  
data rate where the recommended preamble  
length is 8 bytes.  
De-whitening  
De-interleaving and decoding  
In addition, the following can be implemented  
on the data field and the optional 2-byte CRC  
checksum:  
Optionally, two status bytes (see Table 64 and  
Table 65) with RSSI value, Link Quality  
Indication, and CRC status can be appended  
to the received packet.  
Whitening of the data with a PN9  
sequence.  
Bit  
Field Name  
Description  
RSSI value  
7:0  
RSSI  
Table 64: Received Packet Status Byte 1  
(first byte appended after the data)  
Bit  
Field name  
Description  
7
CRC_OK  
1: CRC for received data OK (or  
CRC disabled)  
0: CRC error in received data  
6:0  
LQI  
The  
Link  
Quality  
Indicator  
estimates how easily a received  
signal can be demodulated  
Table 65: Received Packet Status Byte 2  
(second byte appended after the data)  
Note that register fields that control the packet  
handling features should only be altered when  
CC2510Fx/CC2511Fx is in the IDLE state.  
occupied bandwidth. This also gives the  
regulation loops in the receiver uniform  
operation conditions (no data dependencies).  
Real world data often contain long sequences  
of zeros and ones. Performance can then be  
improved by whitening the data before  
transmitting, and de-whitening the data in the  
14.8.1  
Data Whitening  
From a radio perspective, the ideal over the air  
data are random and DC free. This results in  
the smoothest power distribution over the  
SWRS055D  
Page 194 of 243  
 
 
C2510Fx / CC2511Fx  
sequence. This way, the whitening is reversed,  
and the original data appear in the receiver.  
The PN9 sequence is reset to all 1’s.  
receiver. With CC2510Fx/CC2511Fx, this can be  
done automatically by setting  
PKTCTRL0.WHITE_DATA=1. All data, except  
the preamble and the sync word, are then  
XOR-ed with a 9-bit pseudo-random (PN9)  
sequence before being transmitted as shown  
in Figure 49. At the receiver end, the data are  
XOR-ed with the same pseudo-random  
Data whitening can only be used when  
PKTCTRL0.CC2400_EN=0(default).  
Figure 49: Data Whitening in TX Mode  
14.8.2  
Packet Format  
Length byte or constant programmable  
packet length  
The format of the data packet can be  
configured and consists of the following items:  
Optional Address byte  
Payload  
Preamble  
Synchronization word  
Optional 2 byte CRC  
Optional data whitening  
Optionally FEC encoded/decoded  
Optional CRC-16 calculation  
Legend:  
Inserted automatically in TX,  
processed and removed in RX.  
Optional user-provided fields processed in TX,  
processed but not removed in RX.  
Preamble bits  
Data field  
(1010...1010)  
Unprocessed user data (apart from FEC  
and/or whitening)  
8
8
8 x n bits  
16/32 bits  
8 x n bits  
16 bits  
bits bits  
Figure 50: Packet Format  
SWRS055D  
Page 195 of 243  
 
C2510Fx / CC2511Fx  
The preamble pattern is an alternating  
sequence of ones and zeros (101010101…).  
The minimum length of the preamble is  
programmable through the NUM_PREAMBLE  
field in the MDMCFG1 register. When enabling  
TX, the modulator will start transmitting the  
preamble. When the programmed number of  
preamble bytes have been transmitted, the  
modulator will send the sync word, and then  
data from the RFDregister. If no data has been  
written to the RFD register when the radio is  
done transmitting the programmed number of  
preamble bytes, the modulator will continue to  
send preamble bytes until the first byte is  
written to RFD.It will then send the sync word  
followed by the data written to RFD.  
the destination address byte in the packet with  
the programmed node address in the ADDR  
register and the 0x00 broadcast address when  
PKTCTRL1.ADR_CHK=10 or both 0x00 and  
0xFF  
broadcast  
addresses  
when  
PKTCTRL1.ADR_CHK=11. If the received  
address matches a valid address, the packet  
is accepted and the RFTXRXIFflag is asserted  
and a DMA trigger is generated. If the address  
match fails, the packet is discarded and  
receive mode restarted (regardless of the  
MCSM1.RXOFF_MODE  
setting).  
The  
RFIF.IRQ_DONE flag will be asserted but the  
DMA will not be triggered.  
14.8.3.2 Maximum Length Filtering  
The synchronization word is a two-byte value  
set in the SYNC1 and SYNC0 registers. The  
sync word provides byte synchronization of the  
incoming packet. A one-byte sync word can be  
emulated by setting the SYNC1 value to the  
preamble pattern. It is also possible to emulate  
In  
variable  
packet  
length  
mode,  
the  
PKTCTRL0.LENGTH_CONFIG=1,  
PKTLEN.PACKET_LENGTH register value is  
used to set the maximum allowed packet  
length. If the received length byte has a larger  
value than this, the packet is discarded and  
receive mode restarted (regardless of the  
MCSM1.RXOFF_MODE  
RFIF.IRQ_DONE flag will be asserted but the  
a
32  
bit  
sync  
word  
by  
using  
MDMCFG2.SYNC_MODEset to 3 or 7. The sync  
word will then be repeated twice.  
setting).  
The  
CC2510Fx/CC2511Fx supports both fixed packet  
length protocols and variable packet length  
protocols. Variable or fixed packet length  
mode can be used for packets up to 255  
bytes.  
DMA will not be triggered.  
14.8.4  
Packet Handling in Transmit Mode  
The payload that is to be transmitted must be  
written into RFD. The first byte written must be  
the length byte when variable packet length is  
enabled. The length byte has a value equal to  
the payload of the packet (including the  
optional address byte). If fixed packet length is  
enabled, then the first byte written to RFD is  
interpreted as the destination address, if this  
feature is enabled in the device that receives  
the packet.  
Fixed packet length mode is selected by  
setting PKTCTRL0.LENGTH_CONFIG=0. The  
desired packet length is set by the PKTLEN  
register.  
In  
variable  
packet  
length  
mode,  
PKTCTRL0.LENGTH_CONFIG=1, the packet  
length is configured by the first byte after the  
sync word. The packet length is defined as the  
payload data, excluding the length byte and  
the optional CRC. The PKTLEN register is  
used to set the maximum packet length  
allowed in RX. Any packet received with a  
length byte with a value greater than PKTLEN  
will be discarded.  
The modulator will first send the programmed  
number of preamble bytes. If data has been  
written to RFD, the modulator will send the two-  
byte (optionally 4-byte) sync word and then the  
content of the RFD register. If CRC is enabled,  
the checksum is calculated over all the data  
pulled from the RFD register and the result is  
sent as two extra bytes following the payload  
data. If fewer bytes are written to the RFD  
registers than what the radio expects the radio  
will enter TX_UNDERFLOW state and the  
RFIF.IRQ_TXUNF flag will be set together  
with RFIF.IRQ_DONE. An SIDLE strobe  
needs to be issued to return to IDLE state.  
14.8.3  
Packet Filtering in Receive Mode  
CC2500 supports two different types of packet-  
filtering: address filtering and maximum length  
filtering.  
14.8.3.1 Address Filtering  
Setting PKTCTRL1.ADR_CHK to any other  
value than zero enables the packet address  
filter. The packet handler engine will compare  
If whitening is enabled, everything following  
the sync words will be whitened. This is done  
before the optional FEC/Interleaver stage.  
SWRS055D  
Page 196 of 243  
 
C2510Fx / CC2511Fx  
Whitening  
PKTCTRL0.WHITE_DATA=1.  
is  
enabled  
by  
setting  
When variable packet length mode is enabled,  
the first byte is the length byte. The packet  
handler stores this value as the packet length  
and receives the number of bytes indicated by  
the length byte. If fixed packet length mode is  
used, the packet handler will accept the  
programmed number of bytes.  
If FEC/Interleaving is enabled, everything  
following the sync words will be scrambled by  
the interleaver and FEC encoded before being  
modulated. FEC is enabled by setting  
MDMCFG1.FEC_EN=1.  
Next, the packet handler optionally checks the  
address and only continues the reception if the  
address matches. If automatic CRC check is  
enabled, the packet handler computes CRC  
and matches it with the appended CRC  
checksum.  
14.8.5  
Packet Handling in Receive Mode  
In receive mode, the demodulator and packet  
handler will search for a valid preamble and  
the sync word. When found, the demodulator  
has obtained both bit and byte synchronism  
and will receive the first payload byte.  
At the end of the payload, the packet handler  
will optionally write two extra packet status  
bytes that contain CRC status, link quality  
indication and RSSI value.  
If FEC/Interleaving is enabled, the FEC  
decoder will start to decode the first payload  
byte. The interleaver will de-scramble the bits  
before any other processing is done to the  
data.  
If a byte is received in the RFDregister, and it  
is not read before the next byte is received,  
the radio will enter RX_OVERFLOW state and  
the RFIF.IRQ_RXOVFflag will be set together  
with RFIF.IRQ_DONE. An SIDLE strobe  
needs to be issued to return to IDLE state.  
If whitening is enabled, the data will be de-  
whitened at this stage.  
14.9 Modulation Formats  
14.9.1  
Frequency Shift Keying  
CC2510Fx/CC2511Fx supports frequency and  
phase shift modulation formats. The desired  
2-FSK can optionally be shaped by  
Gaussian filter with BT=1, producing a GFSK  
modulated signal.  
a
modulation  
format  
is  
set  
in  
the  
MDMCFG2.MOD_FORMAT register.  
Optionally, the data stream can be Manchester  
coded by the modulator and decoded by the  
demodulator. This option is enabled by setting  
MDMCFG2.MANCHESTER_EN=1. Manchester  
encoding is not supported at the same time as  
using the FEC/Interleaver option.  
The frequency deviation is programmed with  
the DEVIATION_M and DEVIATION_E values  
in the DEVIATN register. The value has an  
exponent/mantissa form, and the resultant  
deviation is given by:  
fref  
217  
fdev  
=
(8 + DEVIATION _ M )2DEVIATION _ E  
The symbol encoding is shown in Table 66.  
Format  
Symbol  
Coding  
2-FSK/GFSK  
‘0’  
‘1’  
- Deviation  
+ Deviation  
Table 66: Symbol Encoding for 2-FSK/GFSK Modulation  
14.9.2  
Minimum Shift Keying  
The fraction of a symbol period used to  
change the phase can be modified with the  
DEVIATN.DEVIATION_M setting. This is  
equivalent to changing the shaping of the  
symbol.  
When using MSK19, the complete transmission  
(preamble, sync word, and payload) will be  
MSK modulated.  
Phase shifts are performed with a constant  
transition time.  
SWRS055D  
Page 197 of 243  
 
 
C2510Fx / CC2511Fx  
The MSK modulation format implemented in  
data compared to e.g. signal generators.  
CC2510Fx/CC2511Fx inverts the sync word and  
14.10 Received Signal Qualifiers and Link Quality Information  
register and perform the packet filtering  
CC2510Fx/CC2511Fx has several qualifiers that  
can be used to increase the likelihood that a  
valid sync word is detected.  
described in Section 14.8.3 before a valid sync  
word has been detected. The sync word  
qualifier mode is set by MDMCFG2.SYNC_MODE  
and is summarized in Table 67. Carrier sense  
in Table 67 is described in Section 14.10.4.  
14.10.1  
Sync Word Qualifier  
If sync word detection in RX is enabled in  
register MDMCFG2 the CC2510Fx/CC2511Fx will  
not start writing received data to the RFD  
MDMCFG2.  
Sync Word Qualifier Mode  
SYNC_MODE  
000  
001  
010  
011  
100  
No preamble/sync  
15/16 sync word bits detected  
16/16 sync word bits detected  
30/32 sync word bits detected  
No preamble/sync, carrier sense  
above threshold  
101  
110  
111  
15/16 + carrier sense above threshold  
16/16 + carrier sense above threshold  
30/32 + carrier sense above threshold  
Table 67: Sync Word Qualifier mode  
14.10.2  
Preamble Quality Threshold (PQT)  
IOCFGx.GDOx_CFG=1000. It is also possible  
to determine if preamble quality is reached by  
checking the PQT_REACHED bit in the  
PKTSTATUS register. This signal / bit asserts  
when the received signal exceeds the PQT.  
The Preamble Quality Threshold (PQT) sync-  
word qualifier adds the requirement that the  
received sync word must be preceded with a  
preamble with a quality above a programmed  
threshold.  
14.10.3  
RSSI  
Another use of the preamble quality threshold  
is as a qualifier for the optional RX termination  
timer. See Section 14.12.3 on Page 206 for  
details.  
The RSSI value is an estimate of the signal  
level in the chosen channel. This value is  
based on the current gain setting in the RX  
chain and the measured signal level in the  
channel.  
The preamble quality estimator increases an  
internal counter by one each time a bit is  
received that is different from the previous bit,  
and decreases the counter by 8 each time a  
bit is received that is the same as the last bit.  
The threshold is configured with the register  
field PKTCTRL1.PQT. A threshold of 4·PQTfor  
this counter is used to gate sync word  
detection. By setting the value to zero, the  
preamble quality qualifier of the sync word is  
disabled.  
In RX mode, the RSSI value can be read  
continuously from the RSSI status register  
until the demodulator detects a sync word  
(when sync word detection is enabled). At that  
point the RSSI readout value is frozen until the  
next time the chip enters the RX state. The  
RSSI value is in dBm with ½ dB resolution.  
The RSSI update rate, fRSSI, depends on the  
receiver filter bandwidth (BWchannel defined in  
Section  
14.6)  
and  
A “Preamble Quality Reached” signal can be  
observed on P1_5, P1_6, or P1_7 by setting  
AGCCTRL0.FILTER_LENGTH.  
SWRS055D  
Page 198 of 243  
 
 
C2510Fx / CC2511Fx  
2) Convert the reading from a hexadecimal  
2BWchannel  
fRSSI  
=
number  
to  
a
decimal  
number  
82FILTER _ LENGTH  
(RSSI_dec)  
If PKTCTRL1.APPEND_STATUSis enabled the  
RSSI value at sync word detection is  
automatically added to the first byte appended  
after the data payload.  
3) If RSSI_dec 128 then RSSI_dBm =  
(RSSI_dec - 256)/2 – RSSI_offset  
4) Else if RSSI_dec < 128 then RSSI_dBm  
= (RSSI_dec)/2 – RSSI_offset  
The RSSI value read from the RSSI status  
register is a 2’s complement number. The  
following procedure can be used to convert the  
RSSI reading to an absolute power level  
(RSSI_dBm).  
Table 68 provides typical values for the  
RSSI_offset.  
Figure 51 shows typical plots of RSSI readings  
as a function of input power level for different  
data rates.  
1) Read the RSSI status register  
Data Rate [kBaud]  
RSSI_offset [dB]  
2.4  
10  
74  
74  
71  
72  
250  
500  
Table 68: Typical RSSI_offset Values  
SWRS055D  
Page 199 of 243  
 
C2510Fx / CC2511Fx  
0.0  
-10.0  
-20.0  
-30.0  
RSSI readout [dBm]  
-40.0  
-50.0  
-60.0  
-70.0  
-80.0  
-90.0  
-100.0  
-110.0  
-120.0  
-120 -110 -100 -90  
-80  
-70  
-60  
-50  
-40  
-30  
-20  
-10  
0
Input power [dBm]  
250 kBaud, reduced current  
500 kBaud  
2.4 kBaud  
10 kBaud  
250 kBaud  
Figure 51: Typical RSSI Value vs. Input Power Level for Some Typical Data Rates  
14.10.4  
Carrier Sense (CS)  
14.10.5  
CS Absolute Threshold  
The Carrier Sense (CS) flag is used as a sync  
word qualifier and for CCA. The CS flag can  
be set based on two conditions, which can be  
individually adjusted:  
The absolute threshold related to the RSSI  
value depends on the following register fields:  
AGCCTRL2.MAX_LNA_GAIN  
CS is asserted when the RSSI is above  
a programmable absolute threshold, and  
de-asserted when RSSI is below the  
same threshold (with hysteresis).  
AGCCTRL2.MAX_DVGA_GAIN  
AGCCTRL1.CARRIER_SENSE_ABS_THR  
AGCCTRL2.MAGN_TARGET  
CS is asserted when the RSSI has  
increased with a programmable number  
of dB from one RSSI sample to the next,  
and de-asserted when RSSI has  
decreased with the same number of dB.  
This setting is not dependent on the  
absolute signal level and is thus useful  
to detect signals in environments with a  
time varying noise floor.  
For a given AGCCTRL2.MAX_LNA_GAIN and  
AGCCTRL2.MAX_DVGA_GAIN setting the  
absolute threshold can be adjusted ±7 dB in  
steps of dB using  
CARRIER_SENSE_ABS_THR.  
1
The MAGN_TARGET setting is a compromise  
between blocker tolerance/selectivity and  
sensitivity. The value sets the desired signal  
level in the channel into the demodulator.  
Increasing this value reduces the headroom  
for blockers, and therefore close-in selectivity.  
It is strongly recommended to use SmartRF®  
Carrier Sense can be used as a sync word  
qualifier that requires the signal level to be  
higher than the threshold for a sync word  
search to be performed. The signal can also  
be observed on P1_5, P1_6, or P1_7 by  
setting IOCFGx.GDOx_CFG=1110 and in the  
status register bit PKTSTATUS.CS.  
Studio  
[8]  
to  
generate  
the  
correct  
MAGN_TARGET setting.  
Table 69 and Table 70 show the typical RSSI  
readout values at the CS threshold at 2.4  
kBaud and 250 kBaud data rate respectively.  
The default CARRIER_SENSE_ABS_THR=0 (0  
dB) and MAGN_TARGET=11(33 dB) have been  
used.  
Other uses of Carrier Sense include the TX-if-  
CCA function (see Section 14.10.7 on Page  
201) and the optional fast RX termination (see  
Section 14.12.3 on Page 206).  
CS can be used to avoid interference from e.g.  
WLAN.  
SWRS055D  
Page 200 of 243  
 
C2510Fx / CC2511Fx  
For other data rates the user must generate  
similar tables to find the CS absolute  
threshold.  
thus useful to detect signals in environments  
with a time varying noise floor. The register  
field AGCCTRL1.CARRIER_SENSE_REL_THR  
is used to enable/disable relative CS, and to  
select threshold of 6 dB, 10 dB or 14 dB RSSI  
change  
MAX_DVGA_GAIN[1:0]  
00  
01  
10  
11  
000  
001  
010  
011  
100  
101  
110  
111  
-99  
-93  
-87  
-85  
-82  
-80  
-78  
-76  
-73  
-70  
-81.5  
-78.5  
-76  
14.10.7  
Clear Channel Assessment (CCA)  
-97  
-90.5  
-87  
The Clear Channel Assessment CCA) is used  
to indicate if the current channel is free or  
busy. The current CCA state is viewable on  
-93.5  
-91.5  
-90.5  
-88  
-86  
-74  
-84  
-72.5  
-70  
P1_5,  
P1_6,  
or  
P1_7  
by  
setting  
IOCFGx.GDOx_CFG=1001.  
-82.5  
-78.5  
-76  
MCSM1.CCA_MODE selects the mode to use  
when determining CCA.  
-84.5  
-82.5  
-67  
-64  
When the STXor SFSTXONcommand strobe is  
given while CC2510Fx/CC2511Fx is in the RX  
state, the TX or FSTXON state is only entered  
if the clear channel requirements are fulfilled.  
The chip will otherwise remain in RX (if the  
channel becomes available, the radio will not  
enter TX or FSTXON state before a new  
strobe command is being issued). This feature  
is called TX-if-CCA.  
Table 69: Typical RSSI Value in dBm at CS  
Threshold with Default MAGN_TARGETat 2.4  
kBaud  
MAX_DVGA_GAIN[1:0]  
00  
01  
10  
11  
000  
001  
010  
011  
100  
101  
110  
111  
-96  
-90  
-84  
-78.5  
-77.5  
-75  
Four CCA requirements can be programmed:  
-94.5  
-92.5  
-91  
-89  
-83  
Always (CCA disabled, always goes to  
-87  
-81  
TX)  
-85  
-78.5  
-76  
-73  
If RSSI is below threshold  
-87.5  
-85  
-82  
-70  
Unless currently receiving a packet  
-79.5  
-76.5  
-72  
-73.5  
-70.5  
-66  
-67.5  
-65  
Both the above (RSSI below threshold  
-83  
and not currently receiving a packet)  
-78  
-60  
Table 70: Typical RSSI Value in dBm at CS  
Threshold with Default MAGN_TARGETat 250  
kBaud  
14.10.8  
Link Quality Indicator (LQI)  
The Link Quality Indicator is a metric of the  
current quality of the received signal. If  
PKTCTRL1.APPEND_STATUS is enabled, the  
value is automatically added to the last byte  
appended after the payload. The value can  
also be read from the LQIstatus register. The  
LQI gives an estimate of how easily a received  
signal can be demodulated by accumulating  
the magnitude of the error between ideal  
constellations and the received signal over the  
64 symbols immediately following the sync  
If the threshold is set high, i.e. only strong  
signals are wanted, the threshold should be  
adjusted upwards by first reducing the  
MAX_LNA_GAIN  
value  
and  
then  
the  
MAX_DVGA_GAIN value. This will reduce  
power consumption in the receiver front end,  
since the highest gain settings are avoided.  
word. LQI is best used as  
a
relative  
14.10.6  
CS Relative Threshold  
measurement of the link quality (a high value  
indicates a better link than what a low value  
does), since the value is dependent on the  
modulation format.  
The relative threshold detects sudden changes  
in the measured signal level. This setting is not  
dependent on the absolute signal level and is  
SWRS055D  
Page 201 of 243  
 
C2510Fx / CC2511Fx  
14.11 Forward Error Correction with Interleaving  
14.11.1 Forward Error Correction (FEC)  
sensitivity. In other words, the improved  
reception by using FEC and the degraded  
sensitivity from a higher receiver bandwidth  
will be counteracting factors.  
CC2510Fx/CC2511Fx has built in support for  
Forward Error Correction (FEC). To enable  
this option, set MDMCFG1.FEC_ENto 1. FEC is  
only supported in fixed packet length mode  
(PKTCTRL0.LENGTH_CONFIG=0). FEC is  
employed on the data field and CRC word in  
order to reduce the gross bit error rate when  
14.11.2  
Interleaving  
Data received through radio channels will  
often experience burst errors due to  
interference and time-varying signal strengths.  
In order to increase the robustness to errors  
spanning multiple bits, interleaving is used  
when FEC is enabled. After de-interleaving, a  
continuous span of errors in the received  
stream will become single errors spread apart.  
operating  
near  
the  
sensitivity  
limit.  
Redundancy is added to the transmitted data  
in such a way that the receiver can restore the  
original data in the presence of some bit  
errors.  
The use of FEC allows correct reception at a  
lower SNR, thus extending communication  
range. Alternatively, for a given SNR, using  
FEC decreases the bit error rate (BER). As the  
packet error rate (PER) is related to BER by:  
CC2510Fx/CC2511Fx employs matrix interleaving,  
which is illustrated in Figure 52. The on-chip  
interleaving and de-interleaving buffers are 4 x  
4 matrices. In the transmitter, the data bits  
from the rate ½ convolutional coder are written  
into the rows of the matrix, whereas the bit  
sequence to be transmitted is read from the  
columns of the matrix. Conversely, in the  
receiver, the received symbols are written into  
the columns of the matrix, whereas the data  
passed onto the convolutional decoder is read  
from the rows of the matrix.  
PER = 1(1BER)packet _ length  
,
a lower BER can be used to allow longer  
packets, or a higher percentage of packets of  
a given length, to be transmitted successfully.  
Finally, in realistic ISM radio environments,  
transient and time-varying phenomena will  
produce occasional errors even in otherwise  
good reception conditions. FEC will mask such  
errors and, combined with interleaving of the  
coded data, even correct relatively long  
periods of faulty reception (burst errors).  
When FEC and interleaving is used at least  
one extra byte is required for trellis  
termination. In addition, the amount of data  
transmitted over the air must be a multiple of  
the size of the interleaver buffer (two bytes).  
The packet control hardware therefore  
automatically inserts one or two extra bytes at  
the end of the packet, so that the total length  
of the data to be interleaved is an even  
number. Note that these extra bytes are  
invisible to the user, as they are removed  
before the received packet enters the RFD  
data register.  
The  
FEC  
scheme  
adopted  
for  
CC2510Fx/CC2511Fx is convolutional coding, in  
which n bits are generated based on k input  
bits and the m most recent input bits, forming  
a code stream able to withstand a certain  
number of bit errors between each coding  
state (the m-bit window).  
The convolutional coder is a rate 1/2 code with  
a constraint length of m=4. The coder codes  
one input bit and produces two output bits;  
hence, the effective data rate is halved. I.e. to  
transmit at the same effective data rate when  
using FEC, it is necessary to use twice as high  
over-the-air data rate. This will require a higher  
receiver bandwidth, and thus reduce  
When FEC and interleaving is used the  
minimum data payload is 2 bytes.  
SWRS055D  
Page 202 of 243  
C2510Fx / CC2511Fx  
Interleaver  
Write buffer  
Interleaver  
Read buffer  
Packet  
Engine  
FEC  
Encoder  
Modulator  
Interleaver  
Write buffer  
Interleaver  
Read buffer  
FEC  
Decoder  
Packet  
Engine  
Demodulator  
Figure 52: General Principle of Matrix Interleaving  
14.12 Radio Control  
A simplified state diagram is shown in Figure  
47 on Page 188. The complete radio control  
state diagram is shown in Figure 53. The  
numbers refer to the state number readable in  
the MARCSTATEstatus register. This register is  
primarily for test purposes.  
CC2510Fx/CC2511Fx has a built-in state machine  
that is used to switch between different  
operation states (modes). The change of state  
is done either by using command strobes or by  
internal events such as TX FIFO underflow.  
SWRS055D  
Page 203 of 243  
C2510Fx / CC2511Fx  
Figure 53: Complete Radio Control State Diagram  
14.12.1 Active Modes  
three automatic calibration options, controlled  
by the MCSM0.FS_AUTOCALsetting:  
The radio has two active modes: receive and  
transmit. These modes are activated directly  
by writing the SRXand STXcommand strobes  
to the RFSTregister.  
Calibrate when going from IDLE to  
either RX or TX (or FSTXON)  
Calibrate when going from either RX or  
The frequency synthesizer must be calibrated  
regularly. CC2510Fx/CC2511Fx has one manual  
calibration option (using the SCALstrobe), and  
TX to IDLE automatically  
Calibrate every fourth time when going  
from either RX or TX to IDLE  
automatically  
SWRS055D  
Page 204 of 243  
 
C2510Fx / CC2511Fx  
If the radio goes from TX or RX to IDLE by  
issuing an SIDLEstrobe, calibration will not be  
performed. The calibration takes a constant  
number of XOSC cycles (see Table 71 for  
timing details).  
transmit and an SRX strobe is written to the  
RFSTregister, the current transmission will be  
ended and the transition to RX will be done.  
If the radio controller is in RX when the STX or  
SFSTXON command strobes are used and  
When RX is activated, the chip will remain in  
receive mode until a packet is successfully  
received or the RX termination timer expires  
(see Section 14.12.3). Note: The probability  
that a false sync word is detected can be  
reduced by using PQT, CS, maximum sync  
word length, and sync word qualifier mode as  
describe in Section 14.10.1. After a packet is  
successfully received the radio controller will  
then go to the state indicated by the  
MCSM1.RXOFF_MODE setting. The possible  
destinations are:  
MCSM1.CCA_MODE  
00, the TX-if-CCA  
function will be used. If the channel is not  
clear, the chip will remain in RX. For more  
details on clear channel assessment, see  
Section 14.10.7 on Page 201.  
The SIDLE command strobe can always be  
used to force the radio controller to go to the  
IDLE state.  
14.12.2  
Timing  
The radio controller controls most timing in  
CC2510Fx/CC2511Fx, such as synthesizer  
calibration, PLL lock time and RX/TX  
turnaround times. Timing from IDLE to RX and  
IDLE to TX is constant, dependent on the auto  
calibration setting. RX/TX and TX/RX  
turnaround times are constant. The calibration  
time is constant 18739 clock periods (fRef).  
Table 71 shows the timing for key state  
transitions.  
IDLE  
FSTXON: Frequency synthesizer on  
and ready at the TX frequency. Activate  
TX with STX.  
TX: Start sending preambles  
RX: Start search for a new packet  
Similarly, when TX is active the chip will  
remain in the TX state until the current packet  
has been successfully transmitted. Then the  
state will change as indicated by the  
MCSM1.TXOFF_MODE setting. The possible  
destinations are the same as for RX.  
Power on time and XOSC start-up times are  
variable, but within the limits stated in Table 11  
and Table 12  
Note that in a frequency hopping spread  
spectrum or a multi-channel protocol it is  
possible to reduce the calibration time  
significantly. This is explained in Section  
14.17.2.  
It is possible to change the state from RX to  
TX and vice versa by using the command  
strobes. If the radio controller is currently in  
Transition Time  
Description  
fRef Periods  
2298  
fRef = 26 MHz fRef = 24 MHz  
Idle to RX, no calibration  
Idle to RX, with calibration  
88.4 µs  
809 µs  
88.4 µs  
95.8 µs  
876.5 µs  
95.8 µs  
~21037  
2298  
Idle to TX/FSTXON, no  
calibration  
Idle to TX/FSTXON, with  
calibration  
~21037  
809 µs  
876.5 µs  
TX to RX switch  
560  
250  
2
21.5 µs  
9.6 µs  
0.1 µs  
721 µs  
721 µs  
23.3 µs  
10.4 µs  
0.1 µs  
RX to TX switch  
RX or TX to IDLE, no calibration  
RX or TX to IDLE, with calibration ~18739  
Manual calibration ~18739  
780.8 µs  
780.8 µs  
Table 71: State Transition Timing  
SWRS055D  
Page 205 of 243  
 
C2510Fx / CC2511Fx  
14.12.3  
RX Termination Timer  
If the system can expect the transmission to  
have started when enabling the receiver, the  
MCSM2.RX_TIME_RSSIfunction can be used.  
The radio controller will then terminate RX if  
the first valid carrier sense sample indicates  
no carrier (RSSI below threshold). See Section  
14.10.4 on Page 200 for details on Carrier  
Sense.  
CC2510Fx/CC2511Fx has optional functions for  
automatic termination of RX after  
a
programmable time. The termination timer  
starts when in RX state. The timeout is  
programmable with the MCSM2.RX_TIME  
setting. When the timer expires, the radio  
controller will check the condition for staying in  
RX; if the condition is not met, RX will  
terminate.  
If RX terminates due to no carrier sense when  
the MCSM2.RX_TIME_RSSI function is used,  
or if no sync word was found when using the  
MCSM2.RX_TIME timeout function, the chip  
will always go back to IDLE.  
The programmable conditions are:  
MCSM2.RX_TIME_QUAL=0:  
Continue  
receive if sync word has been found  
MCSM2.RX_TIME_QUAL=1:  
receive if sync word has been found or  
preamble quality is above threshold  
(PQT)  
Continue  
14.13 Frequency Programming  
The frequency programming  
in  
the  
MDMCFG0.CHANSPC_M  
and  
CC2510Fx/CC2511Fx is designed to minimize the  
programming needed in a channel-oriented  
system.  
MDMCFG1.CHANSPC_E registers. The channel  
spacing registers are mantissa and exponent  
respectively.  
To set up a system with channel numbers, the  
desired channel spacing is programmed with  
fref  
218  
fCHANNEL  
=
(
256 + CHANSPC _ M  
2CHANSPC _ E CHAN  
)
SWRS055D  
Page 206 of 243  
C2510Fx / CC2511Fx  
The base or start frequency is set by the 24 bit  
frequency word located in the FREQ2, FREQ1  
and FREQ0 registers. This word will typically  
be set to the centre of the lowest channel  
frequency that is to be used.  
The desired channel number is programmed  
with the 8-bit channel number register,  
CHANNR.CHAN, which is multiplied by the  
channel offset. The resultant carrier frequency  
is given by:  
fref  
216  
fcarrier  
=
(
FREQ + CHAN ⋅  
(
(256 + CHANSPC _ M ) 2CHANSPC _ E2 ))  
With a reference frequency, fRef, equal to 26  
MHz, the maximum channel spacing is 405  
kHz. To get e.g. 1 MHz channel spacing one  
solution is to use 333 kHz channel spacing  
Note that the SmartRF® Studio software [8]  
automatically calculates the optimum register  
setting based on channel spacing and channel  
filter bandwidth.  
and  
select  
each  
third  
channel  
in  
If any frequency programming register is  
altered when the frequency synthesizer is  
running, the synthesizer may give an  
undesired response. Hence, the frequency  
programming should only be updated when  
the radio is in the IDLE state.  
CHANNR.CHAN.  
The preferred IF frequency is programmed  
with the FSCTRL1.FREQ_IF register. The IF  
frequency is given by:  
fref  
fIF  
=
FREQ _ IF  
210  
14.14 VCO  
The VCO is completely integrated on-chip.  
14.14.1 VCO and PLL Self-Calibration  
The calibration can be initiated automatically or  
manually.  
The  
synthesizer  
can  
be  
automatically calibrated each time the  
synthesizer is turned on, or each time the  
synthesizer is turned off automatically. This is  
configured with the MCSM0.FS_AUTOCAL  
register setting. In manual mode, the  
calibration is initiated when the SCAL  
command strobe is activated in the IDLE  
mode.  
The VCO characteristics will vary with  
temperature and supply voltage changes, as  
well as the desired operating frequency. In  
order  
to  
ensure  
reliable  
operation,  
CC2510Fx/CC2511Fx  
includes  
frequency  
synthesizer self-calibration circuitry. This  
calibration should be done regularly, and must  
be performed after turning on power and  
before using a new frequency (or channel).  
The number of fRef periods for completing the  
PLL calibration is given in Table 71 on Page  
205.  
Note that the calibration values are maintained  
in power-down modes PM1/2/3, so the  
calibration is still valid after waking up from  
these power-down modes (unless supply  
voltage or temperature has changed  
significantly).  
14.15 Output Power Programming  
The RF output power level from the device is  
programmed through the PA_TABLE0register.  
Table 72 contains recommended PA_TABLE0  
settings for various output levels and  
frequency bands, together with current  
consumption in the RF transceiver.  
SWRS055D  
Page 207 of 243  
C2510Fx / CC2511Fx  
Output Power [dBm]  
Setting Current Consumption, typ. [mA]  
Typical +25 ºC, 3.0 V  
(–55 or less)  
–30  
–28  
–26  
–24  
–22  
–20  
–18  
–16  
–14  
–12  
–10  
–8  
0x00  
0x44  
0x41  
0x54  
0x53  
0x83  
0xC1  
0xC8  
0x87  
0x59  
0x95  
0xCB  
0x99  
0x7F  
0xAA  
0xBF  
0xFE  
0xFF  
12  
13  
13  
15  
14  
14  
14  
15  
14.5  
15  
15.5  
16  
16.5  
18.5  
20  
–6  
–4  
–2  
21.5  
26  
0
1
26.5  
Table 72: Optimum PA_TABLE0Settings for Various Output Power Levels (subject to changes)  
SWRS055D  
Page 208 of 243  
C2510Fx / CC2511Fx  
14.16 Selectivity  
Figure 54 to Figure 58 show the typical selectivity performance (adjacent and alternate rejection).  
50  
40  
30  
20  
10  
0
-1  
-0.8  
-0.6  
-0.4  
-0.2  
0
0.2  
0.4  
0.6  
0.8  
1
-10  
Frequency offset [MHz]  
Figure 54: Typical Selectivity at 2.4 kBaud. IF Frequency is 273.9 kHz.  
MDMCFG2.DEM_DCFILT_OFF=1  
40  
35  
30  
25  
20  
15  
10  
5
0
-1  
-0.8  
-0.6  
-0.4  
-0.2  
0
0.2  
0.4  
0.6  
0.8  
1
-5  
-10  
Frequency offset [MHz]  
Figure 55: Typical Selectivity at 10 kBaud. IF Frequency is 273.9 kHz.  
MDMCFG2.DEM_DCFILT_OFF=1  
50  
40  
30  
20  
10  
0
-3  
-2  
-1  
0
1
2
3
-10  
-20  
Frequency offset [MHz]  
Figure 56: Typical Selectivity at 250 kBaud. IF Frequency is 177.7 kHz.  
MDMCFG2.DEM_DCFILT_OFF=0  
SWRS055D  
Page 209 of 243  
 
C2510Fx / CC2511Fx  
50  
40  
30  
20  
10  
0
-3  
-2  
-1  
0
1
2
3
-10  
-20  
Frequency offset [MHz]  
Figure 57:Typical Selectivity at 250 kBaud. IF Frequency is 457 kHz.  
MDMCFG2.DEM_DCFILT_OFF=1  
35  
30  
25  
20  
15  
10  
5
0
-3  
-2  
-1  
0
1
2
3
-5  
-10  
-15  
-20  
Frequency offset [MHz]  
Figure 58: Typical Selectivity at 500 kBaud. IF Frequency is 307.4 kHz.  
MDMCFG2.DEM_DCFILT_OFF=0  
SWRS055D  
Page 210 of 243  
C2510Fx / CC2511Fx  
14.17 System considerations and Guidelines  
14.17.1 SRD Regulations  
The VCO current calibration result is available  
in FSCAL2 and is not dependent on the RF  
frequency. Neither is the charge pump current  
calibration result available in FSCAL3. The  
same value can therefore be used for all  
frequencies.  
International regulations and national laws  
regulate the use of radio receivers and  
transmitters. The most important regulations  
for the 2.4 GHz band are EN 300 440 and EN  
300 328 (Europe), FCC CFR47 part 15.247  
and 15.249 (USA), and ARIB STD-T66  
(Japan). A summary of the most important  
aspects of these regulations can be found in  
Application Note AN032 [9].  
3) Run calibration on a single frequency at  
startup. Next write 0 to FSCAL3[5:4] to  
disable the charge pump calibration. After  
writing to FSCAL3[5:4] strobe SRX (or STX)  
with MCSM0.FS_AUTOCAL=1 for each new  
frequency hop. That is, VCO current and VCO  
capacitance calibration is done but not charge  
pump current calibration. When charge pump  
current calibration is disabled the calibration  
time is reduced from approximately 720 µs to  
approximately 150 µs when fRef is 26 MHz and  
from 780 µs to 163 µs when fRef is 24 MHz.  
The blanking interval between each frequency  
hop is then approximately 240 µs us and 260  
µs respectively.  
Please note that compliance with regulations is  
dependent on complete system performance.  
It is the customer’s responsibility to ensure that  
the system complies with regulations.  
14.17.2  
Frequency Hopping and Multi-  
Channel Systems  
The 2.400 – 2.4835 GHz band is shared by  
many systems both in industrial, office and  
home  
environments.  
It  
is  
therefore  
recommended to use frequency hopping  
spread spectrum (FHSS) or a multi-channel  
protocol because the frequency diversity  
makes the system more robust with respect to  
interference from other systems operating in  
the same frequency band. FHSS also combats  
multipath fading.  
There is a trade off between blanking time and  
memory space needed for storing calibration  
data in non-volatile memory. Solution 2) above  
gives the shortest blanking interval, but  
requires more memory space to store  
calibration  
values.  
Solution  
3)  
gives  
approximately 570 µs smaller blanking interval  
than solution 1 when fRef is 24 MHz and  
approximately 615 µs smaller blanking interval  
than solution 1 when fRef is 24 MHz ).  
Charge pump current, VCO current and VCO  
capacitance array calibration data is required  
for each frequency when implementing  
frequency hopping for CC2510Fx/CC2511Fx.  
There are 3 ways of obtaining the calibration  
data from the chip:  
14.17.3  
Wideband Modulation not Using  
Spread Spectrum  
1) Frequency hopping with calibration for each  
hop. The PLL calibration time is approximately  
720 µs and the blanking interval between each  
frequency hop is then approximately 810 µs  
(PLL turn on time is 90 us) when fRef is 26  
MHz. When fRef is 24 MHz, these numbers are  
780 µs and 875 µs respectively.  
Digital modulation systems under FCC part  
15.247 includes 2-FSK and GFSK modulation.  
A maximum peak output power of 1 W (+30  
dBm) is allowed if the 6 dB bandwidth of the  
modulated signal exceeds 500 kHz. In  
addition, the peak power spectral density  
conducted to the antenna shall not be greater  
than +8 dBm in any 3 kHz band.  
2) Fast frequency hopping without calibration  
for each hop can be done by calibrating each  
frequency at startup and saving the resulting  
FSCAL3, FSCAL2 and FSCAL1 register values  
in memory. Between each frequency hop, the  
calibration process can then be replaced by  
writing the FSCAL3, FSCAL2 and FSCAL1  
register values corresponding to the next RF  
frequency. The PLL turn on time is  
approximately 90 µs when fRef is 26 MHz and  
95 µs when fRef is 24 MHz. The blanking  
interval between each frequency hop is then  
approximately equal to the PLL turn on time.  
Operating at high data rates and high  
frequency separation, the CC2510Fx/CC2511Fx is  
suited for systems targeting compliance with  
digital modulation systems as defined by FCC  
part 15.247. An external power amplifier is  
needed to increase the output above +1 dBm.  
14.17.4  
Data Burst Transmissions  
high maximum data  
The  
rate  
of  
CC2510Fx/CC2511Fx opens up for burst  
transmissions. A low average data rate link  
SWRS055D  
Page 211 of 243  
C2510Fx / CC2511Fx  
(e.g. 10 kBaud), can be realized using a higher  
over-the-air data rate. Buffering the data and  
transmitting in bursts at high data rate (e.g.  
500 kBaud) will reduce the time in active  
mode, and hence also reduce the average  
current consumption significantly. Reducing  
the time in active mode will reduce the  
likelihood of collisions with other systems, e.g.  
WLAN.  
Thus, higher data rates can be transmitted in  
the same bandwidth using GFSK.  
14.17.7  
Low Cost Systems  
A differential antenna will eliminate the need  
for a balun (see Figure 10, Figure 11, and  
Figure 12). The CC25XX Folded Dipole  
reference design [3] contains schematics and  
layout files for a CC2500EM with a folded  
dipole PCB antenna. This antenna design can  
also be used by the CC2510Fx/CC2511Fx to  
provide a low cost system. Please see DN004  
[10] for more details on this design.  
14.17.5 Crystal Drift Compensation  
The CC2510Fx/CC2511Fx has  
a
very fine  
frequency resolution (see Table 16). This  
feature can be used to compensate for  
frequency offset and drift.  
A HC-49 type SMD crystal is used in the  
CC2510EM reference design [1]. Note that the  
crystal package strongly influences the price.  
In a size constrained PCB design a smaller,  
but more expensive, crystal may be used.  
The frequency offset between an ‘external’  
transmitter and the receiver is measured in the  
CC2510Fx/CC2511Fx and can be read back from  
the FREQEST status register as described in  
Section 14.7.1. The measured frequency offset  
can be used to calibrate the frequency using  
the ‘external’ transmitter as the reference. That  
is, the received signal of the device will match  
the receiver’s channel filter better. In the same  
way the centre frequency of the transmitted  
signal will match the ‘external’ transmitter’s  
signal.  
14.17.8  
Battery Operated Systems  
In low power applications, PM2 or PM3 should  
be used when the CC2510Fx/CC2511Fx is not  
active. The Sleep Timer can be used in PM2.  
14.17.9  
Increasing Output Power  
In some applications it may be necessary to  
extend the link range. Adding an external  
power amplifier is the most effective way of  
doing this.  
14.17.6  
Spectrum Efficient Modulation  
CC2510Fx/CC2511Fx also has the possibility to  
use Gaussian shaped 2-FSK (GFSK). This  
spectrum-shaping feature improves adjacent  
channel power (ACP) and occupied bandwidth.  
In ‘true’ 2-FSK systems with abrupt frequency  
shifting, the spectrum is inherently broad. By  
making the frequency shift ‘softer’, the  
spectrum can be made significantly narrower.  
The power amplifier should be inserted  
between the antenna and the balun, and two.  
T/R switches are needed to disconnect the PA  
in RX mode. See Figure 59  
Antenna  
Filter  
P
A
CC2510Fx /  
Balun  
CC2511Fx  
T/R  
switch  
T/R  
switch  
Figure 59: Block Diagram of CC2510Fx/CC2511Fx Usage with External Power Amplifier  
SWRS055D  
Page 212 of 243  
 
C2510Fx / CC2511Fx  
14.18 Radio Registers  
This Section describes all RF registers used for control and status for the radio.  
0xDF2F: IOCFG2 – Radio Test Signal Configuration (P1_7)  
Bit Field Name  
Reset  
R/W Description  
R0 Not used  
7
-
6
GDO2_INV  
0
R/W Invert output, i.e. select active low (1) / high (0)  
5:0 GDO2_CFG[5:0]  
000000  
R/W Debug output on P1_7 pin. See Table 73 for a  
description of internal signals which can be output on  
this pin for debug purpose  
0xDF30: IOCFG1 – Radio Test Signal Configuration (P1_6)  
Bit Field Name  
Reset  
R/W Description  
7
GDO_DS  
0
R/W Enable / disable drive strength enhancement for all port  
outputs. To be used below 2.6 V  
0
1
Disable  
Enable  
6
GDO1_INV  
0
R/W Invert output  
0
1
Active high  
Active low  
5:0 GDO1_CFG[5:0]  
000000  
R/W Debug output on P1_6 pin. See Table 73 for a  
description of internal signals which can be output on  
this pin for debug purpose  
0xDF31: IOCFG0 – Radio Test Signal Configuration (P1_5)  
Bit Field Name  
Reset  
R/W  
Description  
7
-
R0  
Not used  
6
GDO0_INV  
0
R/W  
R/W  
Invert output, i.e. select active low (1) / high (0)  
5:0 GDO0_CFG[5:0]  
000000  
Debug output on P1_5 pin. See Table 73 for a  
description of internal signals which can be output on  
this pin for debug purpose.  
0xDF00: SYNC1 – Sync Word, High Byte  
Bit Field Name  
Reset  
R/W Description  
7:0 SYNC[15:8]  
0xD3  
R/W 8 MSB of 16-bit sync word  
0xDF01: SYNC0 – Sync Word, Low Byte  
Bit Field Name  
Reset  
R/W Description  
7:0 SYNC[7:0]  
0x91  
R/W 8 LSB of 16-bit sync word  
0xDF02: PKTLEN – Packet Length  
Bit Field Name  
Reset  
R/W  
Description  
7:0 PACKET_LENGTH  
0xFF  
R/W  
Indicates the packet length when fixed length packets  
are enabled. If variable length packets are used, this  
value indicates the maximum length packets allowed  
SWRS055D  
Page 213 of 243  
 
 
 
 
 
 
 
 
 
C2510Fx / CC2511Fx  
0xDF03: PKTCTRL1 – Packet Automation Control  
Bit  
Field Name  
Reset  
R/W  
Description  
7:5  
PQT[2:0]  
000  
R/W  
Preamble quality estimator threshold. The preamble quality estimator  
increases an internal counter by one each time a bit is received that is  
different from the previous bit, and decreases the counter by 8 each  
time a bit is received that is the same as the last bit.  
A threshold of 4·PQTfor this counter is used to gate sync word  
detection. When PQT=0a sync word is always accepted  
4:3  
2
-
R0  
Not used  
APPEND_STATUS  
ADR_CHK[1:0]  
1
R/W  
When enabled, two status bytes will be appended to the payload of the  
packet. The status bytes contain RSSI and LQI values, as well as the  
CRC OK flag  
1:0  
00  
R/W  
Controls address check configuration of received packages.  
00  
01  
10  
11  
No address check  
Address check, no broadcast  
Address check, 0 (0x00) broadcast  
Address check, 0 (0x00) and 255 (0xFF) broadcast  
0xDF04: PKTCTRL0 – Packet Automation Control  
Bit  
Field Name  
Reset  
R/W  
Description  
7
6
-
R0  
Not used  
WHITE_DATA  
1
R/W  
Whitening enable. Data whitening can only be used when  
PKTCTRL0.CC2400_EN=0(default).  
0
1
Disabled  
Enabled  
5:4  
PKT_FORMAT[1:0]  
00  
R/W  
Packet format of RX and TX data  
00  
01  
Normal mode  
Reserved  
Random TX mode; sends random data using PN9 generator.  
Used for test.  
10  
Works as normal mode, setting 00, in RX.  
11  
Reserved  
3
CC2400_EN  
0
R/W  
CC2400 support enable. Use same CRC implementation as CC2400.  
The CC2400 CRC can only be used if PKTCTRL0.WHITE_DATA=0  
0
1
Disable  
Enable  
2
CRC_EN  
1
R/W  
R/W  
CRC calculation in TX and CRC check in RX enable  
0
1
Disable  
Enable  
1:0  
LENGTH_CONFIG[1:0]  
01  
Packet Length Configuration  
00  
01  
Fixed packet length mode. Length configured in PKTLENregister  
Variable packet length mode. Packet length configured by the  
first byte after sync word  
10  
11  
Reserved  
Reserved  
SWRS055D  
Page 214 of 243  
 
 
 
C2510Fx / CC2511Fx  
0xDF05: ADDR – Device Address  
Bit Field Name  
Reset  
R/W  
Description  
7:0 DEVICE_ADDR[7:0]  
0x00  
R/W  
Address used for packet filtration. Optional broadcast addresses  
are 0 (0x00) and 255 (0xFF).  
0xDF06: CHANNR – Channel Number  
Bit Field Name  
Reset  
R/W  
Description  
7:0 CHAN[7:0]  
0x00  
R/W  
The 8-bit unsigned channel number, which is multiplied by the channel  
spacing setting and added to the base frequency.  
0xDF07: FSCTRL1 – Frequency Synthesizer Control  
Bit Field Name  
Reset  
R/W  
Description  
7:6  
-
R0  
Not used  
Reserved  
5
0
R/W  
R/W  
4:0 FREQ_IF[4:0]  
01111  
The desired IF frequency to employ in RX. Subtracted from FS base  
frequency in RX and controls the digital complex mixer in the  
demodulator.  
fref  
210  
fIF  
=
FREQ _ IF  
The default value gives an IF frequency of 381 kHz when fRef = 26 MHz  
and 352 kHz when fRef = 24 MHz.  
0xDF08: FSCTRL0 – Frequency Synthesizer Control  
Bit Field Name  
Reset  
R/W  
Description  
7:0 FREQOFF[7:0]  
0x00  
R/W  
Frequency offset added to the base frequency before being used by the  
FS. (2’s complement).  
Resolution is fRef /214  
Range is ±186 kHz to ±209 kHz for CC2510Fx and ±186 kHz for CC2511Fx  
0xDF09: FREQ2 – Frequency Control Word, High Byte  
Bit  
Field Name  
Reset  
R/W  
Description  
7:6  
5:0  
FREQ[23:22]  
FREQ[21:16]  
01  
R
FREQ[23:22]  
11110  
R/W  
FREQ[23:0] is the base frequency for the frequency synthesizer in  
increments of fRef /216.  
fref  
216  
fcarrier  
=
[
FREQ 23:0  
]
0xDF0A: FREQ1 – Frequency Control Word, Middle Byte  
Bit  
Field Name  
Reset  
R/W  
Description  
7:0  
FREQ[15:8]  
11000100  
R/W  
Ref. FREQ2register  
0xDF0B: FREQ0 – Frequency Control Word, Low Byte  
Bit  
Field Name  
Reset  
R/W  
Description  
7:0  
FREQ[7:0]  
11101100  
R/W  
Ref. FREQ2register  
SWRS055D  
Page 215 of 243  
 
 
 
 
 
 
 
 
 
C2510Fx / CC2511Fx  
0xDF0C: MDMCFG4 – Modem configuration  
Bit Field Name  
Reset  
R/W  
Description  
7:6 CHANBW_E[1:0]  
5:4 CHANBW_M[1:0]  
10  
00  
R/W  
R/W  
Sets the decimation ratio for the delta-sigma ADC input stream and thus the  
channel bandwidth.  
fref  
BWchannel  
=
8(4 + CHANBW _ M )·2CHANBW _ E  
The default values give 203 kHz channel filter bandwidth when fRef = 26 MHz  
and 188 kHz when fRef = 24 MHz.  
3:0 DRATE_E[3:0]  
1100  
R/W  
The exponent of the user specified symbol rate.  
0xDF0D: MDMCFG3 – Modem Configuration  
Bit Field Name  
Reset  
R/W  
Description  
7:0 DRATE_M[7:0]  
0x22  
R/W  
The mantissa of the user specified symbol rate. The symbol rate is configured  
using an unsigned, floating-point number with 9-bit mantissa and 4-bit  
exponent. The 9th bit is a hidden ‘1’. The resulting data rate is:  
(
256 + DRATE _ M  
)
2DRATE _ E  
RDATA  
=
fref  
228  
The default values give a data rate of 115.051 kBaud when fRef = 26 MHz and  
106.201 kHz when fRef = 24 MHz.  
SWRS055D  
Page 216 of 243  
 
 
C2510Fx / CC2511Fx  
0xDF0E: MDMCFG2 – Modem Configuration  
Bit Field Name  
DEM_DCFILT_OFF  
Reset  
R/W  
Description  
7
0
R/W  
Disable digital DC blocking filter before demodulator. The recommended IF  
frequency changes when the DC blocking is disabled. Please use SmartRF®  
Studio [8] to calculate correct register setting.  
0
1
Enable  
Disable  
Better Sensitivity  
Current optimized. Only for data rates 100 kBaud  
6:4 MOD_FORMAT[2:0] 000  
R/W  
The modulation format of the radio signal  
000  
001  
010  
011  
100  
101  
110  
111  
2-FSK  
GFSK  
Reserved  
Reserved  
Reserved  
Reserved  
Reserved  
MSK  
3
MANCHESTER_EN  
0
R/W  
R/W  
Manchester encoding/decoding enable  
0
1
Disable  
Enable  
2:0 SYNC_MODE[2:0]  
010  
Sync-word qualifier mode.  
The values 000 and 100 disables preamble and sync word transmission in  
TX and preamble and sync word detection in RX.  
The values 001, 010, 101 and 110 enables 16-bit sync word transmission in  
TX and 16-bits sync word detection in RX. Only 15 of 16 bits need to match  
in RX when using setting 001 or 101. The values 011 and 111 enables  
repeated sync word transmission in TX and 32-bits sync word detection in  
RX (only 30 of 32 bits need to match).  
000  
001  
010  
011  
100  
101  
110  
111  
No preamble/sync  
15/16 sync word bits detected  
16/16 sync word bits detected  
30/32 sync word bits detected  
No preamble/sync, carrier-sense above threshold  
15/16 + carrier-sense above threshold  
16/16 + carrier-sense above threshold  
30/32 + carrier-sense above threshold  
SWRS055D  
Page 217 of 243  
 
C2510Fx / CC2511Fx  
0xDF0F: MDMCFG1 – Modem Configuration  
Bit Field Name  
FEC_EN  
Reset  
R/W  
Description  
7
0
R/W  
Enable Forward Error Correction (FEC) with interleaving for packet  
payload. FEC is only supported for fixed packet length mode, i.e.  
PKTCTRL0.LENGTH_CONFIG=0  
0
1
Disable  
Enable  
6:4 NUM_PREAMBLE[2:0] 010  
R/W  
Sets the minimum number of preamble bytes to be transmitted  
000  
001  
010  
011  
100  
101  
110  
111  
2
3
4
6
8
12  
16  
24  
3:2  
-
R0  
Not used  
1:0 CHANSPC_E[1:0]  
10  
R/W  
2 bit exponent of channel spacing  
0xDF10: MDMCFG0 – Modem Configuration  
Bit Field Name  
Reset  
R/W  
Description  
7:0 CHANSPC_M[7:0]  
0xF8  
R/W  
8-bit mantissa of channel spacing (initial 1 assumed). The channel  
spacing is multiplied by the channel number CHANand added to the base  
frequency. It is unsigned and has the format:  
fref  
218  
fCHANNEL  
=
(
256 + CHANSPC _ M  
2CHANSPC _ E  
)
The default values give 199.951 kHz channel spacing when fRef = 26  
MHz and 184.570 kHz when fRef = 24 MHz.  
0xDF11: DEVIATN – Modem Deviation Setting  
Bit Field Name  
Reset  
R/W  
Description  
7
-
R0  
Not used  
6:4 DEVIATION_E[2:0]  
100  
-
R/W  
R0  
Deviation exponent  
Not used  
3
2:0 DEVIATION_M[2:0]  
111  
R/W  
When MSK modulation is enabled:  
Sets fraction of symbol period used for phase change. Refer to the  
SmartRF® Studio software [8] for correct DEVIATNsetting when using  
MSK.  
When 2-FSK/GFSK modulation is enabled:  
Deviation mantissa, interpreted as a 4-bit value with MSB implicit 1. The  
resulting deviation is given by:  
fref  
217  
fdev  
=
(8 + DEVIATION _ M )2DEVIATION _ E  
The default values give ±47.607kHz deviation when fRef = 26 MHz and  
43.945 kHz when fRef = 24 MHz.  
SWRS055D  
Page 218 of 243  
 
 
 
C2510Fx / CC2511Fx  
0xDF12: MCSM2 – Main Radio Control State Machine Configuration  
Bit Field Name  
Reset  
R/W  
Description  
7:5  
-
R0  
Not used  
4
RX_TIME_RSSI  
0
R/W  
Direct RX termination based on RSSI measurement (carrier  
sense).  
3
RX_TIME_QUAL  
0
R/W  
R/W  
When the RX_TIME timer expires the chip stays in RX mode  
if sync word is found when RX_TIME_QUAL=0, or either sync  
word is found or PQT is reached when RX_TIME_QUAL=1.  
2:0 RX_TIME[2:0]  
111  
Timeout for sync word search in RX. The timeout is relative to  
the programmed tEvent0  
.
The RX timeout in µs is given by EVENT0·C(RX_TIME, WOR_RES) ·26/X, where C is given by the table below and X is  
the reference frequency (fRef) in MHz:  
RX_TIME[2:0]  
WOR_RES=0  
3.6058  
WOR_RES=1  
18.0288  
9.0144  
WOR_RES=2  
32.4519  
16.2260  
8.1130  
WOR_RES=3  
46.8750  
23.4375  
11.7188  
5.8594  
000  
001  
010  
011  
100  
101  
110  
111  
1.8029  
0.9014  
4.5072  
0.4507  
2.2536  
4.0565  
0.2254  
1.1268  
2.0282  
2.9297  
0.1127  
0.5634  
1.0141  
1.4648  
0.0563  
0.2817  
0.5071  
0.7324  
Until end of packet  
As an example, EVENT0 = 34666, WOR_RES= 0 and RX_TIME= 6 corresponds to 1.96 ms RX timeout  
SWRS055D  
Page 219 of 243  
 
C2510Fx / CC2511Fx  
0xDF13: MCSM1 – Main Radio Control State Machine Configuration  
Bit Field Name  
Reset  
R/W  
Description  
7:6  
-
R0  
Not used  
5:4 CCA_MODE[1:0]  
11  
R/W  
Selects CCA_MODE; Reflected in CCA signal  
00  
01  
10  
11  
Always  
If RSSI below threshold  
Unless currently receiving a packet  
If RSSI below threshold unless currently receiving a packet  
3:2 RXOFF_MODE[1:0]  
00  
R/W  
Select what should happen (next state) when a packet has been received  
00  
01  
10  
11  
IDLE  
FSTXON  
TX  
Stay in RX  
It is not possible to set RXOFF_MODEto be TX or FSTXON and at the same  
time use CCA.  
1:0 TXOFF_MODE[1:0]  
00  
R/W  
Select what should happen (next state) when a packet has been sent (TX)  
00  
01  
10  
11  
IDLE  
FSTXON  
Stay in TX (start sending preamble)  
RX  
0xDF14: MCSM0 – Main Radio Control State Machine Configuration  
Bit  
Field Name  
Reset  
R/W  
Description  
7:6  
5:4  
-
R0  
Not used  
FS_AUTOCAL[1:0]  
00  
R/W  
Select calibration mode (when to calibrate)  
00  
01  
10  
11  
Never (manually calibrate using SCAL strobe)  
When going from IDLE to RX or TX (or FSTXON)  
When going from RX or TX back to IDLE automatically  
Every 4th time when going from RX or TX to IDLE automatically  
3:0  
0100  
R/W  
Reserved. Always set to 0100  
SWRS055D  
Page 220 of 243  
 
 
 
C2510Fx / CC2511Fx  
0xDF15: FOCCFG – Frequency Offset Compensation Configuration  
Bit  
7
Field Name  
Reset  
R/W  
R0  
Description  
-
Not used  
6
1
1
R/W  
R/W  
Reserved. Always write 0  
5
FOC_BS_CS_GATE  
FOC_PRE_K[1:0]  
If set, the demodulator freezes the frequency offset compensation and  
clock recovery feedback loops until the CARRIER_SENSE signal goes  
high.  
4:3  
10  
R/W  
The frequency compensation loop gain to be used before a sync word is  
detected.  
00  
01  
10  
11  
K
2K  
3K  
4K  
2
FOC_POST_K  
FOC_LIMIT[1:0]  
1
R/W  
R/W  
The frequency compensation loop gain to be used after a sync word is  
detected.  
0
1
Same as FOC_PRE_K  
K/2  
1:0  
10  
The saturation point for the frequency offset compensation algorithm:  
00  
01  
10  
11  
±0 (no frequency offset compensation)  
±BWCHAN / 8  
±BW CHAN / 4  
±BW CHAN / 2  
SWRS055D  
Page 221 of 243  
 
C2510Fx / CC2511Fx  
0xDF16: BSCFG – Bit Synchronization Configuration  
Bit Field Name  
Reset  
R/W  
Description  
7:6 BS_PRE_KI[1:0]  
01  
R/W  
The clock recovery feedback loop integral gain to be used before a sync word  
is detected (used to correct offsets in data rate):  
00  
01  
10  
11  
KI  
2KI  
3KI  
4KI  
5:4 BS_PRE_KP[1:0]  
10  
R/W  
The clock recovery feedback loop proportional gain to be used before a sync  
word is detected  
00  
01  
10  
11  
KP  
2KP  
3KP  
4KP  
3
2
BS_POST_KI  
BS_POST_KP  
1
R/W  
R/W  
R/W  
The clock recovery feedback loop integral gain to be used after a sync word is  
detected.  
0
1
Same as BS_PRE_KI  
KI /2  
1
The clock recovery feedback loop proportional gain to be used after a sync  
word is detected.  
0
1
Same as BS_PRE_KP  
KP  
1:0 BS_LIMIT[1:0]  
00  
The saturation point for the data rate offset compensation algorithm:  
00  
01  
10  
11  
±0 (No data rate offset compensation performed)  
±3.125% data rate offset  
±6.25% data rate offset  
±12.5% data rate offset  
SWRS055D  
Page 222 of 243  
 
C2510Fx / CC2511Fx  
0xDF17: AGCCTRL2 – AGC Control  
Bit  
Field Name  
Reset  
R/W  
Description  
Reduces the maximum allowable DVGA gain.  
7:6  
MAX_DVGA_GAIN[1:0]  
00  
R/W  
00  
01  
10  
11  
All gain settings can be used  
The highest gain setting can not be used  
The 2 highest gain settings can not be used  
The 3 highest gain settings can not be used  
5:3  
MAX_LNA_GAIN[2:0]  
000  
R/W  
Sets the maximum allowable LNA + LNA 2 gain relative to the  
maximum possible gain.  
000  
001  
010  
011  
100  
101  
110  
111  
Maximum possible LNA + LNA 2 gain  
Approx. 2.6 dB below maximum possible gain  
Approx. 6.1 dB below maximum possible gain  
Approx. 7.4 dB below maximum possible gain  
Approx. 9.2 dB below maximum possible gain  
Approx. 11.5 dB below maximum possible gain  
Approx. 14.6 dB below maximum possible gain  
Approx. 17.1 dB below maximum possible gain  
2:0  
MAGN_TARGET[2:0]  
011  
R/W  
These bits set the target value for the averaged amplitude from the  
digital channel filter (1 LSB = 0 dB).  
000  
001  
010  
011  
100  
101  
110  
111  
24 dB  
27 dB  
30 dB  
33 dB  
36 dB  
38 dB  
40 dB  
42 dB  
SWRS055D  
Page 223 of 243  
 
 
C2510Fx / CC2511Fx  
0xDF18: AGCCTRL1 – AGC Control  
Bit Field Name  
Reset  
R/W Description  
R0 Not used  
7
-
6
AGC_LNA_PRIORITY  
1
R/W Selects between two different strategies for LNA and LNA2  
gain adjustment. When 1, the LNA gain is decreased first.  
When 0, the LNA2 gain is decreased to minimum before  
decreasing LNA gain.  
5:4 CARRIER_SENSE_REL_THR[1:0]  
00  
R/W Sets the relative change threshold for asserting carrier sense  
00  
01  
10  
11  
Relative carrier sense threshold disabled  
6 dB increase in RSSI value  
10 dB increase in RSSI value  
14 dB increase in RSSI value  
3:0 CARRIER_SENSE_ABS_THR[3:0]  
0000  
R/W Sets the absolute RSSI threshold for asserting carrier sense  
(Equal to channel filter amplitude when AGC has not  
decreased gain). The 2-complement signed threshold is  
programmed in steps of 1 dB and is relative to the  
MAGN_TARGETsetting.  
1000 (-8)  
1001 (-7)  
Absolute carrier sense threshold disabled  
7 dB below MAGN_TARGETsetting  
1111 (-1)  
0000 (0)  
0001 (1)  
1 dB below MAGN_TARGETsetting  
At MAGN_TARGETsetting  
1 dB above MAGN_TARGETsetting  
0111 (7)  
7 dB above MAGN_TARGETsetting  
SWRS055D  
Page 224 of 243  
 
C2510Fx / CC2511Fx  
0xDF19: AGCCTRL0 – AGC Control  
Bit Field Name  
Reset  
R/W  
Description  
7:6 HYST_LEVEL[1:0]  
10  
R/W  
Sets the level of hysteresis on the magnitude deviation  
(internal AGC signal that determines gain changes).  
00  
01  
No hysteresis, small symmetric dead zone, high gain  
Low hysteresis, small asymmetric dead zone, medium  
gain  
Medium hysteresis, medium asymmetric dead zone,  
medium gain  
10  
11  
Large hysteresis, large asymmetric dead zone, low gain  
5:4 WAIT_TIME[1:0]  
01  
R/W  
Sets the number of channel filter samples from a gain  
adjustment has been made until the AGC algorithm starts  
accumulating new samples.  
00  
01  
10  
11  
8
16  
24  
32  
3:2 AGC_FREEZE[1:0]  
00  
R/W  
Controls when the AGC gain should be frozen.  
00  
01  
Normal operation. Always adjust gain when required.  
The gain setting is frozen when a sync word has been  
found.  
Manually freeze the analog gain setting and continue to  
adjust the digital gain.  
10  
11  
Manually freezes both the analog and the digital gain  
settings. Used for manually overriding the gain.  
1:0 FILTER_LENGTH[1:0]  
01  
R/W  
Sets the averaging length for the amplitude from the channel  
filter. Please use the SmartRF® Studio software [8] for  
recommended settings.  
00  
01  
10  
11  
8
16  
32  
64  
0xDF1A: FREND1 – Front End RX Configuration  
Bit Field Name  
Reset  
R/W  
Description  
7:6 LNA_CURRENT[1:0]  
01  
01  
01  
10  
R/W  
R/W  
R/W  
R/W  
Adjusts front-end LNA PTAT current output  
Adjusts front-end PTAT outputs  
5:4 LNA2MIX_CURRENT[1:0]  
3:2 LODIV_BUF_CURRENT_RX[1:0]  
1:0 MIX_CURRENT[1:0]  
Adjusts current in RX LO buffer (LO input to mixer)  
Adjusts current in mixer  
SWRS055D  
Page 225 of 243  
 
 
C2510Fx / CC2511Fx  
0xDF1B: FREND0 – Front End TX Configuration  
Bit  
Field Name  
Reset  
R/W  
Description  
7:6  
5:4  
-
R0  
Not used  
LODIV_BUF_CURRENT_TX[1:0] 01  
R/W  
Adjusts current TX LO buffer (input to PA). The value to  
use in this field is given by the SmartRF® Studio software  
[8].  
3
-
000  
R0  
Not used  
2:0  
R/W  
Reserved. Always set to 000  
0xDF1C: FSCAL3 – Frequency Synthesizer Calibration  
Bit Field Name  
Reset  
R/W  
Description  
7:6 FSCAL3[7:6]  
10  
R/W  
Frequency synthesizer calibration configuration. The value to  
write in this register before calibration is given by the  
SmartRF® Studio software [8].  
5:4 CHP_CURR_CAL_EN[1:0]  
3:0 FSCAL3[3:0]  
10  
R/W  
R/W  
Disable charge pump calibration stage when 0  
1001  
Frequency synthesizer calibration result register. Digital bit  
vector defining the charge pump output current, on an  
exponential scale: IOUT=I0·2FSCAL3[3:0]/4  
Fast frequency hopping without calibration for each hop can  
be done by calibrating upfront for each frequency and saving  
the resulting FSCAL3, FSCAL2and FSCAL1register values.  
Between each frequency hop, calibration can be replaced by  
writing the FSCAL3, FSCAL2and FSCAL1register values  
corresponding to the next RF frequency.  
Note: This register will be in its reset state when returning to active mode from PM2 and PM3.  
0xDF1D: FSCAL2 – Frequency Synthesizer Calibration  
Bit Field Name  
Reset  
R/W  
Description  
7:6  
-
R0  
Not used  
5
VCO_CORE_H_EN  
0
R/W  
Select VCO  
0
1
Low.  
High. Note that High VCO is not intended for use  
4:0 FSCAL2[4:0]  
01010  
R/W  
Frequency synthesizer calibration result register. VCO  
current calibration result and override value  
Fast frequency hopping without calibration for each hop can  
be done by calibrating upfront for each frequency and saving  
the resulting FSCAL3, FSCAL2and FSCAL1register values.  
Between each frequency hop, calibration can be replaced by  
writing the FSCAL3, FSCAL2and FSCAL1register values  
corresponding to the next RF frequency.  
Note: This register will be in its reset state when returning to active mode from PM2 and PM3.  
SWRS055D  
Page 226 of 243  
 
 
 
 
 
C2510Fx / CC2511Fx  
0xDF1E: FSCAL1 – Frequency Synthesizer Calibration  
Bit Field Name  
Reset  
R/W  
Description  
7:6  
-
R0  
Not used  
5:0 FSCAL1[5:0]  
100000  
R/W  
Frequency synthesizer calibration result register. Capacitor  
array setting for VCO coarse tuning.  
Fast frequency hopping without calibration for each hop can  
be done by calibrating upfront for each frequency and saving  
the resulting FSCAL3, FSCAL2and FSCAL1register values.  
Between each frequency hop, calibration can be replaced by  
writing the FSCAL3, FSCAL2and FSCAL1register values  
corresponding to the next RF frequency.  
Note: This register will be in its reset state when returning to active mode from PM2 and PM3.  
0xDF1F: FSCAL0 – Frequency Synthesizer Calibration  
Bit Field Name  
Reset  
R/W  
Description  
7
-
R0  
Not used  
6:0 FSCAL0[6:0]  
0001101  
R/W  
Frequency synthesizer calibration control. The value to use in this  
register is given by the SmartRF® Studio software [8].  
0xDF23: TEST2 – Various Test Settings  
Bit Field Name  
Reset  
R/W  
Description  
7:0 TEST2[7:0]  
0x88  
R/W  
For improved sensitivity at low data rates (100 kBaud) this register  
can be written to 0x81. The temperature range is then from 0 oC to  
+85 oC.  
0xDF24: TEST1 – Various Test Settings  
Bit Field Name  
Reset  
R/W  
Description  
7:0 TEST1[7:0]  
0x11  
R/W  
Must be written to 0x31.  
For improved sensitivity at low data rates (100 kbps) this register can  
be written to 0x35.The temperature range is then from 0 oC to +85 oC.  
0xDF25: TEST0 – Various Test Settings  
Bit Field Name  
Reset  
R/W  
Description  
The value to use in this register is given by the SmartRF® Studio  
software [8].  
7:2 TEST0[7:2]  
000010  
R/W  
1
0
VCO_SEL_CAL_EN  
TEST0[0]  
1
1
R/W  
R/W  
Enable VCO selection calibration stage when 1  
The value to use in this register is given by the SmartRF® Studio  
software [8].  
0xDF2E: PA_TABLE0 – PA Power Setting  
Bit Field Name  
Reset  
R/W  
Description  
7:0 PA_TABLE0[7:0]  
0x00  
R/W  
Power amplifier output power setting  
SWRS055D  
Page 227 of 243  
 
 
 
 
 
 
C2510Fx / CC2511Fx  
0xDF36: PARTNUM – Chip ID[15:8]  
Bit Field Name  
Reset  
R/W  
Description  
7:0 PARTNUM[7:0]  
R
Chip part number  
0x81 CC2510Fx  
0x91 CC2511Fx  
0xDF37: VERSION – Chip ID[7:0]  
Bit Field Name  
Reset  
R/W  
Description  
7:0 VERSION[7:0]  
0x04  
R
Chip version number.  
0xDF38: FREQEST – Frequency Offset Estimate from Demodulator  
Bit  
Field Name  
Reset  
R/W  
Description  
7:0  
FREQOFF_EST  
0x00  
R
The estimated frequency offset (2’s complement) of the carrier.  
Resolution is fRef/214  
Range is ±186 kHz to ±209 kHz for CC2510Fx and ±186 kHz for  
CC2511Fx  
0xDF39: LQI – Demodulator Estimate for Link Quality  
Bit  
Field Name  
Reset  
R/W Description  
7
CRC_OK  
0
R
R
The last CRC comparison matched. Cleared when entering/restarting RX  
mode. Only valid if PKTCTRL0.CC2400_EN=1. This bit will be 1 if CRC  
check is disabled (PKTCTRL0.CRC_EN=0)  
6:0  
LQI_EST[6:0]  
0000000  
The Link Quality Indicator estimates how easily a received signal can be  
demodulated. Calculated over the 64 symbols following the sync word.  
0xDF3A: RSSI – Received Signal Strength Indication  
Bit  
Field Name  
Reset  
R/W  
Description  
7:0  
RSSI  
0x80  
R
Received signal strength indicator  
SWRS055D  
Page 228 of 243  
 
 
 
 
 
 
C2510Fx / CC2511Fx  
0xDF3B: MARCSTATE – Main Radio Control State Machine State  
Bit  
Field Name  
Reset  
R/W  
Description  
7:5  
4:0  
-
R0  
R
Not used  
MARC_STATE[4:0]  
0001  
Main Radio Control FSM State  
Value  
00000  
00001  
00010  
00011  
00100  
00101  
00110  
00111  
01000  
01001  
01010  
01011  
01100  
01101  
01110  
01111  
10000  
10001  
10010  
10011  
10100  
10101  
10110  
State Name  
SLEEP  
State (Figure 53, Page 204)  
SLEEP  
IDLE  
IDLE  
Not Used  
VCOON_MC  
REGON_MC  
MANCAL  
VCOON  
MANCAL  
MANCAL  
MANCAL  
FS_WAKEUP  
FS_WAKEUP  
CALIBRATE  
SETTLING  
SETTLING  
SETTLING  
CALIBRATE  
RX  
REGON  
STARTCAL  
BWBOOST  
FS_LOCK  
IFADCON  
ENDCAL  
RX  
RX_END  
RX_RST  
RX  
RX  
TXRX_SWITCH  
RX_OVERFLOW  
FSTXON  
TX  
TXRX_SETTLING  
RX_OVERFLOW  
FSTXON  
TX  
TX_END  
TX  
RXTX_SWITCH  
RXTX_SETTLING  
TX_UNDERFLOW TX_UNDERFLOW  
SWRS055D  
Page 229 of 243  
 
C2510Fx / CC2511Fx  
0xDF3C: PKTSTATUS –Packet Status  
Bit Field Name  
Reset  
R/W  
Description  
7
CRC_OK  
0
R
The last CRC comparison matched. Cleared when entering/restarting RX  
mode.  
6
CS  
0
0
0
0
-
R
Carrier sense  
5
PQT_REACHED  
R
Preamble Quality reached  
Channel is clear  
Sync word found  
Not used  
4
CCA  
SFD  
R
3
R
2:0  
R0  
0xDF3D: VCO_VC_DAC – Current Setting from PLL Calibration Module  
Bit Field Name  
Reset  
R/W  
Description  
7:0 VCO_VC_DAC[7:0]  
0x94  
R
Status register for test only.  
SWRS055D  
Page 230 of 243  
 
 
C2510Fx / CC2511Fx  
15 Voltage Regulators  
The voltage regulator requires an external  
decoupling capacitor connected to the DCOUPL  
pin as described in Section 10 on Page 33.  
The CC2510Fx/CC2511Fx includes a low drop-out  
voltage regulator. This is used to provide a 1.8  
V power supply to the CC2510Fx/CC2511Fx digital  
power supply. The voltage regulator should not  
be used to provide power to external circuits  
because of limited power sourcing capability  
and also due to noise considerations.  
15.1 Voltage Regulator Power-on  
The voltage regulator is disabled when the  
CC2510Fx/CC2511Fx is placed in power modes  
PM2 or PM3 (see Section 13.1). When the  
voltage regulator is disabled, register and RAM  
contents will be retained while the unregulated  
2.0 V - 3.6 V power supply is present.  
The voltage regulator input pin AVDD_DREG is  
to be connected to the unregulated 2.0 V to 3.6  
V power supply. The output of the digital  
regulator is connected internally in the  
CC2510Fx/CC2511Fx to the digital power supply.  
16 Radio Test Output Signals  
For debug and test purposes, a number of  
internal status signals in the radio may be  
output on the port pins P1_7 – P1_5. This  
debug option is controlled through the RF  
registers IOCFG2-IOCFG0. Table 73 shows  
the value written to IOCFGx.GDOx_CFG[5:0]  
with the corresponding internal signals that will  
be output in each case.  
Setting IOCFGx.GDOx_CFG to a value other  
than 0 will override the P1SEL_SELP1_7,  
P1SEL_SELP1_6,  
and  
P1SEL_SELP1_5  
settings, and the pins will automatically  
become outputs.  
GDO0_CFG[5:0]  
GDO1_CFG[5:0]  
GDO2_CFG[5:0]  
Description  
000000  
The pin is configured according to the I/O registers. See 13.4.11  
Reserved  
000001 – 000111  
001000  
Preamble Quality Reached. Asserts when the PQI is above the programmed PQT value.  
001001  
Clear channel assessment. High when RSSI level is below threshold (dependent on the current  
CCA_MODEsetting)  
001010 – 001101  
001110  
Reserved  
Carrier sense. High if RSSI level is above threshold.  
001111  
CRC_OK. The last CRC comparison matched. Cleared when entering/restarting RX mode.  
010000 - 010101  
010110  
Reserved  
RX_HARD_DATA[1]. Can be used together with RX_SYMBOL_TICK for alternative serial RX output.  
RX_HARD_DATA[0]. Can be used together with RX_SYMBOL_TICK for alternative serial RX output.  
Reserved  
010111  
011000 – 011010  
011011  
PA_PD. Can be used to control an external PA or RX/TX switch. Signal is asserted when the radio  
enters TX state.  
LNA_PD. Can be used to control an external LNA or RX/TX switch. Signal is asserted when the radio  
enters RX state.  
011100  
011101  
RX_SYMBOL_TICK. Can be used together with RX_HARD_DATA for alternative serial RX output.  
Reserved  
011110 - 101110  
HW to 0 (HW1 achieved by setting GDOx_INV=1). Can be used to control an external LNA/PA or  
RX/TX switch.  
101111  
110000 - 111111  
Reserved  
Table 73: Radio Test Output Signals  
SWRS055D  
Page 231 of 243  
 
C2510Fx / CC2511Fx  
17 Register Overview  
MPAGE (0x93) – Memory Page Select.................................................................................. 51  
MEMCTR (0xC7) – Memory Arbiter Control........................................................................ 51  
DPH0 (0x83) – Data Pointer 0 High Byte............................................................................... 52  
DPL0 (0x82) – Data Pointer 0 Low Byte................................................................................ 52  
DPH1 (0x85) – Data Pointer 1 High Byte............................................................................... 52  
DPL1 (0x84) – Data Pointer 1 Low Byte................................................................................ 52  
DPS (0x92) – Data Pointer Select ........................................................................................... 52  
PSW (0xD0) – Program Status Word...................................................................................... 53  
ACC (0xE0) – Accumulator.................................................................................................... 53  
B (0xF0) – B Register ............................................................................................................. 53  
SP (0x81) – Stack Pointer ....................................................................................................... 54  
IEN1 (0xB8) – Interrupt Enable 1 Register............................................................................. 61  
IEN2 (0x9A) – Interrupt Enable 2 Register ............................................................................ 62  
TCON (0x88) – CPU Interrupt Flag 1..................................................................................... 63  
S0CON (0x98) – CPU Interrupt Flag 2................................................................................... 64  
S1CON (0x9B) – CPU Interrupt Flag 3 .................................................................................. 64  
IRCON (0xC0) – CPU Interrupt Flag 4 .................................................................................. 65  
IRCON2 (0xE8) – CPU Interrupt Flag 5................................................................................. 66  
IP1 (0xB9) – Interrupt Priority 1............................................................................................. 66  
IP0 (0xA9) – Interrupt Priority 0............................................................................................. 67  
PCON (0x87) – Power Mode Control..................................................................................... 76  
SLEEP (0xBE) – Sleep Mode Control................................................................................... 77  
CLKCON (0xC6) – Clock Control ........................................................................................ 80  
FCTL (0xAE) – Flash Control ................................................................................................ 87  
FWDATA (0xAF) – Flash Write Data.................................................................................... 87  
FADDRH (0xAD) – Flash Address High Byte....................................................................... 87  
FADDRL (0xAC) – Flash Address Low Byte ........................................................................ 87  
FWT (0xAB) – Flash Write Timing........................................................................................ 87  
P0 (0x80) – Port 0 ................................................................................................................... 93  
P1 (0x90) – Port 1 ................................................................................................................... 93  
P2 (0xA0) – Port 2 .................................................................................................................. 93  
PERCFG (0xF1) – Peripheral Control .................................................................................... 93  
ADCCFG (0xF2) – ADC Input Configuration........................................................................ 94  
P0SEL (0xF3) – Port 0 Function Select .................................................................................. 94  
P1SEL (0xF4) – Port 1 Function Select .................................................................................. 94  
P2SEL (0xF5) – Port 2 Function Select .................................................................................. 95  
P0DIR (0xFD) – Port 0 Direction ........................................................................................... 95  
P1DIR (0xFE) – Port 1 Direction............................................................................................ 95  
P2DIR (0xFF) – Port 2 Direction............................................................................................ 96  
P0INP (0x8F) – Port 0 Input Mode......................................................................................... 96  
P1INP (0xF6) – Port 1 Input Mode......................................................................................... 96  
P2INP (0xF7) – Port 2 Input Mode......................................................................................... 96  
P0IFG (0x89) – Port 0 Interrupt Status Flag ........................................................................... 97  
P1IFG (0x8A) – Port 1 Interrupt Status Flag .......................................................................... 97  
P2IFG (0x8B) – Port 2 Interrupt Status Flag........................................................................... 97  
PICTL (0x8C) – Port Interrupt Control................................................................................... 98  
P1IEN (0x8D) – Port 1 Interrupt Mask................................................................................... 98  
DMAARM (0xD6) – DMA Channel Arm............................................................................ 108  
DMAREQ (0xD7) – DMA Channel Start Request and Status.............................................. 109  
DMA0CFGH (0xD5) – DMA Channel 0 Configuration Address High Byte....................... 109  
DMA0CFGL (0xD4) – DMA Channel 0 Configuration Address Low Byte........................ 109  
DMA1CFGH (0xD3) – DMA Channel 1-4 Configuration Address High Byte.................... 109  
DMA1CFGL (0xD2) – DMA Channel 1-4 Configuration Address Low Byte..................... 109  
SWRS055D  
Page 232 of 243  
C2510Fx / CC2511Fx  
DMAIRQ (0xD1) – DMA Interrupt Flag.............................................................................. 110  
ENDIAN (0x95) – USB Endianess Control (CC2511Fx) ....................................................... 110  
T1CNTH (0xE3) – Timer 1 Counter High............................................................................ 119  
T1CNTL (0xE2) – Timer 1 Counter Low............................................................................. 119  
T1CTL (0xE4) – Timer 1 Control and Status ....................................................................... 119  
T1CCTL0 (0xE5) – Timer 1 Channel 0 Capture/Compare Control...................................... 120  
T1CC0H (0xDB) – Timer 1 Channel 0 Capture/Compare Value High ................................ 120  
T1CC0L (0xDA) – Timer 1 Channel 0 Capture/Compare Value Low ................................. 120  
T1CCTL1 (0xE6) – Timer 1 Channel 1 Capture/Compare Control...................................... 121  
T1CC1H (0xDD) – Timer 1 Channel 1 Capture/Compare Value High................................ 121  
T1CC1L (0xDC) – Timer 1 Channel 1 Capture/Compare Value Low ................................. 121  
T1CCTL2 (0xE7) – Timer 1 Channel 2 Capture/Compare Control...................................... 122  
T1CC2H (0xDF) – Timer 1 Channel 2 Capture/Compare Value High................................. 122  
T1CC2L (0xDE) – Timer 1 Channel 2 Capture/Compare Value Low.................................. 122  
T2CTL (0x9E) – Timer 2 Control......................................................................................... 124  
T2CT (0x9C) – Timer 2 Count.............................................................................................. 124  
T2PR (0x9D) – Timer 2 Prescaler......................................................................................... 124  
WORTIME0 (0xA5) – Sleep Timer Low Byte..................................................................... 127  
WORTIME1 (0xA6) – Sleep Timer High Byte .................................................................... 127  
WOREVT1 (0xA4) – Sleep Timer Event0 Timeout High.................................................... 127  
WOREVT0 (0xA3) – Sleep Timer Event0 Timeout Low..................................................... 127  
WORCTRL (0xA2) – Sleep Timer Control.......................................................................... 127  
WORIRQ (0xA1) – Sleep Timer Interrupt Control .............................................................. 128  
T3CNT (0xCA) – Timer 3 Counter....................................................................................... 132  
T3CTL (0xCB) – Timer 3 Control........................................................................................ 133  
T3CCTL0 (0xCC) – Timer 3 Channel 0 Capture/Compare Control..................................... 134  
T3CC0 (0xCD) – Timer 3 Channel 0 Compare Value.......................................................... 134  
T3CCTL1 (0xCE) – Timer 3 Channel 1 Compare Control................................................... 135  
T3CC1 (0xCF) – Timer 3 Channel 1 Compare Value .......................................................... 135  
T4CNT (0xEA) – Timer 4 Counter....................................................................................... 135  
T4CTL (0xEB) – Timer 4 Control ........................................................................................ 136  
T4CCTL0 (0xEC) – Timer 4 Channel 0 Capture/Compare Control..................................... 137  
T4CC0 (0xED) – Timer 4 Channel 0 Compare Value.......................................................... 137  
T4CCTL1 (0xEE) – Timer 4 Channel 1 Compare Control................................................... 138  
T4CC1 (0xEF) – Timer 4 Channel 1 Compare Value........................................................... 138  
TIMIF (0xD8) – Timers 1/3/4 Interrupt Mask/Flag.............................................................. 139  
ADCL (0xBA) – ADC Data Low.......................................................................................... 143  
ADCH (0xBB) – ADC Data High......................................................................................... 143  
ADCCON1 (0xB4) – ADC Control 1 ................................................................................... 143  
ADCCON2 (0xB5) – ADC Control 2 ................................................................................... 144  
ADCCON2 (0xB5) – ADC Control 2 ................................................................................... 144  
ADCCON3 (0xB6) – ADC Control 3 ................................................................................... 145  
RNDL (0xBC) – Random Number Generator Data Low Byte ............................................. 147  
RNDH (0xBD) – Random Number Generator Data High Byte............................................ 147  
ENCCS (0xB3) – Encryption Control and Status ................................................................. 149  
ENCDI (0xB1) – Encryption Input Data.............................................................................. 149  
ENCDO (0xB2) – Encryption Output Data.......................................................................... 149  
WDCTL (0xC9) – Watchdog Timer Control........................................................................ 151  
U0CSR (0x86) – USART 0 Control and Status.................................................................... 157  
U0UCR (0xC4) – USART 0 UART Control ........................................................................ 158  
U0GCR (0xC5) – USART 0 Generic Control....................................................................... 159  
U0DBUF (0xC1) – USART 0 Receive/Transmit Data Buffer.............................................. 159  
U0BAUD (0xC2) – USART 0 Baud Rate Control ............................................................... 159  
U1CSR (0xF8) – USART 1 Control and Status.................................................................... 160  
SWRS055D  
Page 233 of 243  
C2510Fx / CC2511Fx  
U1UCR (0xFB) – USART 1 UART Control ........................................................................ 161  
U1GCR (0xFC) – USART 1 Generic Control ...................................................................... 162  
U1DBUF (0xF9) – USART 1 Receive/Transmit Data Buffer .............................................. 162  
U1BAUD (0xFA) – USART 1 Baud Rate Control............................................................... 162  
0xDF40: I2SCFG0 – I2S Configuration Register 0............................................................... 167  
0xDF41: I2SCFG1 – I2S Configuration Register 1............................................................... 168  
0xDF42: I2SDATL – I2S Data Low Byte ............................................................................. 168  
0xDF43: I2SDATH – I2S Data High Byte ............................................................................ 168  
0xDF44: I2SWCNT – I2S Word Count Register................................................................... 168  
0xDF45: I2SSTAT – I2S Status Register .............................................................................. 169  
0xDF46: I2SCLKF0 – I2S Clock Configuration Register 0.................................................. 169  
0xDF47: I2SCLKF1 – I2S Clock Configuration Register 1.................................................. 169  
0xDF48: I2SCLKF2 – I2S Clock Configuration Register 2.................................................. 169  
0xDE00: USBADDR – Function Address ............................................................................ 180  
0xDE01: USBPOW – Power/Control Register..................................................................... 180  
0xDE02: USBIIF – IN Endpoints and EP0 Interrupt Flags .................................................. 180  
0xDE04: USBOIF – Out Endpoints Interrupt Flags.............................................................. 180  
0xDE06: USBCIF – Common USB Interrupt Flags ............................................................. 181  
0xDE07: USBIIE – IN Endpoints and EP0 Interrupt Enable Mask...................................... 181  
0xDE09: USBOIE – Out Endpoints Interrupt Enable Mask................................................. 182  
0xDE0B: USBCIE – Common USB Interrupt Enable Mask ................................................ 182  
0xDE0C: USBFRML – Current Frame Number (Low byte)................................................ 182  
0xDE0D: USBFRMH – Current Frame Number (High byte)............................................... 183  
0xDE0E: USBINDEX – Current Endpoint Index Register................................................... 183  
0xDE10: USBMAXI – Max. Packet Size for IN Endpoint{1-5}.......................................... 183  
0xDE11: USBCS0 – EP0 Control and Status (USBINDEX=0)............................................ 183  
0xDE11: USBCSIL – IN EP{1-5} Control and Status Low................................................. 184  
0xDE12: USBCSIH – IN EP{1-5} Control and Status High................................................ 184  
0xDE13: USBMAXO – Max. Packet Size for OUT{1-5} Endpoint .................................... 184  
0xDE14: USBCSOL – OUT EP{1-5} Control and Status Low............................................ 185  
0xDE15: USBCSOH – OUT EP{1-5} Control and Status High .......................................... 185  
0xDE16: USBCNT0 – Number of Received Bytes in EP0 FIFO (USBINDEX=0).............. 186  
0xDE16: USBCNTL – Number of Bytes in EP{1 – 5} OUT FIFO Low ............................. 186  
0xDE17: USBCNTH – Number of Bytes in EP{1 – 5} OUT FIFO High............................ 186  
0xDE20: USBF0 – Endpoint 0 FIFO .................................................................................... 186  
0xDE22: USBF1 – Endpoint 1 FIFO .................................................................................... 186  
0xDE24: USBF2 – Endpoint 2 FIFO .................................................................................... 186  
0xDE26: USBF3 – Endpoint 3 FIFO .................................................................................... 186  
0xDE28: USBF4 – Endpoint 4 FIFO .................................................................................... 186  
0xDE2A: USBF5 – Endpoint 5 FIFO ................................................................................... 186  
RFIF (0xE9) – RF Interrupt Flags......................................................................................... 190  
RFIM (0x91) – RF Interrupt Mask........................................................................................ 191  
0xDF2F: IOCFG2 – Radio Test Signal Configuration (P1_7).............................................. 213  
0xDF30: IOCFG1 – Radio Test Signal Configuration (P1_6).............................................. 213  
0xDF31: IOCFG0 – Radio Test Signal Configuration (P1_5).............................................. 213  
0xDF00: SYNC1 – Sync Word, High Byte........................................................................... 213  
0xDF01: SYNC0 – Sync Word, Low Byte ........................................................................... 213  
0xDF02: PKTLEN – Packet Length ..................................................................................... 213  
0xDF03: PKTCTRL1 – Packet Automation Control ............................................................ 214  
0xDF04: PKTCTRL0 – Packet Automation Control ............................................................ 214  
0xDF05: ADDR – Device Address....................................................................................... 215  
0xDF06: CHANNR – Channel Number................................................................................ 215  
0xDF07: FSCTRL1 – Frequency Synthesizer Control ......................................................... 215  
0xDF08: FSCTRL0 – Frequency Synthesizer Control ......................................................... 215  
SWRS055D  
Page 234 of 243  
C2510Fx / CC2511Fx  
0xDF09: FREQ2 – Frequency Control Word, High Byte..................................................... 215  
0xDF0A: FREQ1 – Frequency Control Word, Middle Byte................................................. 215  
0xDF0B: FREQ0 – Frequency Control Word, Low Byte..................................................... 215  
0xDF0C: MDMCFG4 – Modem configuration .................................................................... 216  
0xDF0D: MDMCFG3 – Modem Configuration ................................................................... 216  
0xDF0E: MDMCFG2 – Modem Configuration.................................................................... 217  
0xDF0F: MDMCFG1 – Modem Configuration.................................................................... 218  
0xDF10: MDMCFG0 – Modem Configuration .................................................................... 218  
0xDF11: DEVIATN – Modem Deviation Setting................................................................. 218  
0xDF12: MCSM2 – Main Radio Control State Machine Configuration .............................. 219  
0xDF13: MCSM1 – Main Radio Control State Machine Configuration .............................. 220  
0xDF14: MCSM0 – Main Radio Control State Machine Configuration .............................. 220  
0xDF15: FOCCFG – Frequency Offset Compensation Configuration................................. 221  
0xDF16: BSCFG – Bit Synchronization Configuration........................................................ 222  
0xDF17: AGCCTRL2 – AGC Control ................................................................................. 223  
0xDF18: AGCCTRL1 – AGC Control ................................................................................. 224  
0xDF19: AGCCTRL0 – AGC Control ................................................................................. 225  
0xDF1A: FREND1 – Front End RX Configuration.............................................................. 225  
0xDF1B: FREND0 – Front End TX Configuration .............................................................. 226  
0xDF1C: FSCAL3 – Frequency Synthesizer Calibration ..................................................... 226  
0xDF1D: FSCAL2 – Frequency Synthesizer Calibration..................................................... 226  
0xDF1E: FSCAL1 – Frequency Synthesizer Calibration ..................................................... 227  
0xDF1F: FSCAL0 – Frequency Synthesizer Calibration...................................................... 227  
0xDF23: TEST2 – Various Test Settings.............................................................................. 227  
0xDF24: TEST1 – Various Test Settings.............................................................................. 227  
0xDF25: TEST0 – Various Test Settings.............................................................................. 227  
0xDF2E: PA_TABLE0 – PA Power Setting......................................................................... 227  
0xDF36: PARTNUM – Chip ID[15:8] ................................................................................. 228  
0xDF37: VERSION – Chip ID[7:0]...................................................................................... 228  
0xDF38: FREQEST – Frequency Offset Estimate from Demodulator................................. 228  
0xDF39: LQI – Demodulator Estimate for Link Quality...................................................... 228  
0xDF3A: RSSI – Received Signal Strength Indication......................................................... 228  
0xDF3B: MARCSTATE – Main Radio Control State Machine State.................................. 229  
0xDF3C: PKTSTATUS –Packet Status................................................................................ 230  
0xDF3D: VCO_VC_DAC – Current Setting from PLL Calibration Module....................... 230  
SWRS055D  
Page 235 of 243  
C2510Fx / CC2511Fx  
18 Package Description (QLP 36)  
All dimensions are in millimeters, angles in  
degrees. Note: The CC2510Fx/CC2511Fx is  
available in RoHS lead-free package only.  
Compliant with JEDEC: MO-220.  
Figure 60: Package Dimensions Drawing  
Quad Leadless Package (QLP)  
A
A1  
A2  
D
D1  
E
E1  
e
b
L
D2  
E2  
QLP36  
Min  
0.80  
0.85  
0.90  
0.005  
0.025  
0.045  
0.60  
0.65  
0.70  
5.90  
6.00  
6.10  
5.65  
5.75  
5.85  
5.90  
6.00  
6.10  
5.65  
5.75  
5.85  
0.18  
0.23  
0.30  
0.45  
0.55  
0.65  
0.50  
4.40  
4.40  
Max  
Table 74: Package Dimensions  
SWRS055D  
Page 236 of 243  
C2510Fx / CC2511Fx  
18.1 Recommended PCB Layout for Package (QLP 36)  
Figure 61: Recommended PCB Layout for QLP 36 Package  
Note: The figure is an illustration only and not to scale. There are nine 14 mil diameter via holes  
distributed symmetrically in the ground pad under the package. See also the CC2510EM  
reference design [1] and theCC2511 USB-Dongle reference design [2].  
Thermal Resistance  
Air velocity [m/s]  
Rth,j-a [C/W]  
0
32  
Table 75: Thermal Properties of QLP 36 Package  
18.2 Soldering information  
The recommendations for lead-free reflow in  
IPC/JEDEC J-STD-020D should be followed.  
The lead finish is annealed (150 °C for 1 hr)  
pure matte tin.  
18.3 Tray Specification  
Tray Specification  
Package  
QLP 36  
Tray Length  
322.6 mm  
Tray Width Tray Height  
135.9 mm 7.62 mm  
Units per Tray  
490  
Table 76: Tray Specification  
SWRS055D  
Page 237 of 243  
C2510Fx / CC2511Fx  
18.4 Carrier Tape and Reel Specification  
Carrier tape and reel is in accordance with EIA Specification 481.  
Tape and Reel Specification  
Package  
Carrier Tape Component  
Hole Pitch  
4 mm  
Reel Diameter  
13 inches  
Reel Hub  
Diameter  
Units per  
Reel  
Width  
Pitch  
QLP 36  
16 mm  
12 mm  
100 mm  
2500  
Table 77: Carrier Tape and Reel Specification  
19 Ordering Information  
Ordering Part  
Number  
Description  
Minimum Order  
Quantity  
CC2510F8RSP  
8 kB flash, 1 kB RAM, System-on-Chip RF Transceiver.  
490  
QLP36 package, RoHS compliant Pb-free assembly, Tray with 490 pcs per tray.  
8 kB flash, 1 kB RAM, System-on-Chip RF Transceiver.  
CC2510F8RSPR  
2500  
QLP36 package, RoHS compliant Pb-free assembly, T&R with 2500 pcs per  
reel.  
CC2510F16RSP  
CC2510F16RSPR  
16 kB flash, 2 kB RAM, System-on-Chip RF Transceiver.  
490  
QLP36 package, RoHS compliant Pb-free assembly, Tray with 490 pcs per tray.  
16 kB flash, 2 kB RAM, System-on-Chip RF Transceiver.  
2500  
QLP36 package, RoHS compliant Pb-free assembly, T&R with 2500 pcs per  
reel.  
CC2510F32RSP  
CC2510F32RSPR  
32 kB flash, 4 kB RAM, System-on-Chip RF Transceiver.  
490  
QLP36 package, RoHS compliant Pb-free assembly, Tray with 490 pcs per tray.  
32 kB flash, 4 kB RAM, System-on-Chip RF Transceiver.  
2500  
QLP36 package, RoHS compliant Pb-free assembly, T&R with 2500 pcs per  
reel.  
CC2511F8RSP  
8 kB flash, 1 kB RAM, full-speed USB, System-on-Chip RF Transceiver.  
QLP36 package, RoHS compliant Pb-free assembly, Tray with 490 pcs per tray.  
8 kB flash, 1 kB RAM, full-speed USB, System-on-Chip RF Transceiver.  
490  
CC2511F8RSPR  
2500  
QLP36 package, RoHS compliant Pb-free assembly, T&R with 2500 pcs per  
reel.  
CC2511F16RSP  
CC2511F16RSPR  
16 kB flash, 2 kB RAM, full-speed USB, System-on-Chip RF Transceiver.  
QLP36 package, RoHS compliant Pb-free assembly, Tray with 490 pcs per tray.  
16 kB flash, 2 kB RAM, full-speed USB, System-on-Chip RF Transceiver.  
490  
2500  
QLP36 package, RoHS compliant Pb-free assembly, T&R with 2500 pcs per  
reel.  
CC2511F32RSP  
CC2511F32RSPR  
32 kB flash, 4 kB RAM, full-speed USB, System-on-Chip RF Transceiver.  
QLP36 package, RoHS compliant Pb-free assembly, Tray with 490 pcs per tray.  
32 kB flash, 4 kB RAM, full-speed USB, System-on-Chip RF Transceiver.  
490  
2500  
QLP36 package, RoHS compliant Pb-free assembly, T&R with 2500 pcs per  
reel.  
CC2510-CC2511DK  
CC2510EMK  
CC2510Fx and CC2511Fx Development Kit  
CC2510 Evaluation Module Kit  
1
1
1
CC2511EMK  
CC2511 Evaluation Module Kit  
Table 78: Ordering Information  
SWRS055D  
Page 238 of 243  
C2510Fx / CC2511Fx  
20 References  
[1]  
[2]  
[3]  
[4]  
CC2510EM Reference Design (swrr035.zip)  
CC2511 USB-Dongle Reference Design (swrc062.zip)  
CC25XX Folded Dipole Reference Design (swrc065.zip)  
NIST FIPS Pub 197: Advanced Encryption Standard (AES), Federal Information  
Processing Standards Publication 197, US Department of Commerce/N.I.S.T., November  
26, 2001. Available from the NIST website.  
http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf  
[5]  
[6]  
[7]  
Universal Serial Bus Revision 2.0 Specification. Available from the USB Implementers  
Forum website.  
http://www.usb.org/developers/docs/  
I2S bus specification, Philips Semiconductors, Available from the Philips Semiconductors  
website.  
http://www.semiconductors.philips.com/acrobat_download/various/I2SBUS.pdf  
IEEE Std 1241-2000, IEEE standard for terminology and test methods for analog-to-digital  
converters.  
[8]  
[9]  
SmartRF® Studio (swrc046.zip)  
AN032 2.4 GHz Regulations (swra060.pdf)  
[10] DN004 Folded Dipole Antenna for CCC25xx (swra118.pdf)  
SWRS055D  
Page 239 of 243  
C2510Fx / CC2511Fx  
21 General Information  
21.1 Document History  
Revision  
1.0  
Date  
Description/Changes  
2005.11.17 First release, preliminary  
2006.05.11 Preliminary status updated  
1.01  
SWRS055  
SWRS055A  
SWRS055B  
2006.05.30 CC2511Fx, CC2510F8 and CC2510F16 added to datasheet.  
2006.07.06 Changed recommended PCB layout for package (QLP 36)  
2007.09.14 First data sheet for released product.  
Preliminary data sheets exist for engineering samples and pre-production  
prototype devices, but these data sheets are not complete and may be incorrect in  
some aspects compared with the released product.  
SWRS055C  
SWRS055D  
2007.09.19  
- Removed CC2511 waiver information  
- Changed layout on front page slightly and listing of abbrevations  
- Changed register FREQEST and FSCTRL0 max range from ±20910 to ±209  
- Removed ppm requirement in Table 13 on page 17  
- Added power numbers for RX (Table 6) when using other system clock speeds.  
- Added section 13.1.5.2, describing limitations in data rates and system clock speed  
2007.09.20 - Stated in section 3.8 that duty-cycling or reduced output power might be needed at  
2480-2483.5MHz when operating under FCC  
- Stated that High VCO is not intended for use in Radio Register  
00xDF1D: FSCAL2 – Frequency Synthesizer Calibration  
Table 79: Document History  
SWRS055D  
Page 240 of 243  
C2510Fx / CC2511Fx  
21.2 Product Status Definitions  
Data Sheet Identification  
Product Status  
Definition  
Advance Information  
Planned or Under  
Development  
This data sheet contains the design specifications for product  
development. Specifications may change in any manner without  
notice.  
Preliminary  
Experimental and  
Prototype Devices  
This data sheet contains preliminary data, and supplementary  
data will be published at a later date. Texas Instruments reserves  
the right to make changes at any time without notice in order to  
improve design and supply the best possible product. The  
product at this point is not yet fully qualified.  
No Identification Noted  
Obsolete  
Full Production  
This data sheet contains the final specifications. Texas  
Instruments reserves the right to make changes at any time  
without notice in order to improve design and supply the best  
possible product.  
Not In Production  
This data sheet contains specifications on a product that has  
been discontinued by Texas Instruments. The data sheet is  
printed for reference information only.  
Table 80: Product Status Definitions  
SWRS055D  
Page 241 of 243  
C2510Fx / CC2511Fx  
22 Address Information  
Texas Instruments Norway AS  
Gaustadalléen 21  
N-0349 Oslo  
NORWAY  
Tel: +47 22 95 85 44  
Fax: +47 22 95 85 46  
Web site: http://www.ti.com/lpw  
23 TI Worldwide Technical Support  
Internet  
TI Semiconductor Product Information Center Home Page:  
TI Semiconductor KnowledgeBase Home Page:  
support.ti.com  
support.ti.com/sc/knowledgebase  
Product Information Centers  
Americas  
Phone:  
+1(972) 644-5580  
Fax:  
+1(972) 927-6377  
Internet/Email:  
support.ti.com/sc/pic/americas.htm  
Europe, Middle East and Africa  
Phone:  
Belgium (English)  
Finland (English)  
France  
+32 (0) 27 45 54 32  
+358 (0) 9 25173948  
+33 (0) 1 30 70 11 64  
+49 (0) 8161 80 33 11  
180 949 0107  
Germany  
Israel (English)  
Italy  
800 79 11 37  
Netherlands (English)  
Russia  
+31 (0) 546 87 95 45  
+7 (4) 95 98 10 701  
+34 902 35 40 28  
Spain  
Sweden (English)  
United Kingdom  
Fax:  
+46 (0) 8587 555 22  
+44 (0) 1604 66 33 99  
+49 (0) 8161 80 2045  
Internet:  
support.ti.com/sc/pic/euro.htm  
Japan  
Fax  
International  
Domestic  
+81-3-3344-5317  
0120-81-0036  
Internet/Email International  
support.ti.com/sc/pic/japan.htm  
www.tij.co.jp/pic  
Domestic  
SWRS055D  
Page 242 of 243  
C2510Fx / CC2511Fx  
Asia  
Phone  
International  
Domestic  
Australia  
China  
+886-2-23786800  
Toll-Free Number  
1-800-999-084  
800-820-8682  
Hong Kong  
India  
800-96-5941  
+91-80-51381665 (Toll)  
001-803-8861-1006  
080-551-2804  
Indonesia  
Korea  
Malaysia  
New Zealand  
Philippines  
Singapore  
Taiwan  
1-800-80-3973  
0800-446-934  
1-800-765-7404  
800-886-1028  
0800-006800  
Thailand  
001-800-886-0010  
+886-2-2378-6808  
Fax  
Email  
Internet  
tiasia@ti.com or ti-china@ti.com  
support.ti.com/sc/pic/asia.htm  
SWRS055D  
Page 243 of 243  
IMPORTANT NOTICE  
Texas Instruments Incorporated and its subsidiaries (TI) reserve the right to make corrections, modifications, enhancements,  
improvements, and other changes to its products and services at any time and to discontinue any product or service without notice.  
Customers should obtain the latest relevant information before placing orders and should verify that such information is current and  
complete. All products are sold subject to TI’s terms and conditions of sale supplied at the time of order acknowledgment.  
TI warrants performance of its hardware products to the specifications applicable at the time of sale in accordance with TI’s  
standard warranty. Testing and other quality control techniques are used to the extent TI deems necessary to support this  
warranty. Except where mandated by government requirements, testing of all parameters of each product is not necessarily  
performed.  
TI assumes no liability for applications assistance or customer product design. Customers are responsible for their products and  
applications using TI components. To minimize the risks associated with customer products and applications, customers should  
provide adequate design and operating safeguards.  
TI does not warrant or represent that any license, either express or implied, is granted under any TI patent right, copyright, mask  
work right, or other TI intellectual property right relating to any combination, machine, or process in which TI products or services  
are used. Information published by TI regarding third-party products or services does not constitute a license from TI to use such  
products or services or a warranty or endorsement thereof. Use of such information may require a license from a third party under  
the patents or other intellectual property of the third party, or a license from TI under the patents or other intellectual property of TI.  
Reproduction of TI information in TI data books or data sheets is permissible only if reproduction is without alteration and is  
accompanied by all associated warranties, conditions, limitations, and notices. Reproduction of this information with alteration is an  
unfair and deceptive business practice. TI is not responsible or liable for such altered documentation. Information of third parties  
may be subject to additional restrictions.  
Resale of TI products or services with statements different from or beyond the parameters stated by TI for that product or service  
voids all express and any implied warranties for the associated TI product or service and is an unfair and deceptive business  
practice. TI is not responsible or liable for any such statements.  
TI products are not authorized for use in safety-critical applications (such as life support) where a failure of the TI product would  
reasonably be expected to cause severe personal injury or death, unless officers of the parties have executed an agreement  
specifically governing such use. Buyers represent that they have all necessary expertise in the safety and regulatory ramifications  
of their applications, and acknowledge and agree that they are solely responsible for all legal, regulatory and safety-related  
requirements concerning their products and any use of TI products in such safety-critical applications, notwithstanding any  
applications-related information or support that may be provided by TI. Further, Buyers must fully indemnify TI and its  
representatives against any damages arising out of the use of TI products in such safety-critical applications.  
TI products are neither designed nor intended for use in military/aerospace applications or environments unless the TI products are  
specifically designated by TI as military-grade or "enhanced plastic." Only products designated by TI as military-grade meet military  
specifications. Buyers acknowledge and agree that any such use of TI products which TI has not designated as military-grade is  
solely at the Buyer's risk, and that they are solely responsible for compliance with all legal and regulatory requirements in  
connection with such use.  
TI products are neither designed nor intended for use in automotive applications or environments unless the specific TI products  
are designated by TI as compliant with ISO/TS 16949 requirements. Buyers acknowledge and agree that, if they use any  
non-designated products in automotive applications, TI will not be responsible for any failure to meet such requirements.  
Following are URLs where you can obtain information on other Texas Instruments products and application solutions:  
Products  
Amplifiers  
Data Converters  
DSP  
Applications  
Audio  
amplifier.ti.com  
dataconverter.ti.com  
dsp.ti.com  
www.ti.com/audio  
Automotive  
Broadband  
Digital Control  
Military  
www.ti.com/automotive  
www.ti.com/broadband  
www.ti.com/digitalcontrol  
www.ti.com/military  
Interface  
interface.ti.com  
logic.ti.com  
Logic  
Power Mgmt  
Microcontrollers  
RFID  
power.ti.com  
Optical Networking  
Security  
www.ti.com/opticalnetwork  
www.ti.com/security  
www.ti.com/telephony  
www.ti.com/video  
microcontroller.ti.com  
www.ti-rfid.com  
www.ti.com/lpw  
Telephony  
Low Power  
Wireless  
Video & Imaging  
Wireless  
www.ti.com/wireless  
Mailing Address: Texas Instruments, Post Office Box 655303, Dallas, Texas 75265  
Copyright © 2007, Texas Instruments Incorporated  

相关型号:

CC2510EMK

Low-Power SoC (System-on-Chip) with MCU, Memory, 2.4 GHz RF Transceiver, and USB Controller
TAOS

CC2510EMK

Low-Power SoC (System-on-Chip) with MCU, Memory, 2.4 GHz RF Transceiver, and USB Controller
TI

CC2510F16

Low-Power SoC (System-on-Chip) with MCU, Memory, 2.4 GHz RF Transceiver, and USB Controller
TI

CC2510F16RHH

Low-Power SoC (System-on-Chip) with MCU, Memory, 2.4 GHz RF Transceiver, and USB Controller
TI

CC2510F16RHHR

Low-Power SoC (System-on-Chip) with MCU, Memory, 2.4 GHz RF Transceiver, and USB Controller
TI

CC2510F16RHHT

Low-Power SoC (System-on-Chip) with MCU, Memory, 2.4 GHz RF Transceiver, and USB Controller
TI

CC2510F16RSP

Low-Power SoC (System-on-Chip) with MCU, Memory, 2.4 GHz RF Transceiver, and USB Controller
TAOS

CC2510F16RSP

Low-Power SoC (System-on-Chip) with MCU, Memory, 2.4 GHz RF Transceiver, and USB Controller
TI

CC2510F16RSPG3

TELECOM, CELLULAR, RF AND BASEBAND CIRCUIT, QCC36, 6 X 6 MM, GREEN, MO-220, QFN-36
TI

CC2510F16RSPR

Low-Power SoC (System-on-Chip) with MCU, Memory, 2.4 GHz RF Transceiver, and USB Controller
TAOS

CC2510F16RSPR

Low-Power SoC (System-on-Chip) with MCU, Memory, 2.4 GHz RF Transceiver, and USB Controller
TI

CC2510F16RSPRG3

TELECOM, CELLULAR, RF AND BASEBAND CIRCUIT, QCC36, 6 X 6 MM, GREEN, MO-220, QFN-36
TI