CC2510F8 [TI]
2.4GHz 无线电收发器、8051 MCU 和 8kB 闪存;型号: | CC2510F8 |
厂家: | TEXAS INSTRUMENTS |
描述: | 2.4GHz 无线电收发器、8051 MCU 和 8kB 闪存 无线 闪存 |
文件: | 总244页 (文件大小:3191K) |
中文: | 中文翻译 | 下载: | 下载PDF数据表文档文件 |
CC2511F8 - Not Recommended for New Designs
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
• RF enabled remote controls
• Wireless sports and leisure equipment
• Low power telemetry
systems
• Consumer electronics
• Wireless keyboard and mouse
• Wireless voice-quality audio
•
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
Excellent receiver selectivity and blocking
performance
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
Frequency range: 2400 - 2483.5 MHz
Digital RSSI / LQI support
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
o
o
o
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
• Current Consumption
o
Low current consumption (RX: 17.1 mA @
2.4 kBaud, TX: 16 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 QFN 36
SWRS055G
Page 1 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
Table of Contents
ABBREVIATIONS................................................................................................................................................ 4
1
REGISTER CONVENTIONS.................................................................................................................. 5
2
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
2.1
2.2
2.3
2.4
2.5
2.6
2.7
2.8
3
ABSOLUTE MAXIMUM RATINGS...................................................................................................... 8
4
4.1
4.2
OPERATING CONDITIONS .................................................................................................................. 9
CC2510FX OPERATING CONDITIONS.............................................................................................................. 9
CC2511FX OPERATING CONDITIONS .............................................................................................................. 9
5
GENERAL CHARACTERISTICS.......................................................................................................... 9
6
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.................................................................................................................... 17
HIGH SPEED RC OSCILLATOR .................................................................................................................... 18
FREQUENCY SYNTHESIZER CHARACTERISTICS........................................................................................... 18
ANALOG TEMPERATURE SENSOR ............................................................................................................... 19
6.1
6.2
6.3
6.4
6.5
6.6
6.7
6.8
6.9
6.10 7 - 12 BIT ADC ........................................................................................................................................... 20
6.11 CONTROL AC CHARACTERISTICS ............................................................................................................... 22
6.12 SPI AC CHARACTERISTICS......................................................................................................................... 23
6.13 DEBUG INTERFACE AC CHARACTERISTICS ................................................................................................ 24
6.14 PORT OUTPUTS AC CHARACTERISTICS ...................................................................................................... 24
6.15 TIMER INPUTS AC CHARACTERISTICS ........................................................................................................ 25
6.16 DC CHARACTERISTICS ............................................................................................................................... 25
7
PIN AND I/O PORT CONFIGURATION ............................................................................................ 26
8
8.1
8.2
CIRCUIT DESCRIPTION ..................................................................................................................... 30
CPU AND PERIPHERALS ............................................................................................................................. 31
RADIO ........................................................................................................................................................ 33
9
APPLICATION CIRCUIT ..................................................................................................................... 33
BIAS RESISTOR ........................................................................................................................................... 33
BALUN AND RF MATCHING........................................................................................................................ 33
CRYSTAL .................................................................................................................................................... 33
REFERENCE SIGNAL ................................................................................................................................... 34
USB (CC2511FX) ......................................................................................................................................... 34
POWER SUPPLY DECOUPLING..................................................................................................................... 34
PCB LAYOUT RECOMMENDATIONS............................................................................................................ 38
9.1
9.2
9.3
9.4
9.5
9.6
9.7
10
8051 CPU.................................................................................................................................................. 39
10.1 8051 INTRODUCTION .................................................................................................................................. 39
10.2 MEMORY.................................................................................................................................................... 39
10.3 CPU REGISTERS ......................................................................................................................................... 51
10.4 INSTRUCTION SET SUMMARY ..................................................................................................................... 53
10.5 INTERRUPTS................................................................................................................................................ 57
11
DEBUG INTERFACE............................................................................................................................. 68
11.1 DEBUG MODE............................................................................................................................................. 68
11.2 DEBUG COMMUNICATION........................................................................................................................... 68
11.3 DEBUG LOCK BIT ....................................................................................................................................... 68
SWRS055G
Page 2 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
11.4 DEBUG COMMANDS.................................................................................................................................... 69
12 PERIPHERALS....................................................................................................................................... 73
12.1 POWER MANAGEMENT AND CLOCKS.......................................................................................................... 73
12.2 RESET......................................................................................................................................................... 80
12.3 FLASH CONTROLLER .................................................................................................................................. 81
12.4 I/O PORTS................................................................................................................................................... 87
12.5 DMA CONTROLLER ................................................................................................................................... 98
12.6 16-BIT TIMER, TIMER 1............................................................................................................................. 109
12.7 MAC TIMER (TIMER 2) ............................................................................................................................ 121
12.8 SLEEP TIMER ............................................................................................................................................ 123
12.9 8-BIT TIMERS, TIMER 3 AND TIMER 4 ....................................................................................................... 126
12.10 ADC......................................................................................................................................................... 137
12.11 RANDOM NUMBER GENERATOR............................................................................................................... 143
12.12 AES COPROCESSOR.................................................................................................................................. 144
12.13 WATCHDOG TIMER................................................................................................................................... 147
12.14 USART .................................................................................................................................................... 149
12.15 I2S ............................................................................................................................................................ 159
12.16 USB CONTROLLER ................................................................................................................................... 167
13
RADIO.................................................................................................................................................... 183
13.1 COMMAND STROBES ................................................................................................................................ 183
13.2 RADIO REGISTERS .................................................................................................................................... 185
13.3 INTERRUPTS.............................................................................................................................................. 185
13.4 TX/RX DATA TRANSFER ......................................................................................................................... 187
13.5 DATA RATE PROGRAMMING..................................................................................................................... 188
13.6 RECEIVER CHANNEL FILTER BANDWIDTH................................................................................................ 188
13.7 DEMODULATOR, SYMBOL SYNCHRONIZER, AND DATA DECISION............................................................ 189
13.8 PACKET HANDLING HARDWARE SUPPORT ............................................................................................... 190
13.9 MODULATION FORMATS........................................................................................................................... 193
13.10 RECEIVED SIGNAL QUALIFIERS AND LINK QUALITY INFORMATION......................................................... 194
13.11 FORWARD ERROR CORRECTION WITH INTERLEAVING.............................................................................. 197
13.12 RADIO CONTROL ...................................................................................................................................... 198
13.13 FREQUENCY PROGRAMMING .................................................................................................................... 201
13.14 VCO......................................................................................................................................................... 202
13.15 OUTPUT POWER PROGRAMMING .............................................................................................................. 202
13.16 SELECTIVITY ............................................................................................................................................ 203
13.17 SYSTEM CONSIDERATIONS AND GUIDELINES ........................................................................................... 205
13.18 RADIO REGISTERS .................................................................................................................................... 208
14
VOLTAGE REGULATORS ................................................................................................................ 226
14.1 VOLTAGE REGULATOR POWER-ON........................................................................................................... 226
15
16
17
18
RADIO TEST OUTPUT SIGNALS..................................................................................................... 226
REGISTER OVERVIEW..................................................................................................................... 228
REFERENCES ...................................................................................................................................... 232
GENERAL INFORMATION............................................................................................................... 233
18.1 DOCUMENT HISTORY ............................................................................................................................... 233
SWRS055G
Page 3 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
Abbreviations
Delta-Sigma
LNA
LO
Low-Noise Amplifier
∆Σ
Local Oscillator
ADC
AES
AGC
ARIB
Analog to Digital Converter
Advanced Encryption Standard
Automatic Gain Control
LQI
Link Quality Indication
Least Significant Bit / Byte
Medium Access Control
Microcontroller Unit
Master In Slave Out
Master Out Slave In
Most Significant Bit / Byte
Not Applicable
LSB
MAC
MCU
MISO
MOSI
MSB
NA
Association of Radio Industries and
Businesses
BCD
BER
BOD
CBC
Binary Coded Decimal
Bit Error Rate
Brown Out Detector
Cipher Block Chaining
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
Phase Locked Loop
CFR
Code of Federal Regulations
PM{0 - 3} Power Mode 0 - 3
CMOS
Complementary Metal Oxide
Semiconductor
PMC
POR
PWM
Px_n
Power Management Controller
Power On Reset
CPU
CRC
CTR
Central Processing Unit
Cyclic Redundancy Check
Counter mode (encryption)
Digital to Analog Converter
Direct Memory Access
Delta-Sigma Modulator
Electronic Code Book
Pulse Width Modulator
Port x pin n (x = 0, 1, or 2 and
n = 0, 1, 2, .., 7)
DAC
DMA
DSM
ECB
QLP
Quad Leadless Package
Random Access Memory
RC Oscillator
RAM
RCOSC
RF
Radio Frequency
EM
Evaluation Module
RoHS
RSSI
RX
Restriction on Hazardous Substances
Receive Signal Strength Indicator
Receive
ENOB
EP{0 - 5}
ESD
Effective Number of Bits
USB Endpoints 0 - 5
Electro Static Discharge
Equivalent Series Resistance
SCK
SFD
Serial Clock
ESR
Start of Frame Delimiter
Special Function Register
Signal-to-noise and distortion ratio
ETSI
European Telecommunications Standard
Institute
SFR
SINAD
FCC
FIFO
GPIO
HSSD
HW
Federal Communications Commission
First In First Out
SPI
Serial Peripheral Interface
Static Random Access Memory
Software
General Purpose Input / Output
High Speed Serial Debug
Hardware
SRAM
SW
I2S
Inter-IC Sound
T/R
Transmit / Receive
Transmit
TX
I/O
Input / Output
UART
Universal Asynchronous
Receiver/Transmitter
I/Q
In-phase / Quadrature-phase
Intermediate Frequency
I/O Controller
IF
USART
Universal Synchronous/Asynchronous
Receiver/Transmitter
IOC
ISM
ISR
Industrial, Scientific and Medical
Interrupt Service Routine
Initialization Vector
USB
Universal Serial Bus
Voltage Controlled Oscillator
Variable Gain Amplifier
Watchdog Timer
VCO
VGA
WDT
XOSC
IV
JEDEC
kbps
KB
Joint Electron Device Engineering Council
kilo bits per second
Crystal Oscillator
Kilo Bytes (1024 bytes)
Linear Feedback Shift Register
LFSR
SWRS055G
Page 4 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
1
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
SWRS055G
Page 5 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
2
Key Features (in more details)
2.1 High-Performance and Low-Power
8051-Compatible Microcontroller
• Support for µ-law compression and
expansion
• Optimized 8051 core which typically
gives 8x the performance of a standard
8051
• Typically used to connect to external
DAC or ADC
• Two data pointers
2.5 Hardware AES Encryption/Decryption
• In-circuit interactive debugging is
supported by the IAR Embedded
Workbench through a simple two-wire
serial interface
• 128-bit AES supported in hardware
coprocessor
2.6 Peripheral Features
• SW compatible with CC1110Fx/CC1111Fx
• Powerful DMA Controller
• Power On Reset/Brown-Out Detection
2.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
• Minimum flash memory endurance:
• Five timers: one general 16-bit timer
with DSM mode, two general 8-bit
timers, one MAC timer, and one sleep
timer
1000 write/erase cycles
• Programmable read and write lock of
portions of flash memory for software
security
• Two
programmable
USARTs
for
master/slave SPI or UART operation
• 1, 2, or 4 kB of internal SRAM
• 21 configurable general-purpose digital
I/O-pins (CC2511Fx has 19)
2.3 Full-Speed USB Controller (CC2511Fx )
• Random number generator
• 5 bi-directional endpoints in addition to
control endpoint 0
2.7 Low Power
• Full-Speed, 12 Mbps transfer rate
• Four flexible power modes for reduced
• Support for Bulk, Interrupt, and
power consumption
Isochronous endpoints
• System can wake up on external
interrupt or when the Sleep Timer
expires
• 1024 bytes of dedicated endpoint FIFO
memory
• 8 - 512 byte data packet size supported
• 0.5 µA current consumption in PM2,
where external interrupts or the Sleep
Timer can wake up the system
• 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
2.4 I2S Interface
• Industry standard I2S interface for
transfer of digital audio data
• Low-power fully static CMOS design
• Full duplex
• 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).
• Mono and stereo support
• Configurable sample rate and sample
size
SWRS055G
Page 6 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
The high speed crystal oscillator must
be used when the radio is active.
• 2-FSK, GFSK and MSK supported
• Optional automatic whitening and de-
• Clock source for ultra-low power
operation can be either a low-power RC
oscillator or an optional 32.768 kHz
crystal oscillator
whitening of data
• Programmable Carrier Sense (CS)
indicator
• Programmable
Preamble
Quality
• Very fast transition to active mode from
power modes enables ultra low average
power consumption in low duty-cycle
systems
Indicator for detecting preambles and
improved protection against sync word
detection in random noise
• Support for automatic Clear Channel
Assessment (CCA) before transmitting
(for listen-before-talk systems
2.8 2.4 GHz Radio with Baseband Modem
• Based on the industry leading CC2500
• Support for per-package Link Quality
radio core
Indication (LQI)
• Few external components: On-chip
frequency synthesizer, no external filters
or RF switch needed
• 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.5 MHz 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
SWRS055G
Page 7 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
3
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
Max
Units Condition
Supply voltage (VDD)
Voltage on any digital pin
−0.3
3.9
V
V
All supply pins must have the same voltage
−0.3 VDD + 0.3,
max 3.9
Voltage on the pins RF_P, RF_N
and DCOUPL
−0.3
−50
2.0
V
Voltage ramp-up rate
Input RF level
120
10
kV/µs
dBm
°C
Storage temperature range
Solder reflow temperature
ESD CC2510Fx
150
260
750
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.
SWRS055G
Page 8 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
4
Operating Conditions
4.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
4.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
5
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
SWRS055G
Page 9 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
6
Electrical Specifications
6.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 13 MHz.
Active mode, full
speed (HS
Digital regulator on. HS RCOSC and low power RCOSC running. 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
20.6
17.1
19.8
mA
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 24 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
22.1
18.8
19.0
mA
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 24 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
22.7
20.5
mA
mA
mA
250 kBaud, input at sensitivity limit, system clock running at 26 MHz.
250 kBaud, input at sensitivity limit, system clock running at 24 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
20.8
17.5
mA
mA
mA
500 kBaud, input at sensitivity limit, system clock running at 26 MHz.
500 kBaud, input at sensitivity limit, system clock running at 24 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.
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
SWRS055G
Page 10 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
Parameter
Min
Typ
19.4
15.7
16.9
Max
Unit
mA
mA
mA
Condition
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.
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 12.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 12.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 12.1.2.4 for details)
µA
µA
Digital regulator off. No crystal oscillators or RC oscillators are
running (see 12.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
SWRS055G
Page 11 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / 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] −40
Current [mA]
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,
0 dBm Output Power
SWRS055G
Page 12 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
6.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 13.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)
Receiver
sensitivity
−103
dBm 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.
The sensitivity can be improved to typically −105 dBm with
MDMCFG2.DEM_DCFILT_OFF=0 by changing registers TEST2and
TEST1(see Page 222). The temperature range is then from 0oC to 85oC.
Saturation
−10
dBm
Adjacent
channel
rejection
23
dB
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 55 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 222). The temperature range is then from 0oC to 85oC.
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 56 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.
SWRS055G
Page 13 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / 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
dBm
Adjacent
channel
rejection
21
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 57 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
dBm
dB
Adjacent
channel
rejection
12
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 59 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] −40
Sensitivity [dBm] −91.5
25
85
−40
−90
25
85
−40
25
85
−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
SWRS055G
Page 14 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
6.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
−47
−41
−30
dBm
dBm
dBm
Restricted band in Europe
Restricted bands in USA
At 2∙RF and 3∙RF
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)
SWRS055G
Page 15 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
6.4 Crystal Oscillators
6.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 below 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
Power Down
Guard Time
3
ms
The crystal oscillator must be in power down for a guard time before it
is used again. This requirement is valid for all modes of operation. The
need for power down guard time can vary with crystal type and load.
Minimum figure is valid for reference crystal NDK, AT-41CD2 and load
capacitance according to Table 29.
If power down guard time is violated, one of the consequences can be
increased PER when using the radio immediately after the crystal
oscillator has been reported stable.
Table 11: CC2510Fx Crystal Oscillator Parameters
CC2511Fx Crystal Oscillator
TA = 25°C, VDD = 3.0 V if nothing else is stated.
6.4.2
Parameter
Min
Typ
48
Max
Unit
MHz
ppm
Condition/Note
Crystal frequency
Referred to as fXOSC
Crystal frequency
accuracy
±40
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
SWRS055G
Page 16 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
6.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
kHz
pF
Condition/Note
2.0
16
Simulated over operating conditions
Simulated over operating conditions
Simulated over operating conditions
Value is simulated
Load capacitance
ESR
12
pF
40
130
kΩ
Start-up time
400
ms
Table 13: 32.768 kHz Crystal Oscillator Parameters
6.6 Low Power RC Oscillator
TA = 25°C, VDD = 3.0 V if nothing else is stated.
Parameter
Min
32.0
32.0
Typ
34.7
32.0
Max
36.0
32.0
Unit
Condition/Note
Calibrated frequency2
kHz
CC2510Fx
CC2511Fx
Calibrated low power RC oscillator frequency is
f
Ref / 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
2 fRef = fXOSC for CC2510Fx and fRef = fXOSC /2 for CC2511Fx
For CC2510Fx 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. For CC2511Fx, fXOSC = 48 MHz
SWRS055G
Page 17 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
6.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
28
ppm/V
µs
Frequency drift when supply voltage changes after
calibration
Calibration time
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} if CLKCON.OSCwas
set to 0 when entering PM{1 - 3}. See 12.1.5.1 for
details).
Table 15: High Speed RC Oscillator Parameters
6.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
resolution3
366
366
397
366
412
366
Hz
CC2510Fx
CC2511Fx
Frequency resolution = fRef/ 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
−77
−77
dBc/Hz
dBc/Hz
dBc/Hz
dBc/Hz
dBc/Hz
dBc/Hz
dBc/Hz
dBc/Hz
@ 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
−25
3 fRef = fXOSC for CC2510Fx and fRef = fXOSC /2 for CC2511Fx
For CC2510Fx 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. For CC2511Fx, fXOSC = 48 MHz
SWRS055G
Page 18 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
Parameter
Min
Typ
Max
Unit
Condition/Note
PLL turn-on / hop time4
72.4
81.4
75.2
81.4
81.4
81.4
µs
CC2510Fx
CC2511Fx
Time from leaving the IDLE state until arriving in the RX,
FSTXON, or TX state, when not performing calibration.
Crystal oscillator running.
RX to TX switch 4
TX to RX switch 4
PLL calibration time4
29.0
32.6
30.1
32.6
32.6
32.6
µs
µs
µs
CC2510Fx
CC2511Fx
Settling time for the 1∙IF frequency step from RX to TX
30.0
33.6
31.1
33.6
33.6
33.6
CC2510Fx
CC2511Fx
Settling time for the 1∙IF frequency step from TX to RX
707
796
735
796
796
796
CC2510Fx
CC2511Fx
Calibration can be initiated manually or automatically
before entering or after leaving RX/TX.
Note: This is the PLL calibration time given that
TEST0=0x0Band FSCAL3.CHP_CURR_CAL_EN=10
(max calibration time). Please see DN110 [11] for more
details
Table 16: Frequency Synthesizer Parameters
6.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
4 fRef = fXOSC for CC2510Fx and fRef = f fXOSC xosc/2 for CC2511Fx
For CC2510Fx 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. For CC2511Fx, fXOSC = 48 MHz The system clock
frequency is equal to fRef and the data rate is 250 kBaud. See DN110 [11] for more details.
SWRS055G
Page 19 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
6.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
VDD
VDD
V
V
VDD is the voltage on the AVDD pin (2.0 - 3.6 V)
External reference
voltage
VDD is the voltage on the AVDD pin (2.0 - 3.6 V)
External reference
voltage differential
0
VDD
V
VDD is the voltage on the AVDD pin (2.0 - 3.6 V)
Input resistance, signal
Full-Scale Signal5
ENOB5
197
2.97
5.7
Simulated using 4 MHz clock speed (see Section 12.10.2.7)
kΩ
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
ENOB5
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
THD5
kHz
dB
7-bits setting, both single and differential
-Single ended input
-Differential input
−75.2
−86.6
12-bits setting, −6 dBFS
12-bits setting, −6 dBFS
Signal To Non-Harmonic
Ratio5
-Single ended input
-Differential input
70.2
79.3
dB
12-bits setting
12-bits setting
Spurious Free Dynamic
Range5
-Single ended input
-Differential input
78.8
88.9
dB
12-bits setting, −6 dBFS
12-bits setting, −6 dBFS
CMRR, differential input
<−84
<−84
dB
dB
12- bit setting, 1 kHz Sine (0 dBFS), limited by ADC resolution
12- bit setting, 1 kHz Sine (0 dBFS), limited by ADC resolution
Crosstalk, single ended
input
Offset
−3
0.68
0.05
0.9
mV
%
Mid. Scale
Gain error
DNL5
LSB 12-bits setting, mean
12-bits setting, max
INL5
4.6
LSB 12-bits setting, mean
12-bits setting, max
13.3
5 Measured with 300 Hz Sine input and VDD as reference
SWRS055G
Page 20 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
Parameter
Min
Typ
Max
Unit Condition/Note
SINAD5
35.4
46.8
57.5
66.6
40.7
51.6
61.8
70.8
20
dB
dB
µs
7-bits setting
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
Single ended input
(−THD+N)
SINAD5
Differential input
(−THD+N)
Conversion time
36
68
132
1.2
Current consumption
mA
Table 18: 7 - 12 bit ADC Characteristics
SWRS055G
Page 21 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
6.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
Min: fXOSC = 24 MHz, CLKCON.CLKSPD=
Typ: fXOSC = 26 MHz, CLKCON.CLKSPD=
Max: fXOSC = 27 MHz, CLKCON.CLKSPD=
CC2511Fx
001
001
0.1875
0.1875
24
12
24
12
MHz
MHz
High speed crystal oscillator used as source.
HS RCOSC used as source.
HS
HS
XOSC
RCOSC
111
000
000
111
001
001
Min: fXOSC = 48 MHz, CLKCON.CLKSPD=
Typ: fXOSC = 48 MHz, CLKCON.CLKSPD=
Max: fXOSC = 48 MHz, CLKCON.CLKSPD=
RESET_N low
width
250
ns
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
1
RESET_N
Px_n
2
2
Px_n
Figure 4: Control Inputs AC Characteristics
SWRS055G
Page 22 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
6.11.1 Filtering of RESET_N pin
The RESET_N pin is sensitive to noise and can cause unintended reset of the chip. For a long reset
line add an external RC filter with values 1 nF and 2.7 kΩ close to the RESET_N pin. When doing
this, note that the RESET_N low width (the shortest pulse that is guaranteed to be recognized as a
reset pin request) is longer than stated in Table 19.
6.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 Section 12.14.3
50
ns
%
Master. See item 1, Figure 5
Master.
SCK duty cycle
SSN low to SCK
SCK to SSN high
MISO setup
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
1
SCK
3
2
MISO/MOSI
4
MOSI/MISO
SSN
5
6
Figure 5: SPI AC Characteristics
SWRS055G
Page 23 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
6.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
Clock to data delay
5
5
ns
ns
ns
ns
See item 2, Figure 6
See item 3, Figure 6
10
See item 4, Figure 6, load = 10 pF
See item 5, Figure 6
RESET_N inactive
after P2_2 rising
10
Table 21: Debug Interface AC Characteristics
1
DEBUG CLK
P2_2
3
2
DEBUG DATA
P2_1
4
DEBUG DATA
P2_1
5
RESET_N
Figure 6: Debug Interface AC Characteristics
6.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
3.15 / 1.34
ns
Load = 10 pF
Timing is with respect to 10% VDD and 90% VDD levels.
Values are estimated
(IOCFG1.GDO_DS=0/
IOCFG1.GDO_DS=1)
P0_[0:7], P1_[2:7],
P2_[0:4] Port output
fall time
3.2 / 1.44
ns
Load = 10 pF
Timing is with respect to 90% VDD and 10% VDD.
Values are estimated
(IOCFG1.GDO_DS=0/
IOCFG1.GDO_DS=1)
Table 22: Port Outputs AC Characteristics
SWRS055G
Page 24 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
6.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
Synchronizers determine the shortest input pulse
Input capture pulse width
tSYSCLK
that can be recognized. The synchronizers operate
from the current system clock rate (see Table 19)
Table 23: Timer Inputs AC Characteristics
6.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
Logic "0" input voltage
30
%
%
Of VDD supply (2.0 - 3.6 V)
Logic "1" input voltage
70
NA
NA
Of VDD supply (2.0 - 3.6 V)
Input equals 0 V
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
SWRS055G
Page 25 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
7
Pin and I/O Port Configuration
The CC2510Fx pin-out is shown in Figure 7 and Table 25. See Section 12.4 for details on the I/O
configuration.
36 35 34 33 32 31 30 29 28
1
P1_2
27 RBIAS
26
DVDD
P1_1
2
3
AVDD
25
AVDD
4
5
P1_0
P0_0
P0_1
P0_2
P0_3
RF_N
24
23
22
RF_P
AVDD
6
7
8
9
21 XOSC_Q1
20
XOSC_Q2
P0_4
AVDD
19
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.
SWRS055G
Page 26 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
Pin
-
Pin Name
AGND
P1_2
DVDD
P1_1
P1_0
P0_0
P0_1
P0_2
P0_3
P0_4
DVDD
P0_5
P0_6
P0_7
P2_0
P2_1
P2_2
Pin Type
Ground
D I/O
Description
The exposed die attach pad must be connected to a solid ground plane
1
Port 1.2
2
Power (Digital)
D I/O
2.0 V - 3.6 V digital power supply for digital I/O
3
Port 1.1
4
D I/O
Port 1.0
5
D I/O
Port 0.0
6
D I/O
Port 0.1
7
D I/O
Port 0.2
8
D I/O
Port 0.3
9
D I/O
Port 0.4
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Power (Digital)
D I/O
2.0 V - 3.6 V digital power supply for digital I/O
Port 0.5
D I/O
Port 0.6
D I/O
Port 0.7
D I/O
Port 2.0
D I/O
Port 2.1
D I/O
Port 2.2
P2_3/XOSC32_Q1 D I/O
P2_4/XOSC32_Q2 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
Crystal oscillator pin 2
AVDD
Power (Analog)
XOSC_Q2
XOSC_Q1
AVDD
Analog I/O
Analog I/O
Power (Analog)
RF I/O
Crystal oscillator pin 1, or external clock input
2.0 V - 3.6 V analog power supply connection
Positive RF input signal to LNA in receive mode
Positive RF output signal from PA in transmit mode
RF_P
Negative RF input signal to LNA in receive mode
Negative RF output signal from PA in transmit mode
24
RF_N
RF I/O
25
26
27
28
29
30
AVDD
Power (Analog)
Power (Analog)
Analog I/O
2.0 V - 3.6 V analog power supply connection
2.0 V - 3.6 V analog power supply connection
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
AVDD
RBIAS
GUARD
AVDD_DREG
DCOUPL
Power (Digital)
Power (Digital)
Power
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 25: CC2510Fx Pin-out Overview
SWRS055G
Page 27 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
The CC2511Fx pin-out is shown in Figure 8 and Table 26. See Section 12.4 for details on the I/O
configuration.
36 35 34 33 32 31 30 29 28
1
P1_2
27 R_BIAS
26
DVDD
P1_1
2
3
AVDD
25
AVDD
P1_0
P0_0
P0_1
P0_2
P0_3
4
5
RF_N
24
23
22
RF_P
AVDD
6
7
8
9
21 XOSC_Q1
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.
SWRS055G
Page 28 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
Pin
-
Pin Name
AGND
P1_2
DVDD
P1_1
P1_0
P0_0
P0_1
P0_2
P0_3
P0_4
DP
Pin Type
Ground
D I/O
Description
The exposed die attach pad must be connected to a solid ground plane
Port 1.2
1
2
Power (Digital) 2.0 V - 3.6 V digital power supply for digital I/O
3
D I/O
Port 1.1
4
D I/O
Port 1.0
5
D I/O
Port 0.0
6
D I/O
Port 0.1
7
D I/O
Port 0.2
8
D I/O
Port 0.3
9
D I/O
Port 0.4
10
11
12
13
14
15
16
17
18
19
20
21
22
23
USB I/O
USB I/O
USB Differential Data Bus Plus
USB Differential Data Bus Minus
DM
DVDD
P0_5
P2_0
P2_1
P2_2
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
Port 0.5
Port 2.0
Port 2.1
Port 2.2
P2_3/XOSC32_Q1 D I/O
P2_4/XOSC32_Q2 D I/O
Port 2.3/32.768 kHz crystal oscillator pin 1
Port 2.4/32.768 kHz crystal oscillator pin 2
AVDD
Power (Analog) 2.0 V - 3.6 V analog power supply connection
XOSC_Q2
XOSC_Q1
AVDD
Analog I/O
Analog I/O
Crystal oscillator pin 2
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
SWRS055G
Page 29 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
8
Circuit Description
Figure 9: C C2510Fx/CC2511Fx Block Diagram
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 modules
SWRS055G
Page 30 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
8.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 10 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 12.3
for details.
The SFR bus is drawn conceptually in the
block diagram as a common bus that connects
Device
Flash [KB]
CC2510F8
CC2511F8
CC2510F16
CC2511F16
CC2510F32
CC2511F32
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 Section
12.5 for details.
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
debugging and external flash programming.
See Section 10 for details.
The interrupt controller services 18 interrupt
sources, divided into six interrupt groups, each
of which is associated with one out of four
interrupt priorities. An interrupt request is
The I/O-controller is responsible for all
general-purpose I/O pins. The CPU can
configure whether peripheral modules control
SWRS055G
Page 31 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
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
12.4 for details.
input signal using SCK directly instead of
using some over-sampling scheme and are
therefore well-suited for high data rates. See
Section 12.14 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
12.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
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 12.8 for details.
CC2511Fx is limited
channels (P0) are possible (
to six channels). The inputs can be selected
as single ended or differential. The reference
voltage can be internal, VDD, or a single
ended or differential external signal. The ADC
also has a temperature sensor input channel.
The ADC can automate the process of
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 12.13 for details.
periodic sampling or conversion over
a
sequence of channels. See Section 12.10 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 12.16 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 12.15 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 Delta-Sigma noise shaper mode
is also supported for audio applications. See
Section 12.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
12.7 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 12.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-
precision baud-rate generator, hence leaving
the ordinary timers free for other uses. When
configured as an SPI slave they sample the
SWRS055G
Page 32 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
8.2 Radio
requiring very few external components. See
Section 13 for details.
CC2510Fx/CC2511Fx features an RF transceiver
based on the industry-leading CC2500,
9
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 in Table 29.
9.1 Bias Resistor
The bias resistor R271 is used to set an
accurate bias current.
9.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 are 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 and schematics 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 Ω
9.3 Crystal
(L281) must also be connected in series with
C212 (see Figure 11, Figure 12 and Table 28).
The crystal oscillator for the CC2510Fx uses an
external crystal X1, with two loading capacitors
(C201 and C211) (see Figure 10 and Table
28).
Note: The high speed crystal oscillator
must be stable (SLEEP.XOSC_STB=1)
before using the radio.
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
The recommended application circuits also
show the connections for an optional 32.768
kHz crystal oscillator with external crystal X2
SWRS055G
Page 33 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
1
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.
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.
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 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
9.4 Reference Signal
The chip can alternatively be operated with a
reference signal from 24 to 27 MHz (CC2510Fx)
or 48 MHz (CC2511Fx) instead of a crystal. This
input clock can either be a full-swing digital
signal (0 V to VDD) or a sine wave of
maximum 1 V peak-peak amplitude. The
reference signal must be connected to the
XOSC_Q1 input. The sine wave must be
connected to XOSC_Q1 using
a
serial
capacitor. When using a full-swing digital
signal this capacitor can be omitted. The
XOSC_Q2 line must be left un-connected. The
crystal loading capacitors and crystal inductor
(if using X4) can be omitted when using a
reference signal.
9.5 USB (CC2511Fx)
derived from or controlled by the VBUS power
supply provided by the USB cable. In this way,
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
9.6 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]).
SWRS055G
Page 34 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
2.0V-3.6V power supply
R271
Antenna
(50 Ohm)
PCB
AVDD 26
inductor
AVDD 25
RF_N 24
RF_P 23
AVDD 22
PCB
inductor
C242
C241
C231
CC2510
2,10 DVDD
30 DCOUPL
DIE ATTACH PAD:
PCB
inductor
C233
C234
C232
C301
Alternative:
Folded dipole PCB
antenna
Optional:
C181
X2
X1
C201
C211
C171
Figure 10: Application Circuit for CC2510Fx (excluding supply decoupling capacitors)
3.0V-3.6V power supply
R271
Antenna
(50 Ohm)
4 P1_0
AVDD 26
L241
R264
R262
AVDD 25
RF_N 24
RF_P 23
AVDD 22
C241
C231
C242
2,12 DVDD
10 DP
D+
D-
CC2511
L232
C233
11 DM
L231
C232
DIE ATTACH PAD:
R263
C234
30 DCOUPL
C301
Alternative:
Folded dipole PCB
antenna
Optional:
C181
X2
X3
C203
C214
C171
Figure 11: Application Circuit for CC2511Fx with Fundamental Crystal (excluding supply decoupling
capacitors)
SWRS055G
Page 35 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
3.0V-3.6V power supply
R271
Antenna
(50 Ohm)
4 P1_0
AVDD 26
L241
R264
R262
AVDD 25
RF_N 24
RF_P 23
AVDD 22
C241
C231
C242
2,12 DVDD
10 DP
CC2511
D+
D-
L232
C233
11 DM
L231
C232
DIE ATTACH PAD:
R263
C234
30 DCOUPL
C301
Alternative:
Folded dipole PCB
antenna
Optional:
C181
L281
C213
X2
X4
C202
C212
C171
Figure 12: Application Circuit for CC2511Fx with 3rd Overtone Crystal (excluding supply decoupling
capacitors)
SWRS055G
Page 36 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
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/C242
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)
SWRS055G
Page 37 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
Component
C301
Value
Manufacturer
1 µF ± 10%, 0402 X5R
33 pF ± 5%, 0402 NP0
56 pF
Murata GRM1555C series
Murata GRM1555C series
C203/C214
C202
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
Murata GRM1555C series
Murata GRM1555C series
Murata GRM1555C series
Murata GRM1555C series
Murata GRM1555C series
Murata GRM1555C series
Murata LQG-15 series
Murata LQM18NNR47K00
Koa RK73 series
C234
L231, L232, L241 1.2 nH ± 0.3 nH, 0402 monolithic
L281
R271
R264
R262/R263
X1
470 nH ± 10%
56 kΩ ± 1%, 0402
1.5 kΩ ± 1%
Koa RK73 series
33 Ω ± 2%
Koa RK73 series
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)
NDK, AT-41CD2
X2
Epson MC-306 Crystal Unit
Abracon ABM8 series
X3
X4
Table 29: Bill Of Materials for the CC2510Fx/CC2511Fx Application Circuits (subject to changes)
9.7 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.
SWRS055G
Page 38 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
Figure 13: Left: Top Solder Resist Mask (negative). Right: Top Paste Mask. Circles are Vias.
10 8051 CPU
This section describes the 8051 CPU core,
with interrupts, memory, and instruction set.
10.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:
10.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 10.2.1 and 10.2.2 for
details):
of the DATA memory space can be addressed
either directly or indirectly, the upper 128 bytes
only indirectly.
XDATA. A 16-bit read/write data memory
space, which usually requires 4 - 5 CPU
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).
CODE. A 16-bit read-only memory space for
program memory.
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
SWRS055G
Page 39 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
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.
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.
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.
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.
How the different memory spaces are mapped
onto the three physical memories (8/16/32 KB
flash program memory, 1/2/4 KB SRAM, and
hardware registers (SFR, radio, I2S, and USB
(CC2511Fx)) is described in Section 10.2.1 and
Section 10.2.2.
Mapping all memory spaces to the CODE
memory space is primarily done to allow
program execution out of the SRAM/XDATA.
10.2.1 Memory Map
This section gives an overview of the memory
map.
0xFF
0x00
0xFFFF
DATA
Memory Space
Fast Access RAM
0xFF00
0xFEFF
Unimplemented
0xF300
0xF2FF
1 KB SRAM
Slow Access RAM /
0xF000
0xEFFF
Program Memory in RAM
Unimplemented
0xE000
0xDFFF
0xFF
0x80
SFR Memory Space
Hardware SFR Registers
0xDF80
0xDF00
0xDEFF
Hardware Registers
Unimplemented
Hardware Radio Registers /
I2S Registers
0xFFFF
0xDE40
0xDE3F
USB Registers
(CC2511F8)
USB Register (CC2511F8)
0xDE00
0xDDFF
Unimplemented
XDATA
Memory Space
0x2000
0x1FFF
0x0000
Non-Volatile Program Memory
8 KB Flash
CC2510F8/CC2511F8 Unified
Memory Space
Physical Memory
0x0000
0xFFFF
CODE
Memory Space
0x0000
8051 Memory Spaces
Figure 14: CC2510F8/CC2511F8 Memory Mapping
SWRS055G
Page 40 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
0xFF
0x00
0xFFFF
DATA
Memory Space
Fast Access RAM
Unimplemented
0xFF00
0xFEFF
0xF700
0xF6FF
2 KB SRAM
Slow Access RAM /
Program Memory in RAM
0xF000
0xEFFF
Unimplemented
0xE000
0xDFFF
0xFF
0x80
SFR Memory Space
Hardware SFR Registers
0xDF80
0xDF00
0xDEFF
Hardware Registers
Unimplemented
Hardware Radio Registers /
I2S Registers
0xFFFF
0xDE40
0xDE3F
USB Registers
(CC2511F16)
USB Register (CC2511F16)
Unimplemented
0xDE00
0xDDFF
XDATA
Memory Space
0x4000
0x3FFF
Non-Volatile Program Memory
16 KB Flash
0x0000
CC2510F16/CC2511F16
Unified Memory Space
Physical Memory
0x0000
0xFFFF
CODE
Memory Space
0x0000
8051 Memory Spaces
Figure 15: CC2510F16/CC2511F16 Memory Mapping
SWRS055G
Page 41 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
0xFF
0x00
0xFFFF
DATA
Memory Space
Fast Access RAM
0xFF00
0xFEFF
4 KB SRAM
Slow Access RAM /
Program Memory in RAM
0xF000
0xEFFF
Unimplemented
0xE000
0xDFFF
0xFF
0x80
SFR Memory Space
Hardware SFR Registers
0xDF80
0xDF00
0xDEFF
Hardware Registers
Unimplemented
Hardware Radio Registers /
I2S Registers
0xFFFF
0xDE40
0xDE3F
USB Registers
(CC2511F32)
USB Register (CC2511F32)
Unimplemented
0xDE00
0xDDFF
0x8000
0x7FFF
XDATA
Memory Space
Non-Volatile Program Memory
32 KB Flash
0x0000
CC2510F32/CC2511F32
Unified Memory Space
Physical Memory
0x0000
0xFFFF
CODE
Memory Space
0x0000
8051 Memory Spaces
Figure 16: CC2510F32/CC2511F32 Memory Mapping
Details about the mapping of all 8051 memory
spaces are given in the next section.
consideration that the first address of usable
SRAM start at 0xF000 instead of 0x0000.
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 12.1.2 on Page
74 for a detailed description of power modes.
10.2.2 8051 Memory Space
This section describes the details of each
standard 8051 memory space. Any differences
between
the
standard
8051
and
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.
CC2510Fx/CC2511Fx is described.
10.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
address range 0xDF40 - 0xDF48.
The CC2510Fx/CC2511Fx has a total of 1, 2, or 4
KB SRAM, starting at address 0xF000.
Compilers/assemblers
must
take
into
SWRS055G
Page 42 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
10.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.
10.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.
10.2.3 Physical Memory
10.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 0xF300 - 0xFEFF 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 0xF700
unimplemented.
-
0xFEFF is
The memory locations 0xFDA2 - 0xFEFF on
the F32 version consist of 350 bytes in unified
memory space which 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.
10.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:
10.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
The DATA memory will retain its contents in all
four power modes.
1,000 cycles
The flash memory consists of the Flash Main
Pages (up to 32 times 1 KB) which are where
the CPU reads program code and data. The
flash memory also contains
a
Flash
SWRS055G
Page 43 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / 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 12.3) is used to
write and erase the contents of the flash main
memory.
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.
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.
cache
may
be
disabled
with
the
MEMCTR.CACHDIS register bit, but doing so
will increase power consumption.
10.2.3.3 Special Function Registers
The Special Function Registers (SFRs) control
several of the features of the 8051 CPU core
8 Bytes
DPL1
80
88
90
98
P0
SP
DPL0
P1IFG
DPS
DPH0
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
SWRS055G
Page 44 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
Register
Name
SFR
Address
Module
Description
Retention6
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
ADC Control 2
Y
ADC Control 3
Y
ADC Data Low
Y
ADCH
ADC Data High
Y
RNDL
Random Number Generator Data Low
Random Number Generator Data High
Encryption/Decryption Input Data
Encryption/Decryption Output Data
Encryption/Decryption Control and Status
DMA Interrupt Flag
Y
RNDH
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
0xBE
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
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
Y
P1IFG
IOC
Y
P2IFG
IOC
Y
PICTL
IOC
Y
P1IEN
IOC
Y
P0INP
IOC
Port 0 Input Mode
Y
PERCFG
ADCCFG
P0SEL
P1SEL
P2SEL
P1INP
IOC
Peripheral I/O Control
Y
IOC
ADC Input Configuration
Port 0 Function Select
Y
IOC
Y
IOC
Port 1 Function Select
Y
IOC
Port 2 Function Select
Y
IOC
Port 1 Input Mode
Y
P2INP
IOC
Port 2 Input Mode
Y
P0DIR
IOC
Port 0 Direction
Y
P1DIR
IOC
Port 1 Direction
Y
P2DIR
IOC
Port 2 Direction
Y
MEMCTR
SLEEP
MEMORY
PMC
Memory System Control
Sleep Mode Control
Y
[6:2]Y, [7,1:0]N
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
SWRS055G
Page 45 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
Register
Name
SFR
Address
Module
Description
Retention6
CLKCON
RFIM
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
0xC2
0xC4
PMC
Clock Control
Y
RF
RF Interrupt Mask
Y
RFD
RF
RF Data
N
RFIF
RF
RF Interrupt flags
Y
RFST
RF
RF Strobe Commands
NA
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
USART0
USART0
Sleep Timer Interrupts
Y
Sleep Timer Control
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
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
Y
T3CCTL1
T3CC1
Y
Y
T4CNT
Y
T4CTL
Timer 4 Control
Y,[2]N
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
Y
T4CCTL1
T4CC1
Y
Y
TIMIF
Y
U0CSR
U0DBUF
U0BAUD
U0UCR
Y
USART 0 Receive/Transmit Data Buffer
USART 0 Baud Rate Control
Y
Y
USART 0 UART Control
Y,[7]N
SWRS055G
Page 46 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
Register
Name
SFR
Address
Module
Description
Retention6
U0GCR
U1CSR
U1DBUF
U1BAUD
U1UCR
U1GCR
ENDIAN
WDCTL
0xC5
0xF8
0xF9
0xFA
0xFB
0xFC
0x95
0xC9
USART0
USART1
USART1
USART1
USART1
USART1
MEMORY
WDT
USART 0 Generic Control
Y
USART 1 Control and Status
USART 1 Receive/Transmit Data Buffer
USART 1 Baud Rate Control
USART 1 UART Control
Y
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
10.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 13.18, starting on Page 208.
XDATA
Register
Description
Retention7
Address
0xDF00
0xDF01
0xDF02
0xDF03
0xDF04
0xDF05
0xDF06
0xDF07
0xDF08
0xDF09
0xDF0A
0xDF0B
0xDF0C
0xDF0D
0xDF0E
0xDF0F
0xDF10
0xDF11
0xDF12
0xDF13
0xDF14
0xDF15
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
Main Radio Control State Machine configuration
Main Radio Control State Machine configuration
Frequency Offset Compensation configuration
Y
Y
Y
Y
MCSM1
MCSM0
FOCCFG
7
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
SWRS055G
Page 47 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
XDATA
Register
Description
Retention7
Address
0xDF16
0xDF17
0xDF18
0xDF19
0xDF1A
0xDF1B
0xDF1C
0xDF1D
0xDF1E
0xDF1F
BSCFG
Bit Synchronization configuration
AGC control
Y
Y
Y
Y
Y
Y
N
N
N
Y
Y
AGCCTRL2
AGCCTRL1
AGCCTRL0
FREND1
FREND0
FSCAL3
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
FSCAL2
FSCAL1
FSCAL0
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[15: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
PKTSTATUS
VCO_VC_DAC PLL calibration current
Table 32: Overview of RF Registers
10.2.3.5 I2S Registers
0xDF48. Table 33 gives a descriptive overview
of these registers. Each register is described in
detail in Section 12.15.13, starting on Page
163.
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 -
SWRS055G
Page 48 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
XDATA
Register
Description
Retention8
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
8
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
10.2.3.6 USB Registers
Registers (Table 36). Each register is
described in detail in Section 12.16.11, starting
on Page 175. 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
SWRS055G
Page 49 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
XDATA
Address
Register
Description
Valid USBINDEX
Value(s)
0xDE10
USBMAXI
USBCS0
Max. packet size for IN endpoint
1 - 5
0
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
Number of received bytes in EP0 FIFO (USBINDEX=0)
Number of bytes in OUT FIFO Low
Number of bytes in OUT FIFO High
0xDE11
USBCSIL
USBCSIH
USBMAXO
USBCSOL
USBCSOH
USBCNT0
USBCNTL
USBCNTH
1 - 5
1 - 5
1 - 5
1 - 5
1 - 5
0
0xDE12
0xDE13
0xDE14
0xDE15
0xDE16
0xDE17
1 - 5
1 - 5
Table 35: Overview of Indexed Endpoint Registers
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
10.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
Field Name
Reset
R/W
Description
7:0
MPAGE[7:0]
0x00
R/W
Memory page, high-order bits of address in MOVX instruction
10.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.
SWRS055G
Page 50 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
MEMCTR (0xC7) - Memory Arbiter Control
Bit
Field 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
10.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.
10.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
Field 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
Field 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
Field 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
Field Name
Reset
R/W
Description
7:0
DPL1[7:0]
0
R/W
Data pointer 1, low byte
SWRS055G
Page 51 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
DPS (0x92) - Data Pointer Select
Bit
7:1
0
Field Name
Reset
R/W
R/W
R/W
Description
Not used
0
0
DPS
Data pointer select
0
1
DPTR0
DPTR1
10.3.2 Registers R0 - R7
10.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
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.
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 bank to be used is selected through
the Program Status Word PSW.RS[1:0].
PSW (0xD0) - Program Status Word
Bit
Field 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
10.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,
SWRS055G
Page 52 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
ACC (0xE0) - Accumulator
Bit
Field Name
Reset
R/W
Description
7:0
ACC[7:0]
0x00
R/W
Accumulator
10.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
Field Name
Reset
R/W
Description
B register. Used in MUL and DIV instructions.
7:0
B[7:0]
0x00
R/W
10.3.6 Stack Pointer
is incremented once to start from location
0x08, which is the first register (R0) of the
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.
The stack resides in DATA memory space and
grows upwards. The PUSH instruction first
increments the Stack Pointer (SP) and then
copies the byte into the stack. The Stack
Pointer is initialized to 0x07 after a reset and it
SP (0x81) - Stack Pointer
Bit
Field Name
Reset
R/W
Description
7:0
SP[7:0]
0x07
R/W
Stack Pointer
10.4 Instruction Set Summary
The 8051 instruction set is summarized in
Table 37. All mnemonics copyrighted Intel
Corporation 1980.
• addr16 - 16-bit destination address.
Used by LCALL and LJMP. A branch
can be anywhere within the 8/16/32 KB
CODE memory space.
The following conventions are used in the
instruction set summary:
• 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.
• 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).
• 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.
• @Ri - 8-bit internal data location, DATA
area (0x00 - 0xFF) addressed indirectly
through register R1or R0.
• bit - direct addressed bit in DATA area
• #data
- 8-bit constant included in
instruction.
or SFR.
The instructions that affect CPU flag settings
located in PSW are listed in Table 38 on Page
57. Note that operations on the PSWregister or
bits in PSWwill also affect the flag settings.
• #data16 - 16-bit constant included in
instruction.
SWRS055G
Page 53 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
Mnemonic
Arithmetic Operations
ADD A,Rn
Description
Hex Opcode
Bytes
Cycles
Add register to accumulator
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
0x28 - 0x2F
0x25
1
2
1
2
1
2
1
2
1
2
1
2
1
1
2
1
1
1
1
2
1
1
1
1
1
2
2
2
1
2
2
2
1
2
2
2
1
2
3
3
1
1
2
3
3
5
5
1
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
0x26 - 0x27
0x24
0x38 - 0x3F
0x35
0x36 - 0x37
0x34
0x98 - 0x9F
0x95
0x96 - 0x97
0x94
0x04
INC Rn
Increment register
0x08 - 0x0F
0x05
INC direct
Increment direct byte
INC @Ri
Increment indirect RAM
0x06 - 0x07
0xA3
INC DPTR
Increment data pointer
DEC A
Decrement accumulator
0x14
DEC Rn
Decrement register
0x18 - 0x1F
0x15
DEC direct
DEC @Ri
Decrement direct byte
Decrement indirect RAM
0x16 - 0x17
0xA4
MUL AB
Multiply A and B
DIV
Divide A by B
0x84
DA A
Decimal adjust accumulator
0xD4
Logical Operations
ANL A,Rn
AND register to accumulator
0x58 - 0x5F
0x55
1
2
1
2
2
3
1
2
1
2
2
3
1
2
1
2
2
1
2
2
2
3
4
1
2
2
2
3
4
1
2
2
2
3
ANL A,direct
ANL A,@Ri
ANL A,#data
ANL direct,A
ANL direct,#data
ORL A,Rn
AND direct byte to accumulator
AND indirect RAM to accumulator
AND immediate data to accumulator
AND accumulator to direct byte
0x56 - 0x57
0x54
0x52
AND immediate data to direct byte
OR register to accumulator
0x53
0x48 - 0x4F
0x45
ORL A,direct
ORL A,@Ri
ORL A,#data
ORL direct,A
ORL direct,#data
XRL A,Rn
OR direct byte to accumulator
OR indirect RAM to accumulator
OR immediate data to accumulator
OR accumulator to direct byte
0x46 - 0x47
0x44
0x42
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
0x43
0x68 - 0x6F
0x65
XRL A,direct
XRL A,@Ri
XRL A,#data
XRL direct,A
0x66 - 0x67
0x64
0x62
SWRS055G
Page 54 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
Mnemonic
XRL direct,#data
CLR A
Description
Hex Opcode
Bytes
Cycles
Exclusive OR immediate data to direct byte
Clear accumulator
0x63
3
1
1
1
1
1
1
1
4
1
1
1
1
1
1
1
0xE4
CPL A
Complement accumulator
0xF4
RL A
Rotate accumulator left
0x23
RLC A
Rotate accumulator left through carry
Rotate accumulator right
0x33
RR A
0x03
RRC A
Rotate accumulator right through carry
Swap nibbles within the accumulator
0x13
SWAP A
0xC4
Data Transfers
MOV A,Rn
Move register to accumulator
0xE8 - 0xEF
0xE5
1
2
1
2
1
2
2
2
2
3
2
3
1
2
2
3
1
1
1
1
1
1
2
2
1
2
1
1
1
MOV A,direct
MOV A,@Ri
MOV A,#data
MOV Rn,A
Move direct byte to accumulator
Move indirect RAM to accumulator
Move immediate data to accumulator
Move accumulator to register
2
0xE6 - 0xE7
0x74
2
2
0xF8 - 0xFF
0xA8 - 0xAF
0x78 - 0x7F
0xF5
2
MOV Rn,direct
MOV Rn,#data
MOV direct,A
MOV direct,Rn
MOV direct1,direct2
MOV direct,@Ri
MOV direct,#data
MOV @Ri,A
MOV @Ri,direct
MOV @Ri,#data
Move direct byte to register
4
Move immediate data to register
Move accumulator to direct byte
Move register to direct byte
2
3
0x88 - 0x8F
0x85
3
Move direct byte to direct byte
Move indirect RAM to direct byte
Move immediate data to direct byte
Move accumulator to indirect RAM
Move direct byte to indirect RAM
Move immediate data to indirect RAM
4
0x86 - 0x87
0x75
4
3
0xF6 - 0xF7
0xA6 - 0xA7
0x76 - 0x77
0x90
3
5
3
MOV DPTR,#data16 Load data pointer with a 16-bit constant
3
MOVC A,@A+DPTR Move code byte relative to DPTR to accumulator
0x93
3
MOVC A,@A+PC
MOVX A,@Ri
MOVX A,@DPTR
MOVX @Ri,A
MOVX @DPTR,A
PUSH direct
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
0x83
3
0xE2 - 0xE3
0xE0
3 - 10
3 - 10
0xF2 - 0xF3
0xF0
4 - 11
4 - 11
0xC0
4
3
2
3
3
3
POP direct
Pop direct byte from stack
0xD0
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
0xC8 - 0xCF
0xC5
XCH A,direct
XCH A,@Ri
0xC6 - 0xC7
0xD6 - 0xD7
XCHD A,@Ri
SWRS055G
Page 55 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
Mnemonic
Program Branching
ACALL addr11
LCALL addr16
RET
Description
Hex Opcode
Bytes
Cycles
Absolute subroutine call
xxx119
0x12
2
3
1
1
2
3
2
1
2
2
2
2
3
3
3
3
3
3
3
2
3
1
6
6
4
4
3
4
3
2
3
3
3
3
4
4
4
4
4
4
4
3
4
1
Long subroutine call
Return from subroutine
0x22
RETI
Return from interrupt
0x32
AJMP addr11
LJMP addr16
SJMP rel
Absolute jump
xxx019
Long jump
0x02
Short jump (relative address)
Jump indirect relative to the DPTR
Jump if accumulator is zero
0x80
JMP @A+DPTR
JZ rel
0x73
0x60
JNZ rel
Jump if accumulator is not zero
Jump if carry flag is set to 1
Jump if carry flag is 0
0x70
JC rel
0x40
JNC
0x50
JB bit,rel
Jump if direct bit is set to 1
0x20
JNB bit,rel
Jump if direct bit is 0
0x30
JBC bit,direct rel
CJNE A,direct rel
CJNE A,#data rel
CJNE Rn,#data rel
CJNE @Ri,#data rel
DJNZ Rn,rel
DJNZ direct,rel
NOP
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
Decrement register and jump if not zero
Decrement direct byte and jump if not zero
No operation
0x10
0xB5
0xB4
0xB8 - 0xBF
0xB6 - 0xB7
0xD8 - 0xDF
0xD5
0x00
Boolean Variable Operations
CLR C
Clear carry flag
0xC3
0xC2
0xD3
0xD2
0xB3
0xB2
0x82
0xB0
0x72
0xA0
0xA2
0x92
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
Set carry flag to 1
SETB bit
CPL C
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
Miscellaneous
TRAP
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
Set SW breakpoint in debug mode
0xA5
1
1
Table 37: Instruction Set Summary
9
addr11[10:8] is mapped into bits 7:5 of the first instruction byte (i.e. the opcode). addr11[7:0] is
mapped into the second instruction byte)
SWRS055G
Page 56 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / 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
10.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 Table 39 are the
ones used.
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.
1. Clear interrupt flags (see Section
10.5.2)
The interrupt enable registers are described in
Section 10.5.1 and the interrupt priority
settings are described in Section 10.5.2 on
Page 65.
2. Set individual interrupt enable bit in the
peripherals SFR, if any
3. Set the corresponding individual,
interrupt enable bit in the IEN0, IEN1,
or IEN2 registers to 1
10.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.
SWRS055G
Page 57 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
4. Enable global interrupt by setting the
Note: An interrupt must not be enabled
without having proper code located at the
corresponding interrupt vector address
IEN0.EA=1
5. Begin the interrupt service routine at the
corresponding vector address of that
interrupt. See
addresses
Table
39
for
Interrupt Description
Number
Interrupt Interrupt
CPU Interrupt
Mask
CPU Interrupt Flag
Name
RFTXRX
ADC
Vector
IEN0.RFTXRXIE
IEN0.ADCIE
TCON.RFTXRXIF10
TCON.ADCIF10
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.URX0IF10
TCON.URX1IF10
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.STIF11
IRCON2.P2IF11
5
6
Sleep Timer compare
Port 2 inputs
ST
0x2B
0x33
P2INT
(Note: Also used for USB on
CC2511Fx,, see Table 40)
IEN2.UTX0IE
IEN1.DMAIE
IEN1.T1IE
IRCON2.UTX0IF
IRCON.DMAIF
7
8
9
USART0 TX complete
DMA transfer complete
UTX0
DMA
T1
0x3B
0x43
0x4B
IRCON.T1IF10,11
Timer 1 (16-bit)
capture/Compare/overflow
11
IEN1.T2IE
IEN1.T3IE
IEN1.T4IE
IEN1.P0IE
IRCON.T2IF10,
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
11
IRCON.T3IF10,
T3
11
IRCON.T4IF10,
T4
IRCON.P0IF11
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.P1IF11
S1CON.RFIF11
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
10 Cleared by HW when the CPU vectors to the ISR
11 Additional interrupt mask bits and/or interrupt flags found in the peripheral’s SFRs
SWRS055G
Page 58 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
Interrupt Description
Number
Interrupt Interrupt
CPU Interrupt
Mask Alias
CPU Interrupt Flag
Alias
Name
Vector
IEN0.I2SRXIE
IEN2.USBIE
IEN1.P0IE
TCON.I2SRXIF12
IRCON2.USBIF13
IRCON.P0IF
3
I2S RX complete
URX1/
I2SRX
0x1B
6
P2INT/
USB
0x33
0x6B
USB Interrupt pending (CC2511Fx )
USB resume interrupt (CC2511Fx ).
13
P0INT
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
0x73
IEN2.I2STXIE
IRCON2.I2STXIF12
14
Table 40: Shared Interrupt Vectors (I2S and USB)
12 The I2S module has its own interrupt enable bits and interrupt flags (no masking)
13 Additional interrupt mask bits and interrupt flags found in the peripheral’s SFRs
IEN0 (0xA8) - Interrupt Enable 0 Register
Bit
Field Name
Reset
R/W
Description
7
0
R/W
Enable All
EA
0
1
No interrupt will be acknowledged
Each interrupt source is individually enabled or disabled by setting its
corresponding enable bit
6
5
0
0
R/W
R/W
Not used
Sleep Timer interrupt enable
STIE
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
AES encryption/decryption interrupt enable
ENCIE
0
1
Interrupt disabled
Interrupt enabled
USART1 RX interrupt enable / I2S RX interrupt enable
URX1IE/
I2SRXIE
0
1
Interrupt disabled
Interrupt enabled
USART0 RX interrupt enable
URX0IE
ADCIE
0
1
Interrupt disabled
Interrupt enabled
ADC interrupt enable
0
1
Interrupt disabled
Interrupt enabled
RF TX/RX done interrupt enable
RFTXRXIE
0
1
Interrupt disabled
Interrupt enabled
SWRS055G
Page 59 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
IEN1 (0xB8) - Interrupt Enable 1 Register
Bit
Field 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
SWRS055G
Page 60 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
IEN2 (0x9A) - Interrupt Enable 2 Register
Bit
Field 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
1
Interrupt disabled
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
10.5.2 Interrupt Processing
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
highest priority. In other cases, the response
URX0
URX1/I2SRX
One or more module flags can be cleared at
once. However the safest approach is to only
handle one interrupt source each time the
interrupt is triggered, hence clearing only one
SWRS055G
Page 61 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
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
Field Name
Reset
R/W
Description
7
0
R/W
H0
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.
SWRS055G
Page 62 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
S0CON (0x98) - CPU Interrupt Flag 2
Bit
Field 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
Field 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
SWRS055G
Page 63 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
IRCON (0xC0) - CPU Interrupt Flag 4
Bit
Field 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
Reserved. Must always be set to 0. Failure to do so will lead to ISR toggling
(interrupt routine sustained)
R/
W
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
SWRS055G
Page 64 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
IRCON2 (0xE8) - CPU Interrupt Flag 5
Bit
Field 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
10.5.3 Interrupt Priority
group, the corresponding bits in IP0 and IP1
must be set as shown in Table 41 on Page 66.
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
Field 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
SWRS055G
Page 65 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
IP0 (0xA9) - Interrupt Priority 0
Bit
Field 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
RF
DMA
ADC
T1
P2INT / USB
UTX0
URX0
URX1 / I2SRX
ENC
T2
T3
UTX1 / I2STX
P1INT
T4
ST
P0INT (USB Resume)
WDT
Table 42: Interrupt Priority Groups
SWRS055G
Page 66 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / 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
SWRS055G
Page 67 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
11 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.
11.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.
11.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
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.
P2_2
P2_1
command
first data byte
second data byte
host input byte
Figure 17: Debug Interface Timing Diagram
11.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 10.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.
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.
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).
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 11.4.2).
SWRS055G
Page 68 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
Note that after the Debug Lock bit has
changed due to a Flash Information Page write
or a flash mass erase, a HALT, RESUME,
The lock protect bits are written as a normal
flash write to FWDATA(see Section 12.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
11.4.1 and Table 46 for details on how the
Flash Information Page is selected using the
Debug Interface.
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.
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.
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.
Bit
7:5
4
Field 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
001
010
011
100
101
110
111
32 KB (all pages)
24 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
16 KB
8 KB
4 KB
2 KB
1 KB
0 bytes (no pages)
0
DBGLOCK
Debug lock bit
0
1
Disable debug commands
Enable debug commands
Table 44: Flash Lock Protection Bits Definition
11.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
A debug status byte is read using the
READ_STATUS command. The format and
description of this debug status is shown in
Table 47.
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.
11.4.1 Debug Configuration
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
11.4.2 Debug Status
SWRS055G
Page 69 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
11.4.3 Hardware Breakpoints
Bit Description
7:5 Unused
The debug command SET_HW_BRKPNT is
used to set a hardware breakpoint. The
CC2510Fx/CC2511Fx supports up to four
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.
4:3 Breakpoint number; 0 - 3
2
Breakpoint enable
0
1
Disable
Enable
1:0 Reserved. Must be 00.
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 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
breakpoint. This means that the second and
third data byte sets the CPU CODE address
where the CPU is halted.
The first data byte consists of the following:
11.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 12.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
SWRS055G
Page 70 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
Bit Field 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
SWRS055G
Page 71 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
Bit Field 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
SWRS055G
Page 72 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
12 Peripherals
In
the
following
sub-sections,
each
CC2510Fx/CC2511Fx peripheral is described in
detail.
12.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.
power supply to modules to avoid static
(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.
12.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
Operating Mode
High-speed Oscillator
Low-speed Oscillator
Digital Voltage
Regulator
CPU
None
None
Configuration
A
B
A
B
High speed
XOSC
Low power RCOSC
HS RCOSC
32.768 kHz XOSC
C
C
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.
expires. The CC2511Fx will lose all USB state
information when PM2 is entered. Thus, PM2
should not be used with USB.
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.
PM0: Same as active mode, but the CPU is
idle, meaning that no code is being executed.
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
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.
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
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
SWRS055G
Page 73 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
12.1.2 Active Mode and Power Modes
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.
The different operating modes are described in
detail in the five following sections.
12.1.2.1 Active Mode
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.
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.
PM3 is used to achieve ultra low power
consumption when waiting for an external
event.
12.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.
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).
12.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.
12.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,
CC2511Fx/CC2511Fx enter the
makes 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.
// Pseudo Code
SLEEP.MODE = PM{1-3}
NOP();
12.1.2.4 PM2
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
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
PM2 is typically entered when using the Sleep
Timer as the wakeup event. Please see
Section 12.8.1 for minimum sleep time when
using the Sleep Timer.
12.1.2.5 PM3
In PM3 the internal voltage regulator and all
oscillators are turned off.
SWRS055G
Page 74 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
selected as clock source for the system clock,
the time between succeeding PM{1 - 3} modes
(i.e. the time in active mode) must be larger
than the startup time for the HS XOSC (see
Table 11 and Table 12) plus the initial
calibration time for the low power RCOSC
(Table 14).
between
setting
SLEEP.MODE≠00
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
interrupts are enabled during power modes. All
interrupts not to be used to wake up from
power modes must be disabled before setting
SLEEP.MODE≠00.
12.1.4 Power Management Registers
It should be noted that after enabling the HS
XOSC (CLKCON.OSC=0) one has to ensure
This section describes the Power Management
registers. All register bits retain their previous
values when entering PM2 or PM3 unless
otherwise stated.
that
the
HS
XOSC
before
is
stable
entering
(SLEEP.XOSC_STB=1)
PM{1 - 3}.
If the low power RCOSC is enabled
(CLKCON.OSC32K=1) and the HS XOSC is
PCON (0x87) - Power Mode Control
Bit
7:2
1
Field 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 12.1.3 for details on how this bit should be used.
SWRS055G
Page 75 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
SLEEP (0xBE) - Sleep Mode Control
Bit
Field 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 (of the low power
RC oscillator and/or the HS RC oscillator) and one attempts to set this bit, the
oscillator not selected by the CLKCON.OSCbit will be powered down, and the bit
will be set, 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 12.1.3 for details
12.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
SWRS055G
Page 76 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
12.1.5.1 High Speed Oscillators
When SLEEP.OSC_PD is 0, both oscillators
are powered up and running. Be aware that
SLEEP.OSC_PDis cleared if the CLKCON.OSC
bit is toggled.
Two high speed oscillators are present in the
device:
• High speed crystal oscillator (24 - 27
MHz for CC2510Fx and 48 MHz for
CC2511Fx)
A calibration of the HS RCOSC will be initiated
by selecting the HS XOSC as system clock
source (CLKCON.OSC is set to 0). The
calibration will only be performed once. It is
not possible to enter PM{1 - 3}, change system
clock source back to HS RCOSC, or power
down the HS RCOSC before the calibration is
completed. Note that even if the calibration of
the HS RCOSC is completed, a calibration of
the low power RC oscillator might still be in
progress and changing system clock source
back to HS RCOSC will not be possible before
also this calibration has completed.
• 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.
If SLEEP.OSC_PD=0, the HS RCOSC will run
on the calibrated value once the calibration is
completed (see Table 15 for 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.
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_STB and SLEEP.HFRC_STB). It
should be noted that once the clock source
change has been initiated the clock source
should not be changed or updated again until
the clock source change has taken place.
Note: When changing system clock source
from HS XOSC to HS RCOSC, there might
If CLKCON.OSC is set to 0 when entering
PM{1 - 3}, the HS RCOSC will be calibrated
once when returning to active mode (the
calibration will start once the HS XOSC is
stable and act as the clock source for the
system clock).
be
a
delay from the assertion of
SLEEP.HFRC_STB until the actual change
of the system clock source (assertion of
CLKCON.OSC). This delay is present if the
HS RCOSC and/or low power RCOSC is
being calibrated when the system clock
source change is being initiated.
Note: HS RCOSC calibration value gets
reset to its default value upon waking up
from PM{2 - 3}, meaning that any previous
calibration result is lost.
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).
SLEEP.OSC_PD should not be set to 1 before
the oscillator selected as the system clock
12.1.5.2 System Clock Speed and Radio
source
(SLEEP.HFRC_STB=1
is
reported
stable
Operation of the RF transceiver requires that
the high speed crystal oscillator is used. The
CLKCON.CLKSPD setting will limit the
maximum data rate, as shown in Table 49.
or
SLEEP.XOSC_STB=1). Please note the
minimum requirement on high speed crystal
oscillator power down guard time in all modes
of operation for CC2510Fx, see Table 11. The
HS RCOSC may be turned off when the high
speed crystal oscillator has been selected as
system clock source and vice versa.
Note
that
when
using
FEC
(MDMCFG1.FEC_EN=1)
CLKCON.CLKSPD
must be set to 000.
SWRS055G
Page 77 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
32.768 kHz crystal oscillator. Refer to 6.5 and
6.6 for characteristics of these oscillators.
Maximum Data Rate [kBaud]
CLKCON.CLKSPD
MSK
500
500
500
500
400
200
100
50
GFSK
250
250
250
250
250
200
100
50
2-FSK
500
500
500
500
400
200
100
50
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. If CLKCON.OSC32K=1,
changing the system clock source to the HS
XOSC will initiate the calibration of the low
power RC oscillator. The calibration of the low
power RC oscillator is continuously performed
as long as CLKCON.OSC=0 and the device is
in active mode or PM0. The result of the
calibration is a RC clock running at 32 - 36
kHz for CC2510Fx and 32 kHz for CC2511Fx.
000
001
010
011
100
101
110
111
Table 49: System Clock Speed vs. Data Rate
The low power RCOSC calibration takes
approximately 2 ms. Except for the initial
calibration (first calibration after the HS XOSC
was set as source for the system clock
12.1.5.3 Low Speed Oscillators (32 kHz
clock source)
(CLKCON.OSC=0)),
aborted if one of the following actions is
initiated by SW:
a
calibration will be
Two low speed oscillators are present in the
device:
• Low speed crystal oscillator (32.768
a) Switching the clock source for the
system clock from HS XOSC to HS
RCOSC by setting CLKCON.OSC=1
kHz)
• Low power RC oscillator (32 - 36 kHz
for CC2510Fx and 32 kHz for CC2511Fx)
b) Entering PM{1 - 3}.
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 low power RC
oscillator is running and the high speed crystal
oscillator is enabled and stable, and is initiated
by selecting the HS XOSC as the clock source
for the system clock (CLKCON.OSC=0). 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.
If a) or b) is initiated during the initial
calibration, the calibration will complete before
a) or b) will take place (i.e., the HS XOSC will
continue as the clock source for the system
clock for up to 2 ms before the switching takes
place or PM{1 - 3} is entered). If a) or b) is
initiated after the initial calibration has
completed, there will be a delay of typically
130 µs from SW initiates a) or b), until the
calibration is being aborted and the system
clock source is changed or PM{1 - 3} is
entered (see Figure 18).
Note: During the initial calibration a) or b)
can only be initiated once.
After the initial calibration has completed
and a) or b) is initiated, one must not try to
initiate a) or b) again within the next 130
µs.
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
2 ms
2 ms
b
2 ms
a
b
a
HS XOSC selected as
clock source for the
system clcok
CLKCON.OSC=0
130 us
a: SW tries to switch the clock source for the system clock (CLKCON.OSC=1) or
enter PM{1 - 3}
b: System clock source is being switched or PM{1 - 3} is entered
Do not attempt to repeat a) and/or b) during this period
Figure 18: Low Power RCOSC Calibration
SWRS055G
Page 78 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
CLKCON (0xC6) - Clock Control
Bit
Field Name
Reset
R/W
Description
7
OSC32K
1
R/W
32 kHz clock oscillator select. The HS RCOSC must be clock source for the
system clock (CLKCON.OSC=1) 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
If the selected oscillator is not already powered up when this bit is set/cleared, it
will be powered up by selecting it.
This setting will only take effect when the selected oscillator is powered up and
stable and when the calibration of the HS RCOSC and initial calibration of the
low power RC oscillator is completed.
Note: It is not possible to change from high speed RC oscillator to high speed
crystal oscillator when SLEEP.MODE≠00
5:3
TICKSPD[2:0]
001
R/W
Timer tick speed 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
System 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
fRef = fxosc for CC2510Fx and fRef = fxosc/2 for CC2511Fx
Numbers above are for CC2510Fx with fxosc = 26 MHz
SWRS055G
Page 79 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
12.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
• HS RCOSC calibration value gets reset
to its default value upon waking up from
PM2 and PM3.
12.1.7 Data Retention
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).
12.1.8 I/O and Radio
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.
The XDATA memory locations 0xF000 -
0xFFFF (4096 bytes) retain data in PM2 and
PM3. Please note the following exception:
To save power, the radio should be turned off
when it is not used.
12.2 Reset
12.2.1 Power On Reset and Brown Out
Detector
The CC2510Fx/CC2511Fx has four reset sources.
The following events generate a reset:
The CC2510Fx/CC2511Fx includes a Power On
Reset (POR) providing correct initialization
during device power-on. Also included is a
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.
• Forcing RESET_N input pin low
• A power-on reset condition
• A brown-out reset condition
• Watchdog timer reset condition
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.
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.
• CPU program counter is loaded with
0x0000 and program execution starts at
this address
• All peripheral registers are initialized to
their reset values (refer to register
descriptions)
Figure 19 shows the POR/BOD operation with
the 1.8 V (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).
• Watchdog timer is disabled
SWRS055G
Page 80 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
The cause of the last reset can read from the
that a BOD reset will be read as a POR reset.
register bits SLEEP.RST. It should be noted
1.8V REGULATED
UNREGULATED
VOLT
BOD RESET ASSERT
POR RESET DEASSERT RISING VDD
POR RESET ASSERT FALLING VDD
0
POR OUTPUT
BOD RESET
X
X
X
X
POR RESET
X
X
Figure 19: Power-On-Reset and Brown Out Detector Operation
12.3 Flash Controller
When performing write operations, the flash
memory is word-addressable using a 14-bit
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].
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.
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 has the following
features:
• 16-bit word programmable
• Page erase
The next sections describe the procedures for
flash write and flash page erase in detail.
• Lock bits for write-protection and code
12.3.2 Flash Write
security
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
changed 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.
• 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)
12.3.1 Flash Memory Organization
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.
A write operation is performed using one out of
two methods;
• Through DMA transfer
• Through CPU SFR access
SWRS055G
Page 81 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
The DMA transfer method is the preferred way
to write to the flash memory.
program code must reside in the area starting
from address 0xF000 in CODE memory space
(unified) and not exceed maximum range for
the device in use (F8, F16, or F32). When using
the DMA to write to flash, the code can be
executed from within flash memory.
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.
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
12.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 12.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 20: 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 21 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 20), 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
SWRS055G
Page 82 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
Setup DMA channel:
SRCADDR=<XDATA location>
DESTADDRR=FWDATA
VLEN=0
LEN=<block size>
WORDSIZE=byte
TMODE=single mode
TRIG=FLASH
SRCINC=yes
DESTINC=no
IRQMASK=yes
M8=0
PRIORITY=high
Setup flash address
Arm DMA Channel
Start flash write
Figure 21: Flash Write using DMA
When performing DMA flash write while
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
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 22 shows
an example of code that correctly aligns the
; 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 22: DMA Flash Write Executed from within Flash Memory
12.3.2.2 CPU Flash Write
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 24). Failure to do so will clear the
FCTL.BUSY bit. FADDRH:FADDRL will contain
the address of the location where the 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 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 12.3.3).
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.
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
SWRS055G
Page 83 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
The steps required to start a CPU flash write
operation are shown in Figure 23. 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 23: 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 24. Flash Write Timeout
12.3.3 Flash Page Erase
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.
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
simultaneously with
a
page write, i.e.
The steps required to perform a flash page
erase from within flash memory are outlined in
Figure 25.
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.
Note that, while executing program code from
within flash memory, when a flash erase or
SWRS055G
Page 84 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
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 25: Flash Page Erase Performed from Flash Memory
12.3.4 Flash DMA trigger
set to a value according to the currently
selected system clock frequency.
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.
The value used for FWT.FWT[5:0]is given by
the following equation:
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).
12.3.5 Flash Write Timing
The Flash Controller contains
a
timing
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
12.3.6 Flash Controller Registers
The Flash Controller registers are described in
this section.
SWRS055G
Page 85 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
FCTL (0xAE) - Flash Control
Bit
7
Field Name
BUSY
Reset
R/W
R
Description
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
Field 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
Field Name
Reset
0
R/W
R/W
R/W
Description
Not used
FADDRH[5: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
Field 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
Field Name
Reset
0
R/W
R/W
R/W
Description
Not used
FWT[5:0]
0x11
Flash Write Timing. Controls flash timing generator.
21000 ⋅ F
16 ⋅109
, where F is the system clock frequency (see Section 12.3.5)
FWT =
SWRS055G
Page 86 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
12.4 I/O Ports
By default, all general-purpose I/O pins are
configured as inputs. To change the direction
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
• General purpose I/O or peripheral I/O
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.
• 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.
12.4.1 General Purpose I/O
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.
12.4.2 Unused I/O Pins
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. Note that when the I2S
interface is enabled (I2SCFG0.ENAB=1), the
I2S interface will control its corresponding pins
even if these are selected to be general
purpose I/O pins in the PxSELregister.
SWRS055G
Page 87 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
12.4.3 Low I/O Supply Voltage
•
•
P1IEN: P1 interrupt enables
In applications where the digital I/O power
supply voltage VDD on pin DVDD is below
2.6 V, the register bit IOCFG1.GDO_DSshould
be set to 1.
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
12.4.4 General Purpose I/O Interrupts
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:
Note: All port interrupts are blocked when
SLEEP.MODE≠00
12.4.5 General Purpose I/O DMA
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 104.
•
•
•
IEN1.P0IE: P0 interrupt enable
IEN2.P1IE: P1 interrupt enable
IEN2.P2IE: P2 interrupt enable
The IOC_0 DMA trigger is activated when
there
is
a
rising
edge
on
P0_1
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.
(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.
12.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 1.1 on Page 57. The
registers are the following:
SWRS055G
Page 88 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
Periphery /
Function
P0
P1
7
P2
714
614
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
14 This pin is only found on CC2510Fx and does not exist on CC2511Fx.
12.4.6.1 USART0
P2DIR.PRIP0
selects
the
order
of
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
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:
SPI:
• SCK: C
• SSN: SS15
• MOSI: MO
• MISO: MI
UART:
P2SEL.PRI3P1,
P2SEL.PRI2P1,
• RXDATA: RX
• TXDATA: TX
• RTS: RT
• CTS: CT
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
15
SSN should only be configured as a
peripheral when using SPI slave mode
SWRS055G
Page 89 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
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.
responsibility to avoid configurations where the
order of precedence is not conclusive.
12.4.6.3 Timer 1
PERCFG.T1CFG selects whether to use
alternative 1 or alternative 2 locations.
12.4.6.2 USART1
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:
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
SPI:
• SCK: C
• SSN: SS16
• MOSI: MO
• MISO: MI
UART:
P2DIR.PRIP0
selects
the
order
of
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
responsibility to not assign more than two
peripherals to the same pin locations
• RXDATA: RX
• TXDATA: TX
• RTS: RT
• CTS: CT
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.
When
P2SEL.PRI1P1=0
and
P2DIR.PRIP0
selects
the
order
of
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.
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.
12.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. 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
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.
16
SSN should only be configured as a
peripheral when using SPI slave mode
SWRS055G
Page 90 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
12.4.6.5 Timer 4
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).
PERCFG.T4CFG selects whether to use
alternative 1 or alternative 2 locations.
In Table 50, the Timer 4 signals are shown as
follows:
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.
• 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.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.
Refer to Section 12.10 on Page 137 for a
detailed description on how to use the ADC.
12.4.6.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.
12.4.6.6 I2S
The
I2S
configuration
register
bit
I2SCFG1.IOLOC selects whether to use
alternative 1 or alternative 2 locations.
In Table 50, the I2S signals are shown as
follows:
12.4.6.9 32.768 kHz XOSC Input
• Continuous Serial Clock (SCK): CK
• Word Select: WS
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
CLKCON.OSC32K is low, regardless of the
configurations of these pins.
• Serial Data In: RX
• Serial Data Out: TX
If
the
I2S
interface
is
enabled
(I2SCFG0_ENAB=1), the I2S interface will
have precedence in cases where other
peripherals (except for the debug interface)
are configured to be on the same location.
This is the case even if the pins are configured
to be general purpose I/O pins.
12.4.6.10 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 (see Section 15
for more details).
12.4.6.7 ADC
Setting IOCFGx.GDOx_CFG to a value other
than 0 will override the P1SEL_SELP1_7,
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.
12.4.7 I/O Registers
pins
as
non-ADC
input
i.e.
digital
The registers for the IO ports are described in
this section. The registers are:
input/outputs.
Note: P0_6 and P0_7 do not exist on
CC2511Fx, hence six input channels are
available (AIN0 - AIN5)
•
•
•
P0Port 0
P1Port 1
P2Port 2
SWRS055G
Page 91 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
•
•
•
•
•
•
•
•
PERCFGPeripheral Control
ADCCFGADC Input Configuration
P0SELPort 0 Function Select
P1SELPort 1 Function Select
P2SELPort 2 Function Select
P0DIRPort 0 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
P1DIRPort 1 Direction
P2DIRPort 2 Direction
P0 (0x80) - Port 0
Bit
Field 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
Field 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
Field Name
Reset
111
R/W
R/W
R/W
Description
Not used
P2[4:0]
11111
Port 2. General purpose I/O port. Bit-addressable.
PERCFG (0xF1) - Peripheral Control
Bit
7
Field 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
SWRS055G
Page 92 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
ADCCFG (0xF2) - ADC Input Configuration
Bit
Field 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
Field 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
Field Name
Reset
R/W
Description
P1_7 to P1_0 function select
7:0
SELP1_[7:0]
0x00
R/W
0
1
General purpose I/O
Peripheral function
SWRS055G
Page 93 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
P2SEL (0xF5) - Port 2 Function Select
Bit
7
Field 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
SWRS055G
Page 94 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
P0DIR (0xFD) - Port 0 Direction
Bit
Field 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
Field 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
P2DIR (0xFF) - Port 2 Direction
Bit
Field 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
Field 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
Field 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
SWRS055G
Page 95 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
P2INP (0xF7) - Port 2 Input Mode
Bit
Field 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
Port 1 pull-up/down select. Selects function for all Port 1 pins configured as
pull-up/pull-down inputs, except for P1_0 and P1_1, which do not have pull-
up/down capability.
0
1
Pull-up
Pull-down
5
PDUP0
0
R/W
R/W
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
P0IFG (0x89) - Port 0 Interrupt Status Flag
CC2510Fx
Bit
Field Name
Reset
R/W
Description
7:0
P0IF[7:0]
0x00
R/W0
Port 0, inputs 7 to 0 interrupt status flags.
0
1
No interrupt pending
Interrupt pending
CC2511Fx
Bit
7
Field 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
Field 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
Field 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
SWRS055G
Page 96 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
PICTL (0x8C) - Port Interrupt Control
Bit
7
Field Name
Reset
R/W
R0
Description
-
Not used
6
0
0
R/W
R/W
Not Used
5
P2IEN
Port 2, inputs 4 to 0 interrupt enable.
0
1
Interrupts are disabled
Interrupts are enabled
4
3
2
P0IENH
P0IENL
0
0
0
R/W
R/W
R/W
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
P2ICON
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
Field Name
Reset
R/W
Description
Port P1_7 to P1_0 interrupt enable
7:0
P1_[7:0]IEN
0x00
R/W
0
1
Interrupts are disabled
Interrupts are enabled
SWRS055G
Page 97 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
12.5 DMA Controller
The CC2510Fx/CC2511Fx includes
12.5.1 DMA Operation
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.
There are five DMA channels available in the
DMA controller numbered channel
0
to
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 12.1.2).
Note that Section 10.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 0 and
Section 12.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 it will start to
move data 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 to move
data on unwanted 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 30 possible DMA trigger events,
e.g. UART transfer, Timer overflow etc. The
DMA trigger events are listed in Table 51.
The main features of the DMA controller are
as follows:
• Five independent DMA channels
• Three configurable levels of DMA
channel priority
• 30 configurable trigger events
• Independent control of source and
destination address
• Single, block, and repeated transfer
modes
• Supports variable transfer count length
by including the length field in the data
to be transferred
• Can operate in either word-size or byte-
size mode
Figure 26 shows a DMA operation flow chart.
SWRS055G
Page 98 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / 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 0 and channel 2
Yes
DMA Channel Armed
Load DMA Channel
configuration
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 26: DMA Operation
12.5.2 DMA Configuration Parameters
configured before a DMA channel can be
used. Section 12.5.3 on Page 102 describes
how the parameters are set up in software and
passed to the DMA controller.
Setup and control of the DMA operation is
performed by the user software. This section
describes the parameters which must be
SWRS055G
Page 99 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
The behavior of each of the five DMA
channels is configured with the following
parameters:
Note: For byte size transfers (see Section
12.5.2.4), n is defined as the first byte in
source data or the 7 LSB of the first byte in
source data, depending on the M8 setting
(see Section 12.5.2.9). For word size
transfers, n is the 13 LSB of the first word
in source data.
12.5.2.1 Source Address (SRCADDR)
The address of the location in XDATA memory
space where the DMA channel shall start to
read data.
There are four possible configurations:
1. VLEN=001
12.5.2.2 Destination Address (DESTADDR)
Transfer
number
commanded by n + 1
of
of
of
of
bytes/words
bytes/words
bytes/words
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.
2. VLEN=010
Transfer
number
commanded by n
12.5.2.3 Transfer Count
3. VLEN=011
The number of bytes/words needed to be
moved from source to destination. 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.DMAIF will 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.
Transfer
number
commanded by n + 2
4. VLEN=100
Transfer
number
commanded by n + 3
For all of the above configurations, the transfer
count will be limited to LEN bytes/words when
n ≥ LEN. In cases where n < LEN, the transfer
count is given by the VLENsetting. This means
that when VLEN=010, LEN should be equal to
nmax, while in the other three cases, LEN
should be set to nmax + 1.
Fixed Length Transfer Count: When
VLEN=000or VLEN=111, the transfer count is
set by the LENsetting.
Note that the M8 bit is only used when byte
size transfers are chosen.
Variable Length Transfer Count: When
VLEN≠000 and VLEN≠111, the transfer count
is given by the value of the first byte/word in
source data, n, + a constant given by the
VLEN setting. This allows for variable length
transfer count.
Figure 27 shows the different VLENoptions.
SWRS055G
Page 100 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / 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+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-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 n ≥ LEN, LEN bytes/words are
being transferred. The dotted line
shows the case where LEN = n + 1
Figure 27: Variable Length Transfer Count Options
12.5.2.4 Byte
or
Word
Transfers
Repeated block. On a trigger the number of
byte/word transfers specified by the transfer
count is performed as quickly as possible,
(WORDSIZE)
Determines whether each transfer should be
8-bit (byte) or 16-bit (word).
after
which
the
CPU
is
notified
(DMAIRQ.DMAIFn=1) and the DMA channel is
rearmed.
12.5.2.5 Transfer Mode (TMODE)
12.5.2.6 Trigger Event (TRIG)
The transfer mode determines how the DMA
channel behaves when transferring data.
There are four different transfer modes.
A DMA trigger event will initiate a single
byte/word transfer,
a
block 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 104.
Single. On a trigger a single byte/word
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 byte/word
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.
12.5.2.7 Source and Destination Increment
(SRCINCand DESTINC)
Repeated single. On a trigger a single
byte/word 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
byte/word transfers in order to give good
SWRS055G
Page 101 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
flexibility. The possibilities for address
increment/decrement are:
described in the previous section have to be
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 byte/word
transfer.
• Increment by one. The address pointer
shall increment one count after each
byte/word transfer.
• Increment by two. The address pointer
shall increment two counts after each
byte/word transfer.
• Decrement by one. The address pointer
shall decrement one count after each
byte/word transfer.
12.5.2.8 Interrupt Mask (IRQMASK)
If this bit is set to 1, the CPU interrupt flag
IRCON.DMAIF will be asserted when the
transfer count is reached. 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:
12.5.2.9 Mode 8 Setting (M8)
DMA0CFGH:DMA0CFGLgives the start address
for DMA channel
structure.
0
configuration data
When variable length transfer count is used
(VLEN≠000 and VLEN≠111) this field
determines whether to use seven or eight bits
of the first byte in source data to determine the
transfer count. This configuration is only
applicable when doing byte transfers.
DMA1CFGH:DMA1CFGLgives the start address
for DMA channel 1 configuration data structure
followed by channel 2 - 4 configuration data
structures.
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.
12.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:
12.5.4 Aborting Transfers
Ongoing byte/word transfers or armed DMA
channels will be aborted using the DMAARM
register to disarm the DMA channel.
High: Highest internal priority. DMA access
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.
will always prevail over CPU access.
Normal: Second highest internal priority.
Guarantees that DMA access prevails over
CPU on at least every second try.
Low: Lowest internal priority. DMA access will
always defer to a CPU access.
An example of DMA channel arm and disarm
is shown in Figure 28.
12.5.3 DMA Configuration Setup
The DMA channel parameters such as
address mode, transfer mode and priority
SWRS055G
Page 102 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
MOV DMAARM, #0x03 ; Arm DMA channel 0 and 1
MOV DMAARM, #0x81 ; Disarm DMA channel 0, channel 1 is still armed
Figure 28: DMA Arm/Disarm Example
12.5.5 DMA Interrupts
12.5.6 DMA Memory Access
Each DMA channel can be configured to
generate an interrupt to the CPU when the
The byte/word 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.
transfer
count
is
reached.
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 reaching the transfer count. An interrupt
request is being generated if IEN1.DMAIE=1.
12.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
generate an interrupt based on the stored
interrupt flag.
ENDIAN.USBWLE
and
ENDIAN.USBRLE
configuration bits in the ENDIAN register. See
Section 12.16 for details.
DMA Trigger
Number
DMA Trigger
Name
Functional
Unit
Description
0
NONE
DMA
No trigger, setting DMAREQ.DMAREQx bit starts a single byte/word
transfer or a block transfer
1
PREV
DMA
DMA channel is triggered by completion of previous channel
Timer 1, compare, channel 0
Timer 1, compare, channel 1
Timer 1, compare, channel 2
Not in use.
2
T1_CH0
T1_CH1
T1_CH2
Timer 1
Timer 1
Timer 1
3
4
5
6
T2_OVFL
T3_CH0
T3_CH1
T4_CH0
T4_CH1
Timer 2
Timer 3
Timer 3
Timer 4
Timer 4
Timer 2, timer count reaches 0x00
Timer 3, compare, channel 0
Timer 3, compare, channel 1
Timer 4, compare, channel 0
Timer 4, compare, channel 1
Do not use
7
8
9
10
11
12
13
14
15
16
17
IOC_0
IOC_1
URX0
UTX0
URX1
UTX1
IO Controller P0_1 input transition17
IO Controller P1_3 input transition18
USART0
USART0
USART1
USART1
USART0 RX complete
USART0 TX complete
USART1 RX complete
USART1 TX complete
17 Trigger on rising edge. P0SEL.SELP0_1and P0DIR.P0_1must be 0
18 Trigger on falling edge. P1SEL.SELP1_3and P1DIR.P1_3must be 0
SWRS055G
Page 103 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
DMA Trigger
Number
DMA Trigger
Name
Functional
Unit
Description
18
FLASH
Flash
Flash data write complete
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
23
24
25
26
ADC_CH1
ADC_CH2
ADC_CH3
ADC_CH4
ADC_CH5
ADC_CH6
ADC
ADC
ADC
ADC
ADC
ADC
ADC end of conversion (AIN1, single-ended or AIN0 - AIN1, differential).
Sample ready
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
SWRS055G
Page 104 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
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.
Transfer count mode.
3
4
7:0
7:5
DESTADDR[7:0]
VLEN[2:0]
000
001
010
011
100
101
110
111
Use LENfor transfer count
Transfer number of bytes/words commanded by n + 1
Transfer number of bytes/words commanded by n
Transfer number of bytes/words commanded by n + 2
Transfer number of bytes/words commanded by n + 3
Reserved
Reserved
Alternative for using LENas transfer count
Note: For byte size transfers (see Section 12.5.2.4), n is defined as the first byte in
source data or the 7 LSB of the first byte in source data, depending on the M8
setting (see Section 12.5.2.9). For word size transfers, n is the 13 LSB of the first
word in source data.
4
5
4:0
7:0
LEN[12:8]
LEN[7:0]
This value is used as transfer count when VLEN=000or VLEN=111(fixed length
transfer count). For all cases where VLEN≠000and VLEN≠111 (variable length
transfer count), the transfer count will be limited to LENbytes/words when n ≥ LEN.
In cases where n < LEN, the transfer count is given by the VLENsetting.
6
6
7
WORDSIZE
TMODE[1:0]
Selects whether each transfer shall be 8-bit (0) or 16-bit (1).
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
No trigger (writing to DMAREQ is only trigger)
The previous DMA channel finished
00010
-
Selects one of the triggers shown in Table 51. The trigger is selected in the
order shown in the table.
11111
7
7
7:6
5:4
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
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
SWRS055G
Page 105 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
Byte
Bit
Field Name
Description
Offset
7
3
IRQMASK
Interrupt Mask for this channel.
0
1
Disable interrupt generation
Enable interrupt generation upon reaching transfer count
7
2
M8
When variable length transfer count is used (VLEN≠000and VLEN≠111) this field
determines whether to use seven or eight bits of the first byte in source data to
determine the transfer count. Only applicable when WORDSIZE=0.
0
1
Use all 8 bits
Use 7 LSB
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
12.5.8 DMA Registers
This section describes the SFRs associated
with the DMA Controller.
DMAARM (0xD6) - DMA Channel Arm
Bit
Field Name
Reset
R/W
Description
7
ABORT
0
R0/W
DMA abort. Ongoing byte/word transfers 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 byte/word 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 byte/word 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 byte/word 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 byte/word 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 byte/word transfers to occur on the
channel. For non-repetitive transfer modes, the bit is automatically cleared when
the transfer count is reached
SWRS055G
Page 106 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
DMAREQ (0xD7) - DMA Channel Start Request and Status
Bit
7:5
4
Field Name
Reset
R/W
Description
-
R0
Not used
DMA 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 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 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 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 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
Field 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
Field 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
Field 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
Field Name
Reset
R/W
Description
7:0
DMA1CFG[7:0]
0x00
R/W
The DMA channel 1 - 4 configuration address, low byte
SWRS055G
Page 107 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
DMAIRQ (0xD1) - DMA Interrupt Flag
Bit
7:5
4
Field Name
Reset
R/W
R0
Description
-
Not used
DMAIF4
0
R/W0
DMA channel 4 interrupt flag.
0
1
Transfer count not reached
Transfer count reached/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
Transfer count not reached
Transfer count reached/interrupt pending
DMA channel 2 interrupt flag.
0
1
Transfer count not reached
Transfer count reached/interrupt pending
DMA channel 1 interrupt flag.
0
1
Transfer count not reached
Transfer count reached/interrupt pending
DMA channel 0 interrupt flag.
0
1
Transfer count not reached
Transfer count reached/interrupt pending
ENDIAN (0x95) - USB Endianess Control (CC2511Fx)
Bit
7:2
1
Field 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
SWRS055G
Page 108 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
12.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.
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
All write accesses to the T1CNTL register will
capture/compare and when reaching the
terminal count value
reset the 16-bit counter.
The counter may produce an interrupt request
when the terminal count value (overflow) is
reached (see Section 12.6.2.1 - 12.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.
• Capture triggered by radio
• DMA trigger function
• 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
12.6.2 Timer 1 Operation
12.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
CC2511Fx. When the high speed RC oscillator is
used as system clock source, the highest
12.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 on the next timer tick and
continues incrementing its value as shown in
Figure 29. 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.
SWRS055G
Page 109 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
0xFFFF
0x0000
OVFIF = 1
OVFIF = 1
Figure 29: Free-running Mode
T1CTL.OVFIF flag is set. The IRCON.T1IF
12.6.2.2 Modulo Mode
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 reaches the terminal
count value T1CC0 (overflow), held in the
registers T1CC0H:T1CC0L, the counter is
loaded with 0x0000 on the next timer tick and
continues incrementing its value as shown in
Figure 30. When T1CC0 is reached, the
T1CC0
0x0000
OVFIF = 1
OVFIF = 1
Figure 30: Modulo Mode
flag is set. The IRCON.T1IF flag is only
12.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 31.
When 0x0000 is reached, the T1CTL.OVFIF
T1CC0
0x0000
OVFIF = 1
OVFIF = 1
Figure 31: Up/Down Mode
Note: Before an I/O pin can be used by the
12.6.3 Channel Mode Control
timer, the required I/O pin must be configured
as a Timer 1 peripheral pin as described in
Section 12.4.6 on Page 88 .
The channel mode is set with each channel’s
control and status register T1CCTLn. The
settings include input capture and output
compare modes.
SWRS055G
Page 110 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
12.6.4 Input Capture Mode
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,
T1CCnH is 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.
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 5 and 6, 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
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.
12.6.4.1
RF Event Capture
Examples of output compare modes in various
,
timer modes are given in Figure 32, Figure 33
and Figure 34.
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
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 33. The period of the
PWM signal is determined by the setting in
T1CC0 and the duty cycle is determined by
T1CCn.
setting
T1CCTLn.CPSEL=1. When
this
configuration is chosen, the RF event(s)
enabled by RFIM (see Section 13.3.1 on Page
185) 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.
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 32. 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).
Note: When using an RF event to trigger a
capture, both CLKCON.CLKSPDand
CLKCON.TICKSPDmust be set to 000.
12.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
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
The polarity of the PWM signal is determined
by whether output compare mode 5 or 6 is
used.
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
32 and Figure 33).
SWRS055G
Page 111 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
The polarity of the PWM signal is determined
by whether output compare mode 3 or 4 is
used.
or 4 (defined by T1CCTLn.CMPbits, where nis
1 or 2) is selected depending on required
polarity of the PWM signal (see Figure 34).
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).
Centre-aligned: PWM outputs can be
generated when the timer up/down mode is
selected. The channel output compare mode 3
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 32: Output Compare Modes, Timer Free-running Mode
SWRS055G
Page 112 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / 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 33: Output Compare Modes, Timer Modulo Mode
SWRS055G
Page 113 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / 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 34: Output Modes, Timer Up/Down Mode
12.6.6 Timer 1 Interrupts
The
register
bits
T1CTL.OVFIF,
T1CTL.CH0IF,
T1CTL.CH1IF,
and
There is one interrupt vector assigned to the
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,
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
timer. This is T1 (Interrupt #9, see
39). The following timer events may generate
an interrupt request:
Table
• Counter reaches terminal count value
(overflow) or turns around on zero
• Input capture event
• Output compare event
SWRS055G
Page 114 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
12.6.8 DSM Mode
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.
When the timer is used in Free-running Mode
or Modulo Mode the interrupt flags are set as
follows:
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.
•
T1CTL.CH0IF, T1CTL.CH1IF, and
T1CTL.CH2IF are set on
compare/capture event
•
T1CTL.OVFIF is set when counter
reaches terminal count value (overflow)
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
When the timer is used in Up/Down Mode the
interrupt flags are set as follows:
In compare mode:
•
•
T1CTL.CH0IF
are set when counter turns around on
zero
and
T1CTL.OVFIF
setting
T1CCTL1.CAP=10
or
T1CCTL1.CAP=11, thus using a zeroth order
interpolator.
T1CTL.CH1IF
and
T1CTL.CH2IF
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.
are set on compare event
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
I addition, the CPU interrupt flag, IRCON.T1IF
will be asserted if the channel n interrupt mask
bit (T1CCTLn.IM) is set to 1.
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.
12.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:
Timer 1 must be configured to operate in
modulo mode (T1CTL.MODE=10) and channel
0 must be configured to compare mode
(T1CCTL0.MODE=1).
The terminal count
• T1_CH0 - Channel 0 compare
• T1_CH1 - Channel 0 compare
• T1_CH2 - Channel 0 compare
value T1CC0, held in the registers
T1CC0H:T1CC0L, defines the sample rate.
Table 53 shows some T1CC0 settings for
different
sample
rates
(CLKCON.TICKSPD=000).
SWRS055G
Page 115 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / 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.
12.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 Timer
Capture/Compare Value High
–
1
Channel
no
sample
available)
into
T1CC1H:T1CC1L.
T1CCnL Timer Channel
1
6. Set timer operation to modulo mode
(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
12.9.7.
8. Enable
DSM
mode
(T1CCTL1.CMP=111)
SWRS055G
Page 116 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
T1CNTH (0xE3) - Timer 1 Counter High
Bit
Field 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
Field 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
Field 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
SWRS055G
Page 117 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
T1CCTL0 (0xE5) - Timer 1 Channel 0 Capture/Compare Control
Bit
Field 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
Field 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
Field 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
SWRS055G
Page 118 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
T1CCTL1 (0xE6) - Timer 1 Channel 1 Capture/Compare Control
Bit
Field 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
CMP≠111
CMP=111
2
MODE
0
R/W
R/W
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/4 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
Field 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
Field 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)
SWRS055G
Page 119 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
T1CCTL2 (0xE7) - Timer 1 Channel 2 Capture/Compare Control
Bit
Field 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
Field 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
Field Name
Reset
R/W
Description
7:0
T1CC2[7:0]
0x00
R/W
Timer 1 channel 2 capture/compare value, low order byte
SWRS055G
Page 120 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
12.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.
prescaler value, T2PR, defines the 8 MSB of
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
Val(01) = 128
Val(10) = 256
Val(11) = 1024
Example:
12.7.1 Timer Operation
This section describes the operation of the
timer.
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.
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.
12.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.
12.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:
• Timer tick speed (CLKCON.TICKSPD)
•
•
•
T2CTL– Timer 2 Control
T2PR– Timer 2 Prescaler
T2CT– Timer 2 Count
•
T2CTL.TIP
• Prescaler value (T2PR)
All events in timer 2 are aligned to timer tick
Note: These registers will be in their reset
state when returning to active mode from
PM2 and PM3.
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
SWRS055G
Page 121 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
T2CTL (0x9E) - Timer 2 Control
Bit
Field Name
Reset
R/W
Description
7
0
R/W
0
Reserved
6
TEX
0
R/W
0
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
0
1
Interrupt disable
Interrupt enable
3
2
0
0
R/W
R/W
Reserved. Always set to 0
Tick generator mode
TIG
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
Field 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
Field Name
Reset
R/W
Description
7:0
PR[7:0]
0x00
R/W
Timer prescaler multiplier. 0x00 is interpreted as 256
SWRS055G
Page 122 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
12.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.
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:
750
tEvent0
=
⋅ EVENT0⋅ 25⋅WOR _ RES
fref
Note: The Sleep timer should not be used
in active mode
If the 32.768 kHz crystal oscillator is used to
clock the Sleep Timer, tEvent0 is calculated as
follows:
12.8.1 Sleep Timer Operation
1
tEvent0
=
⋅ EVENT0⋅25⋅WOR_ RES
This section describes the operation of the
timer.
32768
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
fref = fXOSC
fXOSC
CC2511Fx,
fref
=
2
750
tSLEEP
=
⋅384
When referring to the low power RCOSC,
calibrated values are assumed
min
fref
When the Sleep Timer is clocked by the
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.
32.768 kHz crystal oscillator, tSLEEP = 11.72
min
ms (384/32768).
12.8.2 Sleep Timer and Power Modes
Entering PM{0 - 2} and/or updating EVENT0
and has to be aligned to a positive edge on the
32 kHz clock source. The following code
examples should be used in order to update
EVENT0and/or entering PM{0 - 2} correctly:
The Sleep Timer has a programmable timing
event called Event 0. While in PM0, PM1, or
PM2, reaching Event
CC2510Fx/CC2511Fx enter active mode.
0
will make the
Please note that the update rate of the
WORTIME0 register will depend on the Sleep
The time between two consecutive Event 0’s
(tEvent0) is programmed with a mantissa value
Timer
WORCTRL.WOR_RES.
resolution,
configured
through
// Alignment of entering PM{0 – 2} to a positive edge on the 32 kHz clock source
char temp = WORTIME0;
while(temp == WORTIME0);
PCON |= 0x01;
// Wait until a positive 32 kHz edge
// Enter PM{0 – 2}
// Alignment of updating EVENT0 to a positive edge on the 32 kHz clock source
char temp = WORTIME0;
while(temp == WORTIME0);
WOREVT1 = desired event0 >> 8;
WOREVT0 = desired event0;
// Wait until a positive 32 kHz edge
// Set EVENT0, high byte
// Set EVENT0, low byte
// Alignment of both updating EVENT0 and entering PM{0 - 2}to a positive edge
// on the 32 kHz clock source
char temp = WORTIME0;
while(temp == WORTIME0);
WOREVT1 = desired event0 >> 8;
WOREVT0 = desired event0;
PCON |= 0x01;
// Wait until a positive 32 kHz edge
// Set EVENT0, high byte
// Set EVENT0, low byte
// Enter PM{0 – 2}
SWRS055G
Page 123 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
followed by two positive edges on the 32 kHz
clock source. The code below shows how to
reset the Sleep Timer in combination with
updating EVENT0and/or entering PM{0 - 2}.
If EVENT0is changed to a value lower than the
current counter value, WORCTRL.WOR_RESET
has to be asserted first to reset the timer. The
assertion of WORCTRL.WOR_RESET must be
// Reset timer and enter PM{0 – 2}
WORCTRL |= 0x04;
char temp = WORTIME0;
while(temp == WORTIME0);
temp = WORTIME0;
// Reset Sleep Timer
// Wait until a positive 32 kHz edge
while(temp == WORTIME0);
PCON |= 0x01;
// Wait until a positive 32 kHz edge
// Enter PM{0 – 2}
// Reset timer and update EVENT0
WORCTRL |= 0x04;
// Reset Sleep Timer
char temp = WORTIME0;
while(temp == WORTIME0);
// Wait until a positive 32 kHz edge
temp = WORTIME0;
while(temp == WORTIME0);
WOREVT1 = desired event0 >> 8;
WOREVT0 = desired event0;
// Wait until a positive 32 kHz edge
// Set EVENT0, high byte
// Set EVENT0, low byte
// Reset timer, update EVENT0, and enter PM{0 – 2}
WORCTRL |= 0x04;
// Reset Sleep Timer
char temp = WORTIME0;
while(temp == WORTIME0);
temp = WORTIME0;
while(temp == WORTIME0);
WOREVT1 = desired event0 >> 8;
WOREVT0 = desired event0;
PCON |= 0x01;
// Wait until a positive 32 kHz edge
// Wait until a positive 32 kHz edge
// Set EVENT0, high byte
// Set EVENT0, low byte
// Enter PM{0 – 2}
12.8.3 Low Power RC Oscillator and Timing
12.8.4 Sleep Timer Interrupt
When Event occurs,
WORIRQ.EVENT0_FLAGbit will be asserted. If
the corresponding mask bit, EVENT0_MASK, is
set in the WORIRQ register, the CPU interrupt
flag IRCON.STIF will also be asserted in
addition to the interrupt flag in WORIRQ. If
This section applies to using the low power RC
oscillator as clock source for the Sleep Timer.
0
the
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 will
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.
IEN0.STIE=1
when
IRCON.STIF
is
asserted, and ST interrupt request will be
generated.
Note: The ST interrupt is blocked when
SLEEP.MODE≠00
12.8.5 Sleep Timer Registers
This section describes the SFRs associated
with the Sleep Timer.
WORTIME0 (0xA5) - Sleep Timer Low Byte
Bit
Field Name
Reset
R/W
Description
7:0
WORTIME[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]
SWRS055G
Page 124 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
WORTIME1 (0xA6) - Sleep Timer High Byte
Bit
Name
Reset
R/W
Description
7:0
WORTIME[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
Field 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
⋅ EVENT0⋅ 25⋅WOR _ RES
tEvent0
=
⋅ EVENT0⋅ 25⋅WOR _ RES
tEvent0
=
fref
32768
WOREVT0 (0xA3) - Sleep Timer Event0 Timeout Low
Bit
Field Name
Reset
R/W
Description
7:0
EVENT0[7:0]
0x6B
R/W
Low byte of Event 0 timeout register
WORCTRL (0xA2) - Sleep Timer Control
Bit
7
Field 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 Reset timer. The timer will be reset to 4.
R/W 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
00
Resolution (1 LSB)
Bits selected from the 31-bit Sleep Timer
1 period
15:0
01
25 periods
20:5
10
210 periods
215 periods
25:10
30:15
11
WORIRQ (0xA1) - Sleep Timer Interrupt Control
Bit
7:6
5
Field 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
SWRS055G
Page 125 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
12.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.
highest is 24 MHz for CC2511Fx. When the high
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 features of Timer 3/4 are as follows:
• Two compare channels
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.
• 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
• Clock prescaler for divide by 1, 2, 4, 8,
Writing a 1 to TxCTL.CLR will reset the 8-bit
counter.
16, 32, 64, 128
• Interrupt request generation on compare
and when reaching the terminal count
value
The counter may produce an interrupt request
when the terminal count value (overflow) is
reached (see Section 12.9.2.1 – Section
12.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
• DMA trigger function
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
TxCTL.START. If
a
0
is written to
TxCTL.START, the counter halts at its
present value.
12.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.
12.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
is
given
by
CLKCON.TICKSPD
and
12.9.2.1 Free-running Mode
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
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 on the next timer tick and
continues incrementing its value as shown in
Figure 35. When 0xFF is reached, the
TIMIF.TxOVFIF
IRCON.TxIF flag is only asserted if the
corresponding interrupt mask bit
flag
is
set.
The
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.
SWRS055G
Page 126 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
0xFF
0x00
OVFIF = 1
OVFIF = 1
Figure 35: Free-running Mode
12.9.2.2 Modulo Mode
TIMIF.TxOVFIF
IRCON.TxIF flag is only asserted if the
corresponding interrupt mask bit
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.
flag
is
set.
The
In modulo mode the counter starts from 0x00
and increments at each active clock edge.
When the counter reaches the terminal count
value TxCC0 (overflow), the counter is loaded
with 0x00 on the next timer tick and continues
incrementing its value as shown in Figure 36.
When
TxCC0
is
reached,
the
TxCC0
0x00
OVFIF = 1
OVFIF = 1
Figure 36: Modulo Mode
12.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 37. 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 37: Down Mode
corresponding
12.9.2.4 Up/Down Mode
interrupt
mask
bit
TxCTL.OVFIM is set. An interrupt request is
generated when both TxCTL.OVFIM and
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.
In up/down 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 counts down
until 0x00 is reached and it starts counting up
again as shown in Figure 38. When 0x00 is
reached, the TIMIF.TxOVFIF flag is set. The
IRCON.TxIF flag is only asserted if the
SWRS055G
Page 127 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
TxCC0
0x00
OVFIF = 1
OVFIF = 1
Figure 38: Up/Down Mode
12.9.3 Channel Mode Control
12.9.5 Timer 3 and 4 Interrupts
The channel mode is set with each channel’s
control and status register TxCCTLn.
There is one interrupt vector assigned to each
of the timers. These are T3 and T4 (interrupt
#11 and #12, see
following timer events may generate an
interrupt request:
Table
39).
The
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 12.4.6 on page 88.
• Counter reaches terminal count value
(overflow) or turns around on zero /
reach zero
• Output compare event
12.9.4 Output Compare Mode
The
register
bits
TIMIF.T3OVFIF,
TIMIF.T3CH0IF,
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.
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.
When the timer is used in Free-running Mode
or Modulo Mode the interrupt flags are set as
follows:
•
TIMIF.TxCH0IF
TIMIF.TxCH1IF are set on compare
event
and
For simple PWM use, output compare modes
3 and 4 are preferred.
•
TIMIF.TxOVFIF is set when counter
reaches terminal count value (overflow)
SWRS055G
Page 128 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
When the timer is used in Down Mode the
interrupt flags are set 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
and
TIMIF.TxCH1IF are set on compare
event
•
TIMIF.TxOVFIF is set when counter
reaches zero
12.9.7 Timer 3 and 4 Registers
This section describes the following Timer 3
and Timer 4 registers:
When the timer is used in Up/Down Mode the
interrupt flags are set as follows:
•
•
•
T3CNT- Timer 3 Counter
T3CTL- Timer 3 Control
•
TIMIF.TxCH0IF
TIMIF.TxOVFIF are set when the
counter turns around on zero
and
T3CCTLn- Timer 3 Channel n Compare
Control
•
TIMIF.TxCH1IF is set on compare
event
•
T3CCn - Timer 3 Channel n Compare
Value
In addition, the CPU interrupt flag,
IRCON.TxIF will be asserted if the channel n
interrupt mask bit (TxCCTLn.IM) is set to 1.
•
•
•
T4CNT- Timer 4 Counter
T4CTL- Timer 4 Control
12.9.6 Timer 3 and Timer 4 DMA Triggers
T4CCTLn- Timer 4 Channel n Compare
Control
There are two DMA triggers associated with
Timer 3 and two DMA triggers associated with
Timer 4. These are DMA triggers T3_CH0,
T3_CH1, T4_CH0, and T4_CH1, which are
generated on timer compare events as follows:
•
•
T4CCn - Timer 4 Channel n Compare
Value
TIMIF- Timer 1/3/4 Interrupt Mask/Flag
T3CNT (0xCA) - Timer 3 Counter
Bit
Field Name
Reset
R/W
Description
Timer count byte. Contains the current value of the 8-bit counter
7:0
CNT[7:0]
0x00
R
SWRS055G
Page 129 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
T3CTL (0xCB) - Timer 3 Control
Bit
Field 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
SWRS055G
Page 130 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
T3CCTL0 (0xCC) - Timer 3 Channel 0 Compare Control
Bit
7
Field 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
Field Name
Reset
R/W
Description
7:0
VAL[7:0]
0x00
R/W
Timer 3 channel 0 compare value
SWRS055G
Page 131 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
T3CCTL1 (0xCE) - Timer 3 Channel 1 Compare Control
Bit
7
Field 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
Field 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
Field Name
Reset
R/W
Description
7:0
CNT[7:0]
0x00
R
Timer count byte. Contains the current value of the 8-bit counter
SWRS055G
Page 132 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
T4CTL (0xEB) - Timer 4 Control
Bit
Field 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
SWRS055G
Page 133 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
T4CCTL0 (0xEC) - Timer 4 Channel 0 Compare Control
Bit
7
Field 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
Field Name
Reset
R/W
Description
7:0
VAL[7:0]
0x00
R/W
Timer 4 channel 0 compare value
SWRS055G
Page 134 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
T4CCTL1 (0xEE) - Timer 4 Channel 1 Compare Control
Bit
7
Field 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
Field Name
Reset
R/W
Description
7:0
VAL[7:0]
0x00
R/W
Timer 4 channel 1 compare value
SWRS055G
Page 135 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
TIMIF (0xD8) - Timers 1/3/4 Interrupt Mask/Flag
Bit
7
Field 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
SWRS055G
Page 136 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
12.10 ADC
12.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. All references to VDD
apply to voltage on the pin AVDD.
• Reference
voltage
selectable
as
internal, external single ended, external
differential, or VDD.
• 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
• Battery measurement capability
sets the resolution (7 to 12 bits).
AIN0
AIN7
Delta-Sigma
Modulator
Decimation
Filter
input
mux
VDD/3
TMP_SENSOR
Int 1.25V
AIN7
ref
mux
AVDD
Clock Generation and
Control
AIN6-AIN7
Figure 39: ADC Block Diagram
register must be set to 1. The default value in
12.10.2 ADC Operation
this register disables the ADC inputs. Please
see Section 12.4.6.7 on Page 91 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 to automatically perform a sequence of
conversions and optionally perform an extra
conversion.
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.
12.10.2.1 ADC Core
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.
12.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)
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.
To configure a P0 pin to be used as an ADC
input the corresponding bit in the ADCCFG
SWRS055G
Page 137 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
It is also possible to select
a voltage
ADCCON1.STSEL=11, and no conversion is
currently running. When the sequence is
completed, this bit is automatically cleared.
corresponding to VDD/3 as an ADC input. This
input allows the implementation of e.g. a
battery monitor in applications where this
feature is required.
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.
12.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.
The ADCCON2.SCH register bits are used to
define an ADC conversion sequence.
• 0000 ≤ ADCCON2.SCH ≤ 0111: Single-
The ADC can be programmed to perform a
single conversion (single-ended, differential,
GND, internal voltage reference, temperature
sensor, or VDD/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.
ended inputs
• 1000
≤
ADCCON2.SCH
≤
1011:
Differential inputs
• 1100 ≤ ADCCON2.SCH ≤ 1111: GND,
internal voltage reference, temp. sensor,
and VDD/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.
12.10.2.4 ADC Operating Modes
This section describes the operating modes
and initialization of conversions.
12.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, VDD on
the AVDD pin, an external voltage applied to
the AIN7 input pin, or a differential voltage
applied to the 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.
The ADC has three control registers:
ADCCON1, ADCCON2, and ADCCON3. These
registers are used to configure the ADC and to
report status.
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
when
this
bit
is
set
high,
SWRS055G
Page 138 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
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,
12.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.
, is given by:
Tconv
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
The digital conversion result is available in
ADCH and ADCL when ADCCON1.EOC is set to
1. Note that the conversion result always
resides in MSB section of ADCH:ADCL.
12.10.2.8 ADC Interrupts
The ADC will only generate an interrupt when
an extra conversion has completed.
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 +
12.10.2.9 ADC DMA Triggers
DMA triggers 20 - 28 are associated with
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
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.
conversion is completed (ADCCON2.SCH
≥
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.
12.10.2.7 ADC Conversion Timing
The DMA triggers are listed in Table 51 on
Page 104.
The high speed crystal oscillator should be
selected as system clock when the ADC is
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
12.10.3 ADC Registers
This section describes the ADC registers.
SWRS055G
Page 139 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
ADCL (0xBA) - ADC Data Low
Bit
Field 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
Field 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
Field Name
Reset
R/W
Description
7
EOC
0
R
H0
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.
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
Operation completed
Clock the LFSR once (13x unrolling)
Reserved
Reserved
1:0
11
R/W
Reserved. Always write 11
SWRS055G
Page 140 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
ADCCON2 (0xB5) - ADC Control 2
Bit
Field 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.25 V reference
External reference on AIN7 pin (only CC2510Fx)
VDD on the 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.
SCH≤ 0111: A conversion sequence will contain a conversion from each ADC
input, starting at AIN0 and ending at the input programmed in ADCCON2.SCH.
1000 ≤ SCH≤ 1011: The sequence will start at the differential input pair (AIN0 -
AIN1) and stop at the input pair given by ADCCON2.SCH.
SCH≥ 1100: Only single conversions are performed.
When reading the ADCCON2.SCHbits, the number returned will indicate what the
last conversion was. Please see Section 12.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
VDD/3
SWRS055G
Page 141 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
ADCCON3 (0xB6) - ADC Control 3
Bit
Field 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)
VDD on the 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
SWRS055G
Page 142 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
12.11 Random Number Generator
12.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 40: Basic Structure of the Random Number Generator
Number Generator
12.11.2.3 CRC16
12.11.2 Random
Operation
The LFSR can also be used to calculate the
CRC value of a sequence of bytes. Writing to
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.
the RNDH register will trigger
a
CRC
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.
Note that the LFSR must be properly seeded
by writing to RNDL twice, 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.
12.11.2.1 Semi Random Sequence
Generation
To
generate
pseudo-random
bytes,
ADCCON1.RCTRLshould be set to 01. This will
clock the LFSR once (13x unrolling) and the
ADCCON1.RCTRL bits will automatically be
cleared when the operation has completed.
For the following byte sequence:
0x03, 0x41, 0x42, 0x43
12.11.2.2 Seeding
The CRC will be 0xB4BC when using 0xFFFF
as seed value.
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
replaced with the new data byte that was
written to RNDL.
12.11.3 Registers
The random number generator registers are
described in this section.
SWRS055G
Page 143 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
RNDL (0xBC) - Random Number Generator Data Low Byte
Bit
Field 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 LFSR.
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
Field 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 LFSR.
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.
12.12 AES Coprocessor
12.12.2 Key and IV
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.
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:
A key load or IV load operation aborts any
processing that could be running.
• ECB, CBC, CFB, OFB, CTR, and CBC-
MAC modes.
The key, once loaded, stays valid until a key
reload takes place.
• Hardware support for CCM mode
• 128-bits key and IV/Nonce
The IV must be downloaded before the
beginning of each message (not block).
• DMA transfer trigger capability
Both key and IV are cleared by a reset of the
device and when PM2 or PM3 are entered.
12.12.1 AES Operation
To encrypt a message, the following procedure
must be followed:
12.12.3 Padding of Input Data
AES works on blocks of 128 bits. If a block
contains less than 128 bits, it must be padded
with zeros when written to the coprocessor.
• Load key
• Load initialization vector (IV)/nonce
• Download and upload data for
12.12.4 Interface to CPU
encryption/decryption.
The CPU communicates with the coprocessor
using three SFRs:
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
can be processed. Before each block load, a
dedicated start command must be sent to the
coprocessor.
•
ENCCS, Encryption control and status
register
•
•
ENCDI, Encryption input register
ENCDO, Encryption output register
SWRS055G
Page 144 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
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).
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.
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.
12.12.6 AES Interrupts
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
12.12.5 Modes of Operation
12.12.7 AES DMA Triggers
ECB and CBC modes are performed as
described in Section 12.12.1
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.
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.
The ENCDIand ENCDOregisters should be set
as destination and source locations for DMA
channels used to transfer data to or from the
AES coprocessor.
12.12.8 AES Registers
Both encryption and decryption are performed
similarly.
This section describes the AES coprocessor
registers. These registers will be in their reset
state when returning to active mode from PM2
and PM3.
The CBC-MAC mode is a variant of the CBC
mode. When performing CBC-MAC, data is
SWRS055G
Page 145 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
ENCCS (0xB3) - Encryption Control and Status
Bit
7
Field 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
Field Name
Reset
R/W
Description
7:0
DIN[7:0]
0x00
R/W
Encryption input data.
ENCDO (0xB2) - Encryption Output Data
Bit
Field Name
Reset
R/W
Description
7:0
DOUT[7:0]
0x00
R/W
Encryption output data.
SWRS055G
Page 146 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
12.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.
12.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).
12.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.
restarted
WDCTL.EN=1.
from
0x000
by
setting
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.
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
12.13.3 Watchdog Mode and Power Modes
In active mode and PM0 the WDT runs and
resets the chip upon timeout. To avoid reset,
SWRS055G
Page 147 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / 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
12.13.4 Watchdog Timer Register
WDCTL (0xC9) - Watchdog Timer Control
Bit
Field
Reset
R/W
Description
Name
7:4
CLR[3:0]
EN
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
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
32.768 kHz crystal 32 kHz RCOSC
34.667 kHz RCOSC
periods
oscillator
(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
SWRS055G
Page 148 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
12.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 12.4 on Page 87 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.
12.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
12.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
same
if
time
interrupts
At
the
• 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.
12.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.
12.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.
12.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.
SWRS055G
Page 149 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / 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 UxGCR.CPHA bit must be set to zero.
12.14.2 SPI Mode
For
systems
requiring
setting
UxGCR.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
12.4 on Page 87 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 12.4.6.1 and Section 12.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
12.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 is set to 1 when SNN
is asserted and cleared when SNN is de-
asserted. The UxCSR.RX_BYTE bit is set to 1
when a byte transfer ends.
12.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 12.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 41. 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
SWRS055G
Page 150 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
12.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 41: SPI Dataflow
12.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
UxBAUD.BAUD_M[7:0]=0).
228
If SPI master
mode does not need to receive data, the
SWRS055G
Page 151 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
maximum
(UxGCR.BAUD_E[4:0]=19
UxBAUD.BAUD_M[7:0]=0). Setting higher
baud rates than this will give erroneous results.
For SPI slave mode the maximum baud rate is
always F/8.
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
12.14.4 USART Flushing
12.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
(TCON.URXxIF) and the USART
complete interrupt (IRCON2.UTXxIF). The
interrupts are enabled by setting
IEN0.URXxIE=1 and IEN2.UTXxIE=1,
x
RX
complete
interrupt
cleared)
by
setting
x
TX
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).
SWRS055G
Page 152 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
The interrupt enables and flags are
summarized below.
buffer, UxDBUF, as source or destination
address.
Interrupt enable bits:
Note: For systems requiring setting
UxGCR.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 104 for an overview
of the DMA triggers.
12.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
12.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
SWRS055G
Page 153 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
U0CSR (0x86) - USART 0 Control and Status
Bit
Field 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
UART 0 receiver enable
0
1
Receiver disabled
Receiver enabled
SLAVE
FE
R/W
SPI 0 master or slave mode select
0
1
SPI master
SPI slave
R/W0
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
SWRS055G
Page 154 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
U0UCR (0xC4) - USART 0 UART Control
Bit
Field 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 9th 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
SWRS055G
Page 155 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
U0GCR (0xC5) - USART 0 Generic Control
Bit
Field 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]
00000
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
Field 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
Field 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
SWRS055G
Page 156 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
U1CSR (0xF8) - USART 1 Control and Status
Bit
Field 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
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
R/W
0
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/W
0
UART 1 parity error status
0
1
No parity error detected
Byte received with parity error
RX_BYTE
TX_BYTE
ACTIVE
R/W
0
Receive byte status
0
1
No byte received
Received byte ready
R/W
0
Transmit byte status
0
1
Byte not transmitted
Last byte written to Data Buffer register transmitted
R
USART 1 transmit/receive active status
0
1
USART 1 idle
USART 1 busy in transmit or receive mode
SWRS055G
Page 157 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
U1UCR (0xFB) - USART 1 UART Control
Bit
Field 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 9th 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
U1GCR (0xFC) - USART 1 Generic Control
Bit
Field 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]
00000
Baud rate exponent value. BAUD_Ealong with BAUD_Mdecides the UART 1
baud rate and the SPI 1 clock (SCK) frequency
SWRS055G
Page 158 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
U1DBUF (0xF9) - USART 1 Receive/Transmit Data Buffer
Bit
Field 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
Field 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
12.15 I2S
Please see Section 12.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 42
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 42: I2S Digital Audio Signaling
12.15.2 I2S Interrupts
The I2S has two interrupts:
12.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 complete interrupt (I2SRX)
• I2S TX complete interrupt (I2STX)
used
as
a
stand-alone
µ-Law
compression/expansion engine. Refer to
Section 12.15.12 on Page 162 for more details
about this.
The I2S interrupt enable bits are found in the
I2SCFG0 register. The interrupt flags are
SWRS055G
Page 159 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
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.
located in the I2SSTAT register. The interrupt
enables and flags are summarized below.
Interrupt enable bits:
• I2S RX: I2SCFG0.RXIEN
• I2S TX: I2SCFG0.TXIEN
Interrupt flags:
• I2S RX: I2SSTAT.RXIRQ
• I2S TX: I2SSTAT.TXIRQ
Refer to Table 51 on Page 104 for an overview
of the DMA triggers.
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
12.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
the
data
in
the
TX
buffer,
and
I2SSTAT.TXUNFwill be asserted.
request
is
only
generated
when
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.
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
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.
12.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 1.1 on
Page 57 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.
12.15.3 I2S DMA Triggers
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.
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.
12.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
SWRS055G
Page 160 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
I2SDATH register, hence reading from the
I2SDATH register indicates the completion of
the read operation.
When the I2S is configured to receive stereo,
and 9-bit denominator, DENOM, as shown in the
following formula:
Fclk
NUM
Fsck
=
2(
)
i.e.
I2SCFG0.RXMONO
is
0,
the
DENOM
I2SSTAT.RXLRflag can be used to determine
whether the sample currently in the data
registers is a left- or right-channel sample.
NUM
DENOM
where
> 3.35
Fclk is the system clock frequency and Fsck is the
I2S SCK sample clock frequency.
12.15.7 Full vs. Half Duplex
The I2S interface supports full duplex and half
duplex operation.
The value of the numerator is set in the
I2SCLKF2.NUM[14:8]:I2SCLKF1.NUM[7:0]
registers and the denominator value is set in
I2SCLKF2.DENOM[8]:I2SCLKF0.DENOM[7:0].
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.
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.
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.
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:
12.15.8 Master Mode
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.
12.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.
Fsck
Fs =
2 ⋅W
Fclk
DENOM 4⋅W ⋅ Fs
NUM
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 ,
CLKDIV=
=
I2SCLKF2 I2SCLKF1 I2SCLKF0
Fs (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)
SWRS055G
Page 161 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
I2SCLKF2 I2SCLKF1 I2SCLKF0
Fs (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)
12.15.8.2 Word Size
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.
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
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
to an I2S device that takes a higher resolution
than 16 bits.
12.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
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.
I2SSTAT.WCNT[9:8]:I2SWCNT.WCNT[7:0]regi
sters and the word counter is cleared.
Three triggers can be used to copy/clear the
word counter.
12.15.9 Slave Mode
The I2S is configured as a slave device by
setting I2SCFG0.MASTER to 0. When in slave
mode the SCK and WS signals are generated
by an external I2S master and are inputs to the
I2S interface.
• 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)
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.
12.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).
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.
If more than 16 bits are being received, the low
order bits are discarded.
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.
12.15.10 Mono
The I2S also supports mono audio samples.
12.15.12 µ-Law Compression and Expansion
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.
The I2S interface can be configured to perform
μ-Law compression and expansion. µ-Law
compression is enabled by setting the
I2SCFG0.ULAWC bit to
1
and µ-Law
SWRS055G
Page 162 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
expansion is enabled by setting the
I2SCFG0.ULAWEbit to 1.
start the compression, an un-compressed 16-
bit sample should be written to the
I2SDATH:I2SDATL
registers.
The
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.
compression takes one clock cycle to perform,
and then the result can be read from the
I2SDATH register.
Only one of the flags I2SCFG0.ULAWC and
I2SCFG0.ULAWE should be set to 1 when the
I2SCFG0.ENABbit is 0.
12.15.13 I2S Registers
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.
This section describes all the registers used for
I2S control and status. The I2S registers reside
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.
To perform a compression I2SCFG0.ULAWE
must be 0 and I2SCFG0.ULAWCmust be 1. To
SWRS055G
Page 163 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
0xDF40: I2SCFG0 - I2S Configuration Register 0
Bit
Field Name Reset
R/W
Description
7
TXIEN
RXIEN
ULAWE
0
0
0
R/W
Transmit interrupt enable
0
1
Interrupt disabled
Interrupt enabled
6
5
R/W
R/W
Receive interrupt enable
0
1
Interrupt disabled
Interrupt enabled
µ-Law expansion enable
0
1
Expansion disabled
Expansion enabled
ENAB=0
ENAB=1
Expand data written to I2SDATH
Enable expansion of data to transmit
4
ULAWC
0
R/W
µ-Law compression enable
0
1
Compression disabled
Compression enabled
ENAB=0
ENAB=1
Compress data written to I2SDATH:I2SDATL
Enable compression of data received
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
SWRS055G
Page 164 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / 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 89 for an overview of pin locations.
0
1
Alt. 1 in Table 50 is used
Alt. 2 in Table 50 is used
Note: If the I2S interface is enabled (I2SCFG0_ENAB=1), the I2S interface will have
precedence in cases where other peripherals (except for the debug interface) are
configured to be on the same location. This is the case even if the pins are configured
to be general purpose I/O pins.
0xDF42: I2SDATL - I2S Data Low Byte
Bit
Field Name
Reset R/W
0x00 R/W
Description
7:0
I2SDAT[7:0]
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 12.15.11 for details about how to use this register.
SWRS055G
Page 165 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / 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
0xE2 R/W
Description
7:0
NUM[7:0]
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
SWRS055G
Page 166 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
12.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 43 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
USB Controller
EP0
EP1
DP
EP2
Memory
USB PHY
USB SIE
Arbiter
EP3
DM
EP4
EP5
1 KB
SRAM
(FIFOs)
Figure 43: USB Controller Block Diagram
12.16.1 48 MHz Clock
generate a maximum system clock frequency
of 24 MHz. It is important that the crystal
oscillator is stable before the USB Controller is
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
SWRS055G
Page 167 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
accessed. See 12.1.5.1 for details on how to
set up the crystal oscillator.
SLEEP.USB_EN to 0 will reset the USB
controller.
12.16.2 USB Enable
12.16.3 USB Interrupts
The USB Controller must be enabled before it
is used. This is performed by setting the
There are 3 interrupt flag registers with
associated interrupt enable mask registers.
SLEEP.USB_EN
bit
to
1.
Setting
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
12.16.3.1 USB Resume Interrupt
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 will start executing the
ISR if there are no higher priority interrupts
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
on the stack) to allow them to be accessed
multiple times.
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
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 12.16.9 for more
details about suspend and resume.
12.16.4 Endpoint 0
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.
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 10.5.2).
Refer to Table 39 and Table 40 for a complete
list of interrupts, and Section 1.1 for more
details about interrupts.
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.
SWRS055G
Page 168 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
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
12.16.5 Endpoint 0 Interrupts
The firmware can also terminate the current
transaction
by
setting
the
The following events may generate an EP0
interrupt request:
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.
• 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)
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.).
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
• An IN transaction has been completed
(the interrupt is generated during the
Status stage of the transaction)
• A
STALL
has
been
sent
abort
the
current
transfer.
If
(USBCS0.SENT_STALL=1)
USBCS0.OUTPKT_RDY is asserted, this
indicates that another Setup Packet has been
received that firmware should process.
• A control transfer ends due to a
premature end of control transfer
(USBCS0.SETUP_END=1)
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.
12.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
12.16.5.1 Error Conditions
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:
(OUT
transaction)
when
the
• 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)
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:
• 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)
SWRS055G
Page 169 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
1. Unload the Setup Packet from the EP0
FIFO
is working, but temporarily has no data to
send.
2. Examine the contents and perform the
appropriate operations
12.16.5.4 OUT Transactions (RX state)
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 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
tokens.
A
successful OUT transaction
comprises two or three sequential packets (a
token packet, a data packet, and a handshake
packet20). 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.
12.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 packet19). 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.
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)
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.
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
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 12.16.5.1.
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.
12.16.6 Endpoints 1 - 5
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 12.16.5.1.
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
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
20 For isochronous transfers there would not be
a handshake packet from the CC2511Fx
19 For isochronous transfers there would not be
a handshake packet from the host
SWRS055G
Page 170 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
configure and control OUT endpoints. Each IN
and OUT endpoint can be configured as either
the top of the endpoint memory region while
the OUT FIFO grows up from the bottom of the
endpoint memory region.
Isochronous
(USBCSIH.ISO=1
and/or
Bulk/Interrupt
and/or
USBCSOH.ISO=1)
(USBCSIH.ISO=0
USBCSOH.ISO=0)
or
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 44 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.
endpoints.
Bulk
and
Interrupt endpoints are handled identically by
the USB controller but will have different
properties from a firmware perspective.
The USBINDEXregister must have the value of
the endpoint number before the Indexed
Endpoint Registers are accessed (see Table
35 on Page 50).
To configure an endpoint as IN only, set
USBMAXOto 0 and to configure an endpoint as
OUT only, set USBMAXIto 0.
12.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.
For unused endpoints, both USBMAXO and
USBMAXIshould be set to 0.
EP Number FIFO Size (in bytes)
1
2
3
4
5
32
64
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
44 a) shows how the IN and OUT FIFO
memory for an endpoint is organized with
single buffering. The IN FIFO grows down from
128
256
512
Table 60: FIFO Sizes for EP 1 - 5
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
OUT FIFO
(Buffer 1)
OUT FIFO
0
0
b)
a)
Figure 44: IN/OUT FIFOs, a) Single Buffering b) Double Buffering
12.16.6.2 Double Buffering
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
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
highly
recommended
for
isochronous
SWRS055G
Page 171 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
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.
USBCSOL.OUTPKT_RDY bit is cleared the
USBCSOL.OUTPKT_RDY bit will be asserted
immediately and an interrupt will be generated
(if enabled) to signal that a new data packet
has
been
received.
The
USBCSOL.FIFO_FULL bit will be set when
there are two data packets in the OUT FIFO.
The AutoClear feature is supported for OUT
endpoints.
USBCSOL.OUTPKT_RDY
When
enabled,
bit is
the
cleared
automatically when USBMAXObytes have been
read from the OUT FIFO. The AutoClear
feature
USBCSOH.AUTOCLEAR=1.
is
enabled
by
The
setting
AutoClear
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.
feature can be used to reduce the time the
data packet occupies the OUT FIFO buffer and
is typically used for bulk endpoints.
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.
12.16.6.3 FIFO Access
The endpoint FIFOs are accessed by reading
and writing to the registers in Table 36 on
Page 50. Writing to a register causes the byte
written to be inserted into the IN FIFO.
Reading a register causes the next byte in the
OUT FIFO to be extracted and the value of this
byte to be returned.
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.
12.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
STALL
has
been
sent
Only
(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
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
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.USBIE and USBIIE.INEPxIE are both
set to 1. The x in the register names refer to
the endpoint number 1 - 5)
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
packet
is
ready
when
the
SWRS055G
Page 172 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
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
controller sends a zero length data packet and
the USBCSIL.UNDERRUNbit will be asserted.
• A data packet has been received
(USBCSOL.OUTPKT_RDY=1)
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.
• A
STALL
has
been
sent
Only
(USBCSIL.SENT_STALL=1).
Bulk/Interrupt endpoints can be stalled
Any
of
these
events
to
will
be
cause
asserted
USBOIF.OUTEPxIF
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
if
IEN2.USBIE
and
USBOIE.OUTEPxIEare both set to 1.
The AutoSet feature will typically not be used
for isochronous endpoints since the packet
size will increase or decrease from frame to
frame.
12.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.
12.16.6.7 Bulk/Interrupt OUT Endpoint
Interrupt OUT transfers occur at regular
intervals while bulk OUT transfers utilize
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.
available
bandwidth
not
allocated
to
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
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
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
assert
the
USBCSOL.SENT_STALL bit when the STALL
handshake is sent and generate an interrupt
request if the OUT endpoint interrupt is
enabled.
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.
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.
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.
12.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).
If there is no buffer available when a data
packet
is
being
received,
the
bit will be asserted and
USBCSOL.OVERRUN
the packet data will be lost. Firmware can
reduce the chance for this to happen by using
double buffering and use DMA to effectively
unload data packets.
12.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).
SWRS055G
Page 173 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
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 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 12.5.7). 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 45 and Figure 46
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.
The AutoClear feature will typically not be used
for isochronous endpoints since the packet
size will increase or decrease from frame to
frame.
12.16.7 DMA
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.
Refer to Section 12.5 for more details
regarding DMA.
There are no DMA triggers for the USB
controller, meaning that DMA transfers must
be triggered by firmware.
MSB LSB
ENDIAN.USBWLE = 0
SYNC
PID
MSB LSB MSB LSB
MSB LSB CRC16 EOP
To Host
MSB LSB
ENDIAN.USBWLE = 1
SYNC
PID
LSB MSB LSB MSB
LSB MSB CRC16 EOP
To Host
Figure 45: Writing Big/Little Endian
SYNC
PID
B0
B1
B2
B3
Bn-1 Bn
CRC16 EOP
From Host
ENDIAN.USBRLE = 0
ENDIAN.USBRLE = 1
B0
B1
B1
B0
Figure 46: Reading Big/Little Endian
SWRS055G
Page 174 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
12.16.8 USB Reset
to 12.16.3.1 for details about how to set up the
USB resume interrupt.
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.
Any valid non-idle signaling on the USB bus
will cause the USBCIF.RESUMEIF 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 12.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.
The following actions are performed by the
USB controller when a USB reset occurs:
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
•
•
USBADDRis set to 0
USBINDEXis set to 0
described
in
12.16.3.1,
but
the
USBCIF.RSTIF interrupt flag will be set
instead of the USBCIF.RESUMEIF interrupt
flag.
• All endpoint FIFOs are flushed
USBCS0, USBCSIL,
USBCSOL, USBCSOHare cleared.
•
USBCSIH,
12.16.10 Remote Wakeup
• All interrupts, except SOF and suspend,
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).
are enabled
• An interrupt request is generated (if
IEN2.USBIE=1
and
USBCIE.RSTIE=1)
Firmware should close all pipes and wait for a
new enumeration phase when USB reset is
detected.
12.16.9 Suspend and Resume
The
USB
controller
will
assert
USBCIF.SUSPENDIF and enter suspend
mode when the USB bus has been
continuously idle for 3 ms, provided that
USBPOW.SUSPEND_EN=1. IRCON2.USBIFwill
12.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.
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.RESUMEIF to be
asserted and an interrupt request to be
generated and wake up the system if the USB
resume interrupt is configured correctly. Refer
Notice that the upper register addresses
0xDE2C – 0xDE3F are reserved.
SWRS055G
Page 175 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
0xDE00: USBADDR - Function Address
Bit Field Name
UPDATE
Reset
R/W
Description
7
0
R
This bit is set when the USBADDRregister is written and cleared when the
address becomes effective.
6:0 USBADDR[6:0]
0000000 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
Drives 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
R
H0
Interrupt flag for IN endpoint 5. Cleared by HW when read
4
3
2
1
0
0
0
0
0
0
R
H0
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
R
H0
R
H0
R
H0
R
H0
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
R
H0
Interrupt flag for OUT endpoint 5. Cleared by HW when read
4
3
2
1
0
0
0
0
0
-
R
H0
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
R
H0
R
H0
R
H0
R0
SWRS055G
Page 176 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
0xDE06: USBCIF - Common USB Interrupt Flags
Bit
Field Name
Reset
R/W
Description
7:4
3
-
R0
Not used
SOFIF
0
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
1
0
RSTIF
0
0
0
R
H0
RESUMEIF
SUSPENDIF
R
H0
R
H0
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
SWRS055G
Page 177 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / 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
SWRS055G
Page 178 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / 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.
SWRS055G
Page 179 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / 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.
SWRS055G
Page 180 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / 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
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
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
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.
SWRS055G
Page 181 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
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.
SWRS055G
Page 182 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
13 Radio
RADIO CONTROL
ADC
LNA
ADC
RF_P
RF_N
FREQ
SYNTH
0
90
PA
Figure 47: 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 47.
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
13.1 Command Strobes
The CPU uses a set of command strobes to
control operation of the radio.
Note: An SIDLE strobe will clear all pending
command strobes until IDLE state is
reached. This means that if for example an
SIDLE strobe is issued while the radio is in
RX state, any other command strobes
issued before the radio reached IDLE state
will be ignored.
Command strobes may be viewed as single
byte instructions which each start an internal
sequence in the radio. These command
strobes are used to enable the frequency
synthesizer, enable receive mode, enable
transmit mode, etc. (see Figure 48).
The 6 command strobes are listed in Table 61
on Page 185.
SWRS055G
Page 183 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / 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 48: Simplified State Diagram
SWRS055G
Page 184 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
RFST
Value
Command
Strobe
Description
Name
0x00
0x01
SFSTXON
Enable and calibrate frequency synthesizer (if MCSM0.FS_AUTOCAL=01). 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=00)
0x02
0x03
SRX
STX
Enable RX. Perform calibration first if coming from IDLE and MCSM0.FS_AUTOCAL=01.
In IDLE state: Enable TX. Perform calibration first if MCSM0.FS_AUTOCAL=01.
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
13.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 10.2.3.4 on Page 47 gives a full
description of all RF registers.
13.3 Interrupts
There are two interrupt vector assigned to the
radio. These are the RFTXRX interrupt
(interrupt #0) and the RF interrupt (interrupt
#16):
issued, meaning that one can not write to the
RFDregister before issuing an STX strobe.
For an interrupt request to be generated when
TCON.RFTXRXIF
is
asserted,
• RFTXRX: RX data ready or TX data
complete (related to the RFDregister)
IEN0.RFTXRXIEmust be 1.
Note: When append status is enabled,
PKTCTRL1.APPEND_STATUS=1, reading
status byte 1 (see Section 13.8) from the
RFDregister will trigger the assertion of the
RFTXRXIFflag for status byte 2. If this flag
is cleared AFTER reading status byte 1,
the new flag will be cleared as well. One
RFTXRXIF assertion will therefore be
missed by software. After assertion of the
RFTXRXIF flag one should therefore clear
the flag BEFORE reading the RFDregister.
• RF: All other general RF interrupts
The RF interrupt vector combines the
interrupts shown in the RFIM register shown
on Page 187. 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.
The RF interrupt flags are described in the
next section.
13.3.1 Interrupt Registers
13.3.1.1 RFTXRX
13.3.1.2 RF
There are 8 different events that can generate
an RF interrupt request. These events are:
The RFTXRX 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). In TX, the RFTXRXIF flag will not be
asserted before an STX strobe has been
• TX underflow
• RX overflow
• RX timeout
SWRS055G
Page 185 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
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
S1CON.RFIF is asserted, and interrupt
request will be generated.
• Packet received/transmitted. Also used
to detect overflow/underflow conditions
• CS
• PQT reached
• CCA
• SFD
Refer to 1.1 for details about the interrupts.
Each of these events has a corresponding
interrupt flag in the RFIF register which is
RFIF (0xE9) - RF Interrupt Flags
Bit
Field 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
SWRS055G
Page 186 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
RFIM (0x91) - RF Interrupt Mask
Bit
Field aName
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
13.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 RFD register, 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
To
exit
RX_OVERFLOW
and/or
TX_UNDERFLOW state, an SIDLE strobe
command should be issued.
Note: The RFD register content will not be
retained in PM2 and PM3
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
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. Note that if an STX strobe is issued but
no data is written to the RFD register after the
following assertion of the RFTXRXIF flag, the
radio will start sending preamble without
entering TX_UNDERFLOW state.
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 12.5 on Page
98.
SWRS055G
Page 187 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
A simple example of transmitting data is shown
in Figure 49. This example does not use DMA.
; 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
RFTXRXIF,C1
RFTXRXIF
RFD,#02H
RFTXRXIF,C2
RFTXRXIF
RFD,#12H
RFTXRXIF,C3
RFTXRXIF
; 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 49: Simple RF Transmit Example
13.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:
Note that the maximum data rate will be limited
by the system clock speed. Please see
12.1.5.2 for more details.
13.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.
SWRS055G
Page 188 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / 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)
13.7 Demodulator, Symbol Synchronizer, and Data Decision
13.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 13.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 1.1 on
Page 188. Re-synchronization is performed
continuously to adjust for error in the incoming
symbol rate.
13.7.3 Byte Synchronization
13.7.1 Frequency Offset Compensation
Byte synchronization is achieved by
a
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
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 13.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.
In order to make false detections of sync
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.
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 13.10.2 on Page 194 for more
details.
SWRS055G
Page 189 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
13.8 Packet Handling Hardware Support
The CC2510Fx/CC2511Fx has built-in hardware
support for packet oriented radio protocols.
• Whitening of the data with a PN9
sequence.
In transmit mode, the packet handler can be
configured to add the following elements to the
packet:
• Forward error correction by the use of
interleaving and coding of the data
(convolutional coding).
• A programmable number of preamble
In receive mode, the packet handling support
will de-construct the data packet by
implementing the following (if enabled):
bytes
• 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.
• Preamble detection
• Sync word detection
• CRC computation and CRC check
• One byte address check
• A CRC checksum computed over the
data field
• Packet length check (length byte
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.
checked against
maximum length)
a
programmable
• 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.
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.
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
receiver. With CC2510Fx/CC2511Fx, this can be
13.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
occupied bandwidth. This also gives the
done
automatically
by
setting
PKTCTRL0.WHITE_DATA=1. All data, except
the preamble and the sync word, are then
SWRS055G
Page 190 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
XOR-ed with a 9-bit pseudo-random (PN9)
sequence before being transmitted as shown
in Figure 50. At the receiver end, the data are
XOR-ed with the same pseudo-random
sequence. This way, the whitening is reversed,
and the original data appear in the receiver.
The PN9 sequence is reset to all 1’s.
Data whitening can only be used when
PKTCTRL0.CC2400_EN=0(default).
8
7
6
5
4
3
2
1
0
TX_DATA
7
6
5
4
3
2
1
0
The first TX_DATA byte is shifted in before doing the XOR-operation providing the first TX_OUT[7:0] byte. The
second TX_DATA byte is then shifted in before doing the XOR-operation providing the second TX_OUT[7:0] byte.
TX_OUT[7:0]
Figure 50: Data Whitening in TX Mode
13.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
Legend:
Optionally FEC encoded/decoded
Optional CRC-16 calculation
Inserted automatically in TX,
processed and removed in RX.
Optional user-provided fields processed in TX,
processed but not removed in RX.
Preamble bits
(1010...1010)
Data field
8 x n bits
Unprocessed user data (apart from FEC
and/or whitening)
8
8
8 x n bits
16/32 bits
16 bits
bits bits
Figure 51: Packet Format
SWRS055G
Page 191 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
the programmed node address in the ADDR
register and the 0x00 broadcast address when
PKTCTRL1.ADR_CHK=10 or both 0x00 and
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.
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.
13.8.3.2 Maximum Length Filtering
In
variable
packet
length
mode,
the
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
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
setting).
The
MDMCFG2.SYNC_MODEset to 3 or 7. The sync
word will then be repeated twice.
DMA will not be triggered.
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.
13.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.
13.8.3 Packet Filtering in Receive Mode
CC2500 supports two different types of packet-
filtering: address filtering and maximum length
filtering.
13.8.3.1 Address Filtering
If whitening is enabled, everything following
the sync words will be whitened. This is done
before the optional FEC/Interleaver stage.
Setting PKTCTRL1.ADR_CHK to any other
value than zero enables the packet address
filter. The packet handler engine will compare
the destination address byte in the packet with
Whitening
is
enabled
by
setting
PKTCTRL0.WHITE_DATA=1.
SWRS055G
Page 192 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
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.
13.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.
When variable packet length mode is enabled,
the first byte is the length byte. The packet
13.9 Modulation Formats
When FSK/GFSK modulation is used the
DEVIATN register specifies the expected
frequency deviation of incoming signal in RX
and should be the same as the TX deviation
for demodulation to be performed reliably and
robustly.
CC2510Fx/CC2511Fx supports frequency and
phase shift modulation formats. The desired
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.
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:
Note: Manchester encoding is not
supported at the same time as using the
FEC/Interleaver option or when using MSK
modulation.
fref
217
fdev
=
⋅(8 + DEVIATION _ M )⋅2DEVIATION _ E
The symbol encoding is shown in Table 66.
13.9.1 Frequency Shift Keying
2-FSK can optionally be shaped by
a
Gaussian filter with BT=1, producing a GFSK
modulated signal.
Format
Symbol
Coding
2-FSK/GFSK
‘0’
‘1’
−Deviation
+Deviation
Table 66: Symbol Encoding for 2-FSK/GFSK Modulation
SWRS055G
Page 193 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
13.9.2 Minimum Shift Keying
DEVIATN.DEVIATION_M setting. This is
equivalent to changing the shaping of the
symbol.
When using MSK21 the complete transmission
(preamble, sync word, and payload) will be
MSK modulated.
The MSK modulation format implemented in
CC2510Fx/CC2511Fx inverts the sync word and
data compared to e.g. signal generators.
Phase shifts are performed with a constant
transition time.
The fraction of a symbol period used to change
the phase can be modified with the
Note: The DEVIATN register setting
has no effect in RX when using MSK. Also,
when
using
MSK
Manchester
21
encoding/decoding should be disabled
(MDMCFG2.MANCHESTER_EN=0)
Identical to offset QPSK with half-sine
shaping (data coding may differ)
13.10 Received Signal Qualifiers and Link Quality Information
CC2510Fx/CC2511Fx has several qualifiers
that can be used to increase the likelihood that
a valid sync word is detected.
timer. See Section 13.12.3 on Page 201 for
details.
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∙PQT for 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.
13.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
register and perform the packet filtering
described in Section 13.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 13.10.4.
A “Preamble Quality Reached” signal can be
observed on P1_5, P1_6, or P1_7 by setting
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.
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
13.10.3 RSSI
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.
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
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.
Table 67: Sync Word Qualifier mode
13.10.2 Preamble Quality Threshold (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.
Note: It takes some time from the radio
enters RX mode until a valid RSSI value is
present in the RSSI register. Please see
DN505 [12] for details on how the RSSI
response time can be estimated.
Another use of the preamble quality threshold
is as a qualifier for the optional RX termination
SWRS055G
Page 194 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
The RSSI value is in dBm with ½ dB
resolution. The RSSI update rate, fRSSI
depends on the receiver filter bandwidth
(BWchannel defined in Section 13.6) and
AGCCTRL0.FILTER_LENGTH.
2) Convert the reading from a hexadecimal
number to decimal number
(RSSI_dec)
,
a
3) If RSSI_dec ≥ 128 then RSSI_dBm =
(RSSI_dec − 256)/2 – RSSI_offset
2⋅ BWchannel
8⋅2FILTER _ LENGTH
4) Else if RSSI_dec < 128 then RSSI_dBm
= (RSSI_dec)/2 – RSSI_offset
fRSSI
=
Table 68 provides typical values for the
RSSI_offset.
If PKTCTRL1.APPEND_STATUS is enabled the
RSSI value at sync word detection is
automatically added to the first byte appended
after the data payload.
Data Rate [kBaud]
RSSI_offset [dB]
2.4
10
74
74
71
72
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).
250
500
Table 68: Typical RSSI_offset Values
1) Read the RSSI status register
Figure 52 shows typical plots of RSSI readings
as a function of input power level for different
data rates.
0.0
-10.0
-20.0
-30.0
-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 52: Typical RSSI Value vs. Input Power Level for Some Typical Data Rates
13.10.4 Carrier Sense (CS)
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.
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:
• CS is asserted when the RSSI is above
a programmable absolute threshold, and
de-asserted when RSSI is below the
same threshold (with hysteresis).
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
• CS is asserted when the RSSI has
increased with a programmable number
SWRS055G
Page 195 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
setting IOCFGx.GDOx_CFG=1110 and in the
status register bit PKTSTATUS.CS.
MAX_DVGA_GAIN[1:0]
00
01
10
11
Other uses of Carrier Sense include the TX-if-
CCA function (see Section 13.10.7 on Page
197) and the optional fast RX termination (see
Section 13.12.3 on Page 201).
000
001
010
011
100
101
110
111
−99
−93
−87
−85
−82
−80
−78
−76
−73
−70
−81.5
−78.5
−76
−97
−90.5
−87
−93.5
−91.5
−90.5
−88
−86
−74
CS can be used to avoid interference from e.g.
WLAN.
−84
−72.5
−70
−82.5
−78.5
−76
13.10.5 CS Absolute Threshold
−84.5
−82.5
−67
The absolute threshold related to the RSSI
value depends on the following register fields:
−64
Table 69: Typical RSSI Value in dBm at CS
Threshold with Default MAGN_TARGETat 2.4
kBaud
•
•
•
•
AGCCTRL2.MAX_LNA_GAIN
AGCCTRL2.MAX_DVGA_GAIN
AGCCTRL1.CARRIER_SENSE_ABS_THR
AGCCTRL2.MAGN_TARGET
MAX_DVGA_GAIN[1:0]
00
01
10
11
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.
000
001
010
011
100
101
110
111
−96
−90
−89
−87
−85
−82
−79.5
−76.5
−72
−84
−78.5
−77.5
−75
−94.5
−92.5
−91
−83
−81
1
−78.5
−76
−73
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®
−87.5
−85
−70
−73.5
−70.5
−66
−67.5
−65
−83
−78
−60
Table 70: Typical RSSI Value in dBm at CS
Threshold with Default MAGN_TARGETat 250
kBaud
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.
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.
For other data rates the user must generate
similar tables to find the CS absolute
threshold.
13.10.6 CS Relative Threshold
The relative threshold detects sudden changes
in the measured signal level. 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. 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
SWRS055G
Page 196 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
13.10.7 Clear Channel Assessment (CCA)
• Unless currently receiving a packet
The Clear Channel Assessment CCA) is used
to indicate if the current channel is free or
busy. The current CCA state is viewable on
• Both the above (RSSI below threshold
and not currently receiving a packet)
P1_5,
P1_6,
or
P1_7
by
setting
13.10.8 Link Quality Indicator (LQI)
IOCFGx.GDOx_CFG=1001.
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
MCSM1.CCA_MODE selects the mode to use
when determining CCA.
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.
word. LQI is best used as
a
relative
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.
Four CCA requirements can be programmed:
• Always (CCA disabled, always goes to
TX)
• If RSSI is below threshold
13.11 Forward Error Correction with Interleaving
13.11.1 Forward Error Correction (FEC)
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).
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
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
sensitivity. In other words, the improved
reception by using FEC and the degraded
sensitivity from a higher receiver bandwidth
will be counteracting factors.
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:
PER = 1− (1− BER)packet _length
,
13.11.2 Interleaving
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).
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.
SWRS055G
Page 197 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
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.
CC2510Fx/CC2511Fx employs matrix interleaving,
which is illustrated in Figure 53. 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 rows of the matrix, whereas the data
passed onto the convolutional decoder is read
from the columns of the matrix.
When FEC and interleaving is used the
minimum data payload is 2 bytes.
Note:
When
using
FEC
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).
(MDMCFG1.FEC_EN=1), CLKCON.CLKSPD
must be set to 000.
Interleaver
Write buffer
Interleaver
Read buffer
Packet
Engine
FEC
Encoder
Modulator
Interleaver
Write buffer
Interleaver
Read buffer
FEC
Decoder
Packet
Engine
Demodulator
Figure 53: General Principle of Matrix Interleaving
13.12 Radio Control
A simplified state diagram is shown in Figure
48 on Page 184. The complete radio control
state diagram is shown in Figure 54. 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.
SWRS055G
Page 198 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
SIDLE
CAL_COMPLETE
MANCAL
3,4,5
IDLE
1
SCAL
SRX
| STX | SFSTXON
FS_WAKEUP
6,7
FS_AUTOCAL = 01
&
SRX
|
STX
|
SFSTXON
FS_AUTOCAL = 00 | 10 | 11
&
CALIBRATE
8
SRX
|
STX
|
SFSTXON
CAL_COMPLETE
SETTLING
9,10,11
SFSTXON
FSTXON
18
STX
SRX
STX
SFSTXON
SRX
| RXOFF_MODE = 10
|
RXOFF_MODE = 01
TXOFF_MODE=01
RXTX_SETTLING
21
STX
( STX
| SFSTXON ) & CCA
|
RXOFF_MODE = 01 | 10
TX
19,20
RX
13,14,15
TXOFF_MODE = 10
RXOFF_MODE = 11
SRX
| TXOFF_MODE = 11
TXRX_SETTLING
16
RXOFF_MODE = 00
&
FS_AUTOCAL = 10 | 11
TXOFF_MODE = 00
&
FS_AUTOCAL = 10 | 11
TXFIFO_UNDERFLOW
RXFIFO_OVERFLOW
CALIBRATE
12
TXOFF_MODE = 00
RXOFF_MODE = 00
&
FS_AUTOCAL = 00 | 01
&
FS_AUTOCAL = 00 | 01
RX_OVERFLOW
17
TX_UNDERFLOW
22
SIDLE
SIDLE
IDLE
1
Figure 54: Complete Radio Control State Diagram
SWRS055G
Page 199 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
13.12.1 Active Modes
Note: When MCSM1.RXOFF_MODE=11 and
a packet has been received, it will take
some time before a valid RSSI value is
present in the RSSI register again even if
the radio has never exited RX mode. This
time is the same as the RSSI response
time discussed in DN505 [12].
The radio has two active modes: receive and
transmit. These modes are activated directly
by writing the SRX and STX command strobes
to the RFSTregister.
The frequency synthesizer must be calibrated
regularly. CC2510Fx/CC2511Fx has one manual
calibration option (using the SCALstrobe), and
three automatic calibration options, controlled
by the MCSM0.FS_AUTOCALsetting:
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.
• Calibrate when going from IDLE to
either RX or TX (or FSTXON)
• Calibrate when going from either RX or
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
transmit and an SRX strobe is written to the
RFST register, the current transmission will be
ended and the transition to RX will be done.
TX to IDLE automatically
• Calibrate every fourth time when going
from either RX or TX to IDLE
automatically
If the radio goes from TX or RX to IDLE by
issuing an SIDLEstrobe, calibration will not be
performed. See Table 71 for timing details
regarding calibration.
If the radio controller is in RX when the STX or
SFSTXON command strobes are used and
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
13.10.7 on Page 197.
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 13.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 13.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:
The SIDLE command strobe can always be
used to force the radio controller to go to the
IDLE state.
13.12.2 Timing
The radio controller controls most timing in
CC2510Fx/CC2511Fx, such as synthesizer
calibration, PLL lock time, and RX/TX
turnaround times. Table 71 shows the timing
for key state transitions when the system clock
frequency is equal to fRef and the data rate is
250 kBaud. See DN110 [11] for more details
on how the state transition times changes
under other conditions.
• 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
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
13.17.2.
SWRS055G
Page 200 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
Transmission Time as a
function of fRef and/or fSymbol
Transition Time [μs]
fRef = 26 MHz fRef = 24 MHz
22
Description
Idle to RX, no calibration
Idle to RX, with calibration23
Idle to TX/FSTXON, no calibration
Idle to TX/FSTXON, with calibration23
TX to RX switch
1953/fSys
75.1
799
75.2
799
31.1
30.1
~1
81.4
865
81.4
865
33.6
32.6
~1
20768/fSys
1954/fSys
20768/fSys
782/fSys + 0.25/fSymbol
782/fSys
RX to TX switch
TX to IDLE, no calibration
TX to IDLE, with calibration23
RX to IDLE, no calibration
RX to IDLE, with calibration23
Manual calibration23
~0.25/fSymbol
~0.25/fSymbol +18815/fSys
2/fSys
725
0.1
785
0.1
18817/fSys
724
735
784
796
19098/fSys
Table 71: State Transition Timing
13.12.3 RX Termination Timer
•
MCSM2.RX_TIME_QUAL=1:
Continue
receive if sync word has been found or
CC2510Fx/CC2511Fx has optional functions for
automatic termination of RX after
a
preamble quality is above threshold
(PQT)
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 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
13.10.4 on Page 195 for details on Carrier
Sense.
The programmable conditions are:
•
MCSM2.RX_TIME_QUAL=0:
Continue
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.
receive if sync word has been found
13.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
)
22
f
is the symbol rate for the data transmission (in this case 250 kBaud). Please see DN110 [11]
Symbol
for more details
23
This is the calibration time given that TEST0=0x0B and FSCAL3.CHP_CURR_CAL_EN=10 (max
calibration time). Please see DN110 [11] for more details
SWRS055G
Page 201 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
anel 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:
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.
fref
216
fcarrier
=
⋅
(
FREQ + CHAN ⋅
(
(256 + CHANSPC _ M )⋅2CHANSPC _ E−2 ))
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
210
fIF =
⋅ FREQ_ IF
13.14 VCO
The VCO is completely integrated on-chip.
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.
13.14.1 VCO and PLL Self-Calibration
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
201.
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).
13.15 Output Power Programming
The RF output power level from the device is
programmed through the PA_TABLE0 register.
Table 72 contains recommended PA_TABLE0
settings for various output levels and
frequency bands, together with current
consumption in the RF transceiver.
SWRS055G
Page 202 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / 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)
13.16 Selectivity
Figure 55 to Figure 59 show the typical
selectivity performance (adjacent and alternate
rejection).
SWRS055G
Page 203 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
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 55: 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 56: 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 57: Typical Selectivity at 250 kBaud. IF Frequency is 177.7 kHz.
MDMCFG2.DEM_DCFILT_OFF=0
SWRS055G
Page 204 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
50
40
30
20
10
0
-3
-2
-1
0
1
2
3
-10
-20
Frequency offset [MHz]
Figure 58: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 59: Typical Selectivity at 500 kBaud. IF Frequency is 307.4 kHz.
MDMCFG2.DEM_DCFILT_OFF=0
13.17 System Considerations and Guidelines
13.17.1 SRD Regulations
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.
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
AN032 [9].
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:
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.
1) Frequency hopping with calibration for each
hop. The PLL calibration time is approximately
735 µs24 and the blanking interval between
each frequency hop is then approximately
13.17.2 Frequency Hopping and Multi-
Channel Systems
24
The system clock frequency is equal to fRef.
Max calibration time is used (TEST0=0x0B
and FSCAL3.CHP_CURR_CAL_EN=10) Please
see DN110 [11] for more details.
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
SWRS055G
Page 205 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
799 μs24. When fRef is 24 MHz, these numbers
are 796 μs24 and 865 μs24 respectively.
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 75 µs24 when fRef is 26 MHz and
81 µs24 when fRef is 24 MHz. The blanking
interval between each frequency hop is then
approximately equal to the PLL turn on time.
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.
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.
13.17.4 Data Burst Transmissions
The
high
maximum
data
rate
of
CC2510Fx/CC2511Fx opens up for burst
transmissions. A low average data rate link
(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.
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=01 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 735 µs24 to 168 µs25
when fRef is 26 MHz and from 799 µs24 to 182
µs25 when fRef is 24 MHz. The blanking interval
between each frequency hop is then 243 µs
and 263 µs respectively.
13.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.
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 13.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.
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 631 µs
smaller blanking interval than solution 1 when
fRef is 26 MHz and 683 µs smaller blanking
interval than solution 1 when fRef is 24 MHz).
13.17.6 Spectrum Efficient Modulation
13.17.3 Wideband Modulation not Using
Spread Spectrum
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.
Thus, higher data rates can be transmitted in
the same bandwidth using GFSK.
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
25
TEST0=0x0B. Please see DN110 [11] for
more details.
SWRS055G
Page 206 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
13.17.7 Low Cost Systems
13.17.8 Battery Operated 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.
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.
13.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.
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 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 60
Antenna
Filter
PA
CC2510Fx /
Balun
CC2511Fx
T/R
switch
T/R
switch
Figure 60: Block Diagram of CC2510Fx/CC2511Fx Usage with External Power Amplifier
SWRS055G
Page 207 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
13.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
7
-
R0
Not used
6
GDO2_INV
0
R/W
R/W
Invert output, i.e. select active low (1) / high (0)
5:0 GDO2_CFG[5:0]
000000
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
Drive strength control for I/O pins in output mode. Selects output drive
capability to account for low I/O supply voltage VDD on pin DVDD
0
1
Minimum drive capability. VDD equal or greater than 2.6 V
Maximum drive capability. VDD less than 2.6 V
6
GDO1_INV
0
R/W
R/W
Invert output
0
1
Active high
Active low
5:0 GDO1_CFG[5:0]
000000
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
SWRS055G
Page 208 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / 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.
Works as normal mode, setting 00, in RX.
10
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
SWRS055G
Page 209 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / 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
5
0
R/W
R/W
Reserved
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]
011110
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
SWRS055G
Page 210 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / 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.
SWRS055G
Page 211 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / 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
Note that MSK is only supported for data rates above 26 kBaud and GFSK is
only supported for data rate up until 250 kBaud. MSK cannot be used if
Manchester encoding/decoding is enabled.
3
MANCHESTER_EN
0
R/W
R/W
Manchester encoding/decoding enable
0
1
Disable
Enable
Note that Manchester encoding/decoding cannot be used at the same time
as using the FEC/Interleaver option or when using MSK modulation.
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
SWRS055G
Page 212 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / 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.
SWRS055G
Page 213 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
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
Deviation exponent
3
-
R0
Not used
TX
2:
0
DEVIATION_M[2:0]
111
R/W
2-FSK/
GFSK
Specifies the nominal frequency deviation from the carrier
frequency for a ‘0’ (-DEVIATN) and a ‘1’ (+DEVIATN) in a
mantissa-exponent format. The resulting deviation is given by:
fref
217
fdev
=
⋅(8 + DEVIATION _ M )⋅2DEVIATION _ E
The default values give ±47.607 kHz deviation when
Ref = 26 MHz and 43.945 kHz when fRef = 24 MHz.
f
MSK
RX
Specifies the fraction of a symbol period (1/8-8/8) during which a
phase change occurs (‘0’: +90deg, ‘1’: -90deg). Refer to the
SmartRF Studio software [8] for correct DEVIATNsetting when
using MSK.
2-FSK/
GFSK
Specifies the expected frequency deviation of incoming signal,
must be approximately right for demodulation to be performed
reliably and robustly
MSK
This settings has no effect
0xDF12: MCSM2 - Main Radio Control State Machine Configuration
Bit Field Name
Reset
R/W
Description
7:5
-
R0
Not used
4
3
RX_TIME_RSSI
RX_TIME_QUAL
0
0
R/W
R/W
Direct RX termination based on RSSI measurement (carrier sense).
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
R/W
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
SWRS055G
Page 214 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / 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
SWRS055G
Page 215 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / 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
SWRS055G
Page 216 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / 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
SWRS055G
Page 217 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / 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
SWRS055G
Page 218 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / 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
SWRS055G
Page 219 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / 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
SWRS055G
Page 220 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / 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
-
R0
Not used
2:0
000
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.
SWRS055G
Page 221 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / 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 FSCAL1
register 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 0oC to 85oC.
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 0oC to 85oC.
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
SWRS055G
Page 222 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / 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
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
R
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
SWRS055G
Page 223 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / 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 54, Page 199)
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
SWRS055G
Page 224 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / 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
5
4
3
CS
0
0
0
0
R
R
R
R
Carrier sense
PQT_REACHED
Preamble Quality reached
Channel is clear
CCA
SFD
Asserted when sync word has been sent / received, and de-asserted at the
end of the packet. In RX, this bit will de-assert when the optional address
check fails or the radio enter RX_OVERFLOW state. In TX this bit will de-
assert if the radio enters TX_UNDERFLOW state.
2:0
-
R0
Not used
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.
SWRS055G
Page 225 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
14 Voltage Regulators
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.
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.
The voltage regulator requires an external
decoupling capacitor connected to the DCOUPL
pin as described in Section 9 on Page 33.
14.1 Voltage Regulator Power-on
The voltage regulator is disabled when the
CC2510Fx/CC2511Fx is placed in power modes
PM2 or PM3 (see Section 12.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.
15 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.
SWRS055G
Page 226 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
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 12.4.7
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_MODE setting)
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 and de-asserted when the radio exits TX state. The signal is active low
011100
LNA_PD. Can be used to control an external LNA or RX/TX switch. Signal is asserted when the radio
enters RX state and de-asserted when the radio exits RX state. The signal is active low
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
SWRS055G
Page 227 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
16 Register Overview
MPAGE (0x93) - Memory Page Select....................................................................................50
MEMCTR (0xC7) - Memory Arbiter Control..........................................................................51
DPH0 (0x83) - Data Pointer 0 High Byte ................................................................................51
DPL0 (0x82) - Data Pointer 0 Low Byte..................................................................................51
DPH1 (0x85) - Data Pointer 1 High Byte ................................................................................51
DPL1 (0x84) - Data Pointer 1 Low Byte..................................................................................51
DPS (0x92) - Data Pointer Select.............................................................................................52
PSW (0xD0) - Program Status Word .......................................................................................52
ACC (0xE0) - Accumulator .....................................................................................................53
B (0xF0) - B Register...............................................................................................................53
SP (0x81) - Stack Pointer.........................................................................................................53
IEN1 (0xB8) - Interrupt Enable 1 Register ..............................................................................60
IEN2 (0x9A) - Interrupt Enable 2 Register..............................................................................61
TCON (0x88) - CPU Interrupt Flag 1 ......................................................................................62
S0CON (0x98) - CPU Interrupt Flag 2.....................................................................................63
S1CON (0x9B) - CPU Interrupt Flag 3....................................................................................63
IRCON (0xC0) - CPU Interrupt Flag 4....................................................................................64
IRCON2 (0xE8) - CPU Interrupt Flag 5 ..................................................................................65
IP1 (0xB9) - Interrupt Priority 1...............................................................................................65
IP0 (0xA9) - Interrupt Priority 0 ..............................................................................................66
PCON (0x87) - Power Mode Control.......................................................................................75
SLEEP (0xBE) - Sleep Mode Control......................................................................................76
CLKCON (0xC6) - Clock Control...........................................................................................79
FCTL (0xAE) - Flash Control..................................................................................................86
FWDATA (0xAF) - Flash Write Data .....................................................................................86
FADDRH (0xAD) - Flash Address High Byte.........................................................................86
FADDRL (0xAC) - Flash Address Low Byte..........................................................................86
FWT (0xAB) - Flash Write Timing .........................................................................................86
P0 (0x80) - Port 0.....................................................................................................................92
P1 (0x90) - Port 1.....................................................................................................................92
P2 (0xA0) - Port 2 ....................................................................................................................92
PERCFG (0xF1) - Peripheral Control......................................................................................92
ADCCFG (0xF2) - ADC Input Configuration .........................................................................93
P0SEL (0xF3) - Port 0 Function Select....................................................................................93
P1SEL (0xF4) - Port 1 Function Select....................................................................................93
P2SEL (0xF5) - Port 2 Function Select....................................................................................94
P0DIR (0xFD) - Port 0 Direction.............................................................................................95
P1DIR (0xFE) - Port 1 Direction .............................................................................................95
P2DIR (0xFF) - Port 2 Direction..............................................................................................95
P0INP (0x8F) - Port 0 Input Mode...........................................................................................95
P1INP (0xF6) - Port 1 Input Mode...........................................................................................95
P2INP (0xF7) - Port 2 Input Mode...........................................................................................96
P0IFG (0x89) - Port 0 Interrupt Status Flag.............................................................................96
P1IFG (0x8A) - Port 1 Interrupt Status Flag............................................................................96
P2IFG (0x8B) - Port 2 Interrupt Status Flag ............................................................................96
PICTL (0x8C) - Port Interrupt Control ....................................................................................97
P1IEN (0x8D) - Port 1 Interrupt Mask.....................................................................................97
DMAARM (0xD6) - DMA Channel Arm..............................................................................106
DMAREQ (0xD7) - DMA Channel Start Request and Status ...............................................107
DMA0CFGH (0xD5) - DMA Channel 0 Configuration Address High Byte.........................107
DMA0CFGL (0xD4) - DMA Channel 0 Configuration Address Low Byte..........................107
DMA1CFGH (0xD3) - DMA Channel 1 - 4 Configuration Address High Byte ...................107
SWRS055G
Page 228 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
DMA1CFGL (0xD2) - DMA Channel 1 - 4 Configuration Address Low Byte ....................107
DMAIRQ (0xD1) - DMA Interrupt Flag................................................................................108
ENDIAN (0x95) - USB Endianess Control (CC2511Fx).........................................................108
T1CNTH (0xE3) - Timer 1 Counter High..............................................................................117
T1CNTL (0xE2) - Timer 1 Counter Low...............................................................................117
T1CTL (0xE4) - Timer 1 Control and Status.........................................................................117
T1CCTL0 (0xE5) - Timer 1 Channel 0 Capture/Compare Control .......................................118
T1CC0H (0xDB) - Timer 1 Channel 0 Capture/Compare Value High..................................118
T1CC0L (0xDA) - Timer 1 Channel 0 Capture/Compare Value Low...................................118
T1CCTL1 (0xE6) - Timer 1 Channel 1 Capture/Compare Control .......................................119
T1CC1H (0xDD) - Timer 1 Channel 1 Capture/Compare Value High..................................119
T1CC1L (0xDC) - Timer 1 Channel 1 Capture/Compare Value Low...................................119
T1CCTL2 (0xE7) - Timer 1 Channel 2 Capture/Compare Control .......................................120
T1CC2H (0xDF) - Timer 1 Channel 2 Capture/Compare Value High ..................................120
T1CC2L (0xDE) - Timer 1 Channel 2 Capture/Compare Value Low ...................................120
T2CTL (0x9E) - Timer 2 Control...........................................................................................122
T2CT (0x9C) - Timer 2 Count ...............................................................................................122
T2PR (0x9D) - Timer 2 Prescaler ..........................................................................................122
WORTIME0 (0xA5) - Sleep Timer Low Byte.......................................................................124
WORTIME1 (0xA6) - Sleep Timer High Byte......................................................................125
WOREVT1 (0xA4) - Sleep Timer Event0 Timeout High......................................................125
WOREVT0 (0xA3) - Sleep Timer Event0 Timeout Low ......................................................125
WORCTRL (0xA2) - Sleep Timer Control............................................................................125
WORIRQ (0xA1) - Sleep Timer Interrupt Control................................................................125
T3CNT (0xCA) - Timer 3 Counter ........................................................................................129
T3CTL (0xCB) - Timer 3 Control..........................................................................................130
T3CCTL0 (0xCC) - Timer 3 Channel 0 Compare Control ....................................................131
T3CC0 (0xCD) - Timer 3 Channel 0 Compare Value ...........................................................131
T3CCTL1 (0xCE) - Timer 3 Channel 1 Compare Control ....................................................132
T3CC1 (0xCF) - Timer 3 Channel 1 Compare Value............................................................132
T4CNT (0xEA) - Timer 4 Counter.........................................................................................132
T4CTL (0xEB) - Timer 4 Control..........................................................................................133
T4CCTL0 (0xEC) - Timer 4 Channel 0 Compare Control ....................................................134
T4CC0 (0xED) - Timer 4 Channel 0 Compare Value............................................................134
T4CCTL1 (0xEE) - Timer 4 Channel 1 Compare Control.....................................................135
T4CC1 (0xEF) - Timer 4 Channel 1 Compare Value ............................................................135
TIMIF (0xD8) - Timers 1/3/4 Interrupt Mask/Flag................................................................136
ADCL (0xBA) - ADC Data Low ...........................................................................................140
ADCH (0xBB) - ADC Data High ..........................................................................................140
ADCCON1 (0xB4) - ADC Control 1.....................................................................................140
ADCCON2 (0xB5) - ADC Control 2.....................................................................................141
ADCCON3 (0xB6) - ADC Control 3.....................................................................................142
RNDL (0xBC) - Random Number Generator Data Low Byte...............................................144
RNDH (0xBD) - Random Number Generator Data High Byte..............................................144
ENCCS (0xB3) - Encryption Control and Status...................................................................146
ENCDI (0xB1) - Encryption Input Data ................................................................................146
ENCDO (0xB2) - Encryption Output Data ............................................................................146
WDCTL (0xC9) - Watchdog Timer Control..........................................................................148
U0CSR (0x86) - USART 0 Control and Status......................................................................154
U0UCR (0xC4) - USART 0 UART Control..........................................................................155
U0GCR (0xC5) - USART 0 Generic Control ........................................................................156
U0DBUF (0xC1) - USART 0 Receive/Transmit Data Buffer ...............................................156
U0BAUD (0xC2) - USART 0 Baud Rate Control.................................................................156
U1CSR (0xF8) - USART 1 Control and Status......................................................................157
SWRS055G
Page 229 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
U1UCR (0xFB) - USART 1 UART Control..........................................................................158
U1GCR (0xFC) - USART 1 Generic Control........................................................................158
U1DBUF (0xF9) - USART 1 Receive/Transmit Data Buffer................................................159
U1BAUD (0xFA) - USART 1 Baud Rate Control.................................................................159
0xDF40: I2SCFG0 - I2S Configuration Register 0.................................................................164
0xDF41: I2SCFG1 - I2S Configuration Register 1.................................................................165
0xDF42: I2SDATL - I2S Data Low Byte...............................................................................165
0xDF43: I2SDATH - I2S Data High Byte..............................................................................165
0xDF44: I2SWCNT - I2S Word Count Register ....................................................................165
0xDF45: I2SSTAT - I2S Status Register................................................................................166
0xDF46: I2SCLKF0 - I2S Clock Configuration Register 0....................................................166
0xDF47: I2SCLKF1 - I2S Clock Configuration Register 1....................................................166
0xDF48: I2SCLKF2 - I2S Clock Configuration Register 2....................................................166
0xDE00: USBADDR - Function Address..............................................................................176
0xDE01: USBPOW - Power/Control Register.......................................................................176
0xDE02: USBIIF - IN Endpoints and EP0 Interrupt Flags ....................................................176
0xDE04: USBOIF - Out Endpoints Interrupt Flags ...............................................................176
0xDE06: USBCIF - Common USB Interrupt Flags...............................................................177
0xDE07: USBIIE - IN Endpoints and EP0 Interrupt Enable Mask........................................177
0xDE09: USBOIE - Out Endpoints Interrupt Enable Mask...................................................178
0xDE0B: USBCIE - Common USB Interrupt Enable Mask..................................................178
0xDE0C: USBFRML - Current Frame Number (Low byte)..................................................178
0xDE0D: USBFRMH - Current Frame Number (High byte) ................................................179
0xDE0E: USBINDEX - Current Endpoint Index Register ....................................................179
0xDE10: USBMAXI - Max. Packet Size for IN Endpoint{1 - 5} .........................................179
0xDE11: USBCS0 - EP0 Control and Status (USBINDEX=0)..............................................179
0xDE11: USBCSIL - IN EP{1 - 5} Control and Status Low.................................................180
0xDE12: USBCSIH - IN EP{1 - 5} Control and Status High................................................180
0xDE13: USBMAXO - Max. Packet Size for OUT{1 - 5} Endpoint....................................180
0xDE14: USBCSOL - OUT EP{1 - 5} Control and Status Low ...........................................181
0xDE15: USBCSOH - OUT EP{1 - 5} Control and Status High..........................................181
0xDE16: USBCNT0 - Number of Received Bytes in EP0 FIFO (USBINDEX=0) ...............181
0xDE16: USBCNTL - Number of Bytes in EP{1 – 5} OUT FIFO Low...............................181
0xDE17: USBCNTH - Number of Bytes in EP{1 – 5} OUT FIFO High..............................182
0xDE20: USBF0 - Endpoint 0 FIFO......................................................................................182
0xDE22: USBF1 - Endpoint 1 FIFO......................................................................................182
0xDE24: USBF2 - Endpoint 2 FIFO......................................................................................182
0xDE26: USBF3 - Endpoint 3 FIFO......................................................................................182
0xDE28: USBF4 - Endpoint 4 FIFO......................................................................................182
0xDE2A: USBF5 - Endpoint 5 FIFO.....................................................................................182
RFIF (0xE9) - RF Interrupt Flags...........................................................................................186
RFIM (0x91) - RF Interrupt Mask .........................................................................................187
0xDF2F: IOCFG2 - Radio Test Signal Configuration (P1_7) ...............................................208
0xDF30: IOCFG1 - Radio Test Signal Configuration (P1_6)................................................208
0xDF31: IOCFG0 - Radio Test Signal Configuration (P1_5)................................................208
0xDF00: SYNC1 - Sync Word, High Byte ............................................................................208
0xDF01: SYNC0 - Sync Word, Low Byte.............................................................................208
0xDF02: PKTLEN - Packet Length .......................................................................................208
0xDF03: PKTCTRL1 - Packet Automation Control..............................................................209
0xDF04: PKTCTRL0 - Packet Automation Control..............................................................209
0xDF05: ADDR - Device Address.........................................................................................210
0xDF06: CHANNR - Channel Number .................................................................................210
0xDF07: FSCTRL1 - Frequency Synthesizer Control...........................................................210
0xDF08: FSCTRL0 - Frequency Synthesizer Control...........................................................210
SWRS055G
Page 230 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
0xDF09: FREQ2 - Frequency Control Word, High Byte.......................................................210
0xDF0A: FREQ1 - Frequency Control Word, Middle Byte ..................................................210
0xDF0B: FREQ0 - Frequency Control Word, Low Byte.......................................................210
0xDF0C: MDMCFG4 - Modem configuration......................................................................211
0xDF0D: MDMCFG3 - Modem Configuration.....................................................................211
0xDF0E: MDMCFG2 - Modem Configuration .....................................................................212
0xDF0F: MDMCFG1 - Modem Configuration......................................................................213
0xDF10: MDMCFG0 - Modem Configuration......................................................................213
0xDF11: DEVIATN - Modem Deviation Setting ..................................................................214
0xDF12: MCSM2 - Main Radio Control State Machine Configuration................................214
0xDF13: MCSM1 - Main Radio Control State Machine Configuration................................215
0xDF14: MCSM0 - Main Radio Control State Machine Configuration................................215
0xDF15: FOCCFG - Frequency Offset Compensation Configuration...................................216
0xDF16: BSCFG - Bit Synchronization Configuration .........................................................217
0xDF17: AGCCTRL2 - AGC Control ...................................................................................218
0xDF18: AGCCTRL1 - AGC Control ...................................................................................219
0xDF19: AGCCTRL0 - AGC Control ...................................................................................220
0xDF1A: FREND1 - Front End RX Configuration ...............................................................220
0xDF1B: FREND0 - Front End TX Configuration................................................................221
0xDF1C: FSCAL3 - Frequency Synthesizer Calibration.......................................................221
0xDF1D: FSCAL2 - Frequency Synthesizer Calibration.......................................................221
0xDF1E: FSCAL1 - Frequency Synthesizer Calibration.......................................................222
0xDF1F: FSCAL0 - Frequency Synthesizer Calibration .......................................................222
0xDF23: TEST2 – Various Test Settings...............................................................................222
0xDF24: TEST1 – Various Test Settings...............................................................................222
0xDF25: TEST0 - Various Test Settings................................................................................222
0xDF2E: PA_TABLE0 - PA Power Setting ..........................................................................222
0xDF36: PARTNUM - Chip ID[15:8] ...................................................................................223
0xDF37: VERSION - Chip ID[7:0] .......................................................................................223
0xDF38: FREQEST - Frequency Offset Estimate from Demodulator...................................223
0xDF39: LQI - Demodulator Estimate for Link Quality........................................................223
0xDF3A: RSSI - Received Signal Strength Indication ..........................................................223
0xDF3B: MARCSTATE - Main Radio Control State Machine State....................................224
0xDF3C: PKTSTATUS - Packet Status.................................................................................225
0xDF3D: VCO_VC_DAC - Current Setting from PLL Calibration Module.........................225
SWRS055G
Page 231 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
17 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)
[11] DN110 State Transition Times on CC111xFx and CC251xFx (swra191.pdf)
[12] DN505 RSSI Interpretation and Timing (swra114.pdf)
SWRS055G
Page 232 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
18 General Information
18.1 Document History
Revision
1.0
Date
Description/Changes
First release, preliminary
Preliminary status updated
2005.11.17
2006.05.11
2006.05.30
2006.07.06
2007.09.14
1.01
SWRS055
SWRS055A
SWRS055B
CC2511Fx, CC2510F8 and CC2510F16 added to datasheet.
Changed recommended PCB layout for package (QFN 36)
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
2007.09.19
- Removed CC2511 waiver information
- Changed layout on front page slightly and listing of abbreviations
- Changed register FREQESTand FSCTRL0max 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 12.1.5.2, describing limitations in data rates and system clock speed
SWRS055D
2007.09.20
- Stated in Section 2.8 that duty-cycling or reduced output power might be needed at 2480 -
2483.5 MHz when operating under FCC
- Stated that High VCO is not intended for use in the FSCAL2register
SWRS055G
Page 233 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
Revision
Date
Description/Changes
SWRS055E
2007.11.23
- TX power consumption @ 2.4 kBaud, −6 dBm output power changed to 16 mA on front
page
- 2.1: Added info saying that CC2510Fx/CC2511Fx is SW compatible with CC1110Fx/CC1111Fx
- Table 11: Added Power Down Guard Time
- Made consistent use of VDD for power with reference to power pin if so needed
- Table 19: Corrected HS RCOSC settings for CC2511Fx
- Table 28: C241 replaced by C242
- Table 29: Added manufacturer. Changed R264 to 1.5 kΩ ± 1%
- Replaced Figure 14, Figure 15, and Figure 16 to correct error in address ranges
- Corrected unimplemented RAM range in Section 10.2.3.1
- Table 32: Changed name on registers from AGCTRLnto AGCCTRLn(n = 0, 1, 2), Changed
name on PKTSTATUSregister and chip ID range
-Table 37: Added footer explaining opcode for ACALL and AJMP
- 10.5.1: Added note emphasizing that an interrupt must not be enabled without having proper
code located at the corresponding interrupt vector address.
- 10.5.2: Changes made to code example.
- Updated Sections 12.1.3, 12.1.5.1, and 12.1.5.3 with information about system clock source
change, and rewritten info about calibration in Section 12.1.5.3
- 12.1.5.1 and 12.1.7: Added info regarding retention of HS RCOSC calibration result.
- 12.1.5.2: Rewritten to improve readability
- CLKCON.OSCbit. Changed description. It is not longer necessary to set SLEEP.OSC_PD=0
to power up the HS crystal oscillator.
- Rewrote RAM range in Section 12.3.2
- Stated that P1_0 and P1_1 does not have pull capability in register P2INP
- 12.5: Chapter rewritten to be more consistent in the use of the terms “transfer” and “transfer
count”. Added new info regarding the LEN setting. Changes made to Figure 26 and Figure 27
- 12.6.2.1 and 12.6.2.2: Emphasized that the timer wraps around/is loaded with 0x0000 on the
next timer tick after the terminal count value is reached
- 12.8.2: Changed heading text and updated info about power modes. Changed code
examples.
- Fixed bit range for register FADDRHand stated that register WORTIME0and WORTIME1
defines a combined 16 bit word (WORTIME)
- Replaced all occurrences of WORCTLwith WORCTRL
- 12.8.4: Added more detailed info about interrupt and associated flag
12.9.2.1 and 12.9.2.2: Emphasized that the timer wraps around/is loaded with 0x00 on the
next timer tick after the terminal count value is reached
- USBCIF.RESUMIFchanged to USBCIF.RESUMEIFseveral places in the document
Figure 49: Corrected code example
- 13.11.2: - Corrected received symbol write and read location. Added note saying that when
FEC is used, CLKCON.CLKSPDmust be 000
- Added note in MDMCFG2register saying that MSK is only supported for data rates above 26
kBaud and GFSK is only supported for data rate up until 250 kBaud.
SWRS055G
Page 234 of 236
CC2511F8 - Not Recommended for New Designs
CC2510Fx / CC2511Fx
Revision
Date
Description/Changes
SWRS055F
2008.07.11
- Changed description of T1CCTL1.MODEbit.
- UxGDRchanged to UxGCRseveral places in the document
- Changed FREQ2.FREQ[21:16]reset value from 11110 to 011110
- Added changes to the DEVIATNregister, and added also info regarding the same register to
section 13.9.1 and 13.9.2
- 12.14.2.2: Changed description of the UxCSR.ACTIVEbit
- 12.8: Added note stating that the Sleep timer should not be used in active mode. This info
has in earlier edition only been available in section 8.1
- Table 11: Text changed from “For operation in the range 24 - 26 MHz, please refer to Table
4 for Operating Conditions” to “For operation below 26 MHz, please refer to Table 4 for
Operating Conditions”
- Added section 9.4: Reference Signal
- Table 57 and Table 58: Fsck changed to Fs
- 12.8.1: WOREVT1 = desired event0; changed to WOREVT1 = desired event0 >> 8;
- Table 39: Added footnote saying that the Sleep Timer compare interrupt has additional
interrupt mask bits and interrupt flags found in its SFRs
- Updated Figure 26
- Changed the description of PKTSTATUS.SFD
- MCSM0.FS_AUTOCAL=1changed to MCSM0.FS_AUTOCAL=01and MCSM0.FS_AUTOCAL=0
changed to MCSM0.FS_AUTOCAL=00throughout the document
- 13.1: Added note about SIDLE strobe
- Table 16, Table 71, and Section 13.17: Changed the state transition timing
- 13.10.3: Added reference to DN505 [12] regarding RSSI response time.
- Changes made to the description of I2SCFG0.ULAWEand I2SCFG0.ULAWC
- Section 13.9 and 13.9.2 and MDMCFG2register: Added info saying that Manchester
encoding/decoding should not be used when using MSK modulation.
- Table 11: Changes done to the condition/note on Power Down Guard Time
- Added Section 6.11.1 (info regarding the RESET_N pin being sensitive to noise)
- Changes made to the ADCCON1register.
- Changes made to Section 12.11.2.1 regarding how to generate pseudo-random bytes.
- Section 13.3.1.1: Added note explaining how the RFTXRXIF flag should be cleared when it
is not cleared by HW.
- The drive strength for I/O pins in output mode is not controlled by the PICTLregister but by
IOCFG1.GDO_DS. This has been changes several places in the data sheet.
- Removed the Sleep Timer trigger for the DMA since the Sleep Timer should not be used in
active mode.
- Section 13.12.1: Added note regarding RSSI response time when using
MCSM1.RXOFF_MODE=11
- Changed the description of the T2CTL.INTfield
- Several changes added throughout the document regarding calibration of the two RC
oscillators
- Added info several places in the document stating that the I2S interface will have
precedence in cases where other peripherals (except for the debug interface) are configured
to be on the same location even if the pins are configured to be general purpose I/O pins.
- QLP36 / QLP 36 replaced by QFN 36
- 12.8.2: Changes made to the description on how entering PM{0 - 2}, updating EVENT0, and
resetting the sleep timer should be done with respect to the 32 kHz clock source.
- Replaced Figure 6
SWRS055G
2013.02.20
Updated package and ordering information to RHH package.
SWRS055G
Page 235 of 236
PACKAGE OPTION ADDENDUM
www.ti.com
26-Sep-2013
PACKAGING INFORMATION
Orderable Device
CC2510F16RHH
CC2510F16RHHR
CC2510F16RHHT
CC2510F32RHH
CC2510F32RHHR
CC2510F32RHHT
CC2510F8RHH
Status Package Type Package Pins Package
Eco Plan Lead/Ball Finish
MSL Peak Temp
Op Temp (°C)
-40 to 85
-40 to 85
-40 to 85
-40 to 85
-40 to 85
-40 to 85
-40 to 85
-40 to 85
-40 to 85
Device Marking
Samples
Drawing
Qty
(1)
(2)
(3)
(4/5)
ACTIVE
VQFN
VQFN
VQFN
VQFN
VQFN
VQFN
VQFN
VQFN
VQFN
VQFN
VQFN
VQFN
VQFN
VQFN
VQFN
VQFN
VQFN
RHH
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
Green (RoHS
& no Sb/Br)
CU NIPDAU
CU NIPDAU
CU NIPDAU
CU NIPDAU
CU NIPDAU
CU NIPDAU
CU NIPDAU
CU NIPDAU
CU NIPDAU
CU NIPDAU
CU NIPDAU
CU NIPDAU
CU NIPDAU
CU NIPDAU
CU NIPDAU
CU NIPDAU
CU NIPDAU
Level-3-260C-168 HR
Level-3-260C-168 HR
Level-3-260C-168 HR
Level-3-260C-168 HR
Level-3-260C-168 HR
Level-3-260C-168 HR
Level-3-260C-168 HR
Level-3-260C-168 HR
Level-3-260C-168 HR
Level-3-260C-168 HR
Level-3-260C-168 HR
Level-3-260C-168 HR
Level-3-260C-168 HR
Level-3-260C-168 HR
Level-3-260C-168 HR
Level-3-260C-168 HR
Level-3-260C-168 HR
CC2510
F16
ACTIVE
ACTIVE
ACTIVE
ACTIVE
ACTIVE
ACTIVE
ACTIVE
ACTIVE
ACTIVE
ACTIVE
ACTIVE
ACTIVE
ACTIVE
ACTIVE
ACTIVE
NRND
RHH
RHH
RHH
RHH
RHH
RHH
RHH
RHH
RSP
RSP
RSP
RSP
RSP
RSP
RSP
RSP
2500
250
60
Green (RoHS
& no Sb/Br)
CC2510
F16
Green (RoHS
& no Sb/Br)
CC2510
F16
Green (RoHS
& no Sb/Br)
CC2510
F32
2500
250
Green (RoHS
& no Sb/Br)
CC2510
F32
Green (RoHS
& no Sb/Br)
CC2510
F32
Green (RoHS
& no Sb/Br)
CC2510
F8
CC2510F8RHHR
CC2510F8RHHT
CC2511F16RSP
CC2511F16RSPG3
CC2511F16RSPR
CC2511F16RSPRG3
CC2511F32RSP
CC2511F32RSPG3
CC2511F32RSPR
CC2511F8RSP
2500
250
Green (RoHS
& no Sb/Br)
CC2510
F8
Green (RoHS
& no Sb/Br)
CC2510
F8
490
Green (RoHS
& no Sb/Br)
CC2511-F16
CC2511-F16
CC2511-F16
CC2511-F16
CC2511-F32
CC2511-F32
CC2511-F32
CC2511-F8
490
Green (RoHS
& no Sb/Br)
2500
2500
490
Green (RoHS
& no Sb/Br)
Green (RoHS
& no Sb/Br)
Green (RoHS
& no Sb/Br)
490
Green (RoHS
& no Sb/Br)
2500
490
Green (RoHS
& no Sb/Br)
Green (RoHS
& no Sb/Br)
Addendum-Page 1
PACKAGE OPTION ADDENDUM
www.ti.com
26-Sep-2013
Orderable Device
Status Package Type Package Pins Package
Eco Plan Lead/Ball Finish
MSL Peak Temp
Op Temp (°C)
Device Marking
Samples
Drawing
Qty
(1)
(2)
(3)
(4/5)
CC2511F8RSPG3
CC2511F8RSPR
NRND
VQFN
VQFN
VQFN
RSP
36
36
36
490
Green (RoHS
& no Sb/Br)
CU NIPDAU
CU NIPDAU
CU NIPDAU
Level-3-260C-168 HR
Level-3-260C-168 HR
Level-3-260C-168 HR
CC2511-F8
NRND
NRND
RSP
RSP
2500
2500
Green (RoHS
& no Sb/Br)
CC2511-F8
CC2511-F8
CC2511F8RSPRG3
Green (RoHS
& no Sb/Br)
(1) The marketing status values are defined as follows:
ACTIVE: Product device recommended for new designs.
LIFEBUY: TI has announced that the device will be discontinued, and a lifetime-buy period is in effect.
NRND: Not recommended for new designs. Device is in production to support existing customers, but TI does not recommend using this part in a new design.
PREVIEW: Device has been announced but is not in production. Samples may or may not be available.
OBSOLETE: TI has discontinued the production of the device.
(2) Eco Plan - The planned eco-friendly classification: Pb-Free (RoHS), Pb-Free (RoHS Exempt), or Green (RoHS & no Sb/Br) - please check http://www.ti.com/productcontent for the latest availability
information and additional product content details.
TBD: The Pb-Free/Green conversion plan has not been defined.
Pb-Free (RoHS): TI's terms "Lead-Free" or "Pb-Free" mean semiconductor products that are compatible with the current RoHS requirements for all 6 substances, including the requirement that
lead not exceed 0.1% by weight in homogeneous materials. Where designed to be soldered at high temperatures, TI Pb-Free products are suitable for use in specified lead-free processes.
Pb-Free (RoHS Exempt): This component has a RoHS exemption for either 1) lead-based flip-chip solder bumps used between the die and package, or 2) lead-based die adhesive used between
the die and leadframe. The component is otherwise considered Pb-Free (RoHS compatible) as defined above.
Green (RoHS & no Sb/Br): TI defines "Green" to mean Pb-Free (RoHS compatible), and free of Bromine (Br) and Antimony (Sb) based flame retardants (Br or Sb do not exceed 0.1% by weight
in homogeneous material)
(3) MSL, Peak Temp. -- The Moisture Sensitivity Level rating according to the JEDEC industry standard classifications, and peak solder temperature.
(4) There may be additional marking, which relates to the logo, the lot trace code information, or the environmental category on the device.
(5) Multiple Device Markings will be inside parentheses. Only one Device Marking contained in parentheses and separated by a "~" will appear on a device. If a line is indented then it is a continuation
of the previous line and the two combined represent the entire Device Marking for that device.
Important Information and Disclaimer:The information provided on this page represents TI's knowledge and belief as of the date that it is provided. TI bases its knowledge and belief on information
provided by third parties, and makes no representation or warranty as to the accuracy of such information. Efforts are underway to better integrate information from third parties. TI has taken and
continues to take reasonable steps to provide representative and accurate information but may not have conducted destructive testing or chemical analysis on incoming materials and chemicals.
TI and TI suppliers consider certain information to be proprietary, and thus CAS numbers and other limited information may not be available for release.
In no event shall TI's liability arising out of such information exceed the total purchase price of the TI part(s) at issue in this document sold by TI to Customer on an annual basis.
Addendum-Page 2
PACKAGE MATERIALS INFORMATION
www.ti.com
8-May-2013
TAPE AND REEL INFORMATION
*All dimensions are nominal
Device
Package Package Pins
Type Drawing
SPQ
Reel
Reel
A0
B0
K0
P1
W
Pin1
Diameter Width (mm) (mm) (mm) (mm) (mm) Quadrant
(mm) W1 (mm)
CC2510F16RHHR
CC2510F16RHHT
CC2510F32RHHR
CC2510F32RHHT
CC2510F8RHHR
CC2510F8RHHT
CC2511F16RSPR
CC2511F32RSPR
CC2511F8RSPR
VQFN
VQFN
VQFN
VQFN
VQFN
VQFN
VQFN
VQFN
VQFN
RHH
RHH
RHH
RHH
RHH
RHH
RSP
RSP
RSP
36
36
36
36
36
36
36
36
36
2500
250
330.0
330.0
330.0
330.0
330.0
330.0
330.0
330.0
330.0
16.4
16.4
16.4
16.4
16.4
16.4
16.4
16.4
16.4
6.3
6.3
6.3
6.3
6.3
6.3
6.3
6.3
6.3
6.3
6.3
6.3
6.3
6.3
6.3
6.3
6.3
6.3
1.5
1.5
1.5
1.5
1.5
1.5
1.1
1.1
1.1
12.0
12.0
12.0
12.0
12.0
12.0
12.0
12.0
12.0
16.0
16.0
16.0
16.0
16.0
16.0
16.0
16.0
16.0
Q2
Q2
Q2
Q2
Q2
Q2
Q2
Q2
Q2
2500
250
2500
250
2500
2500
2500
Pack Materials-Page 1
PACKAGE MATERIALS INFORMATION
www.ti.com
8-May-2013
*All dimensions are nominal
Device
Package Type Package Drawing Pins
SPQ
Length (mm) Width (mm) Height (mm)
CC2510F16RHHR
CC2510F16RHHT
CC2510F32RHHR
CC2510F32RHHT
CC2510F8RHHR
CC2510F8RHHT
CC2511F16RSPR
CC2511F32RSPR
CC2511F8RSPR
VQFN
VQFN
VQFN
VQFN
VQFN
VQFN
VQFN
VQFN
VQFN
RHH
RHH
RHH
RHH
RHH
RHH
RSP
RSP
RSP
36
36
36
36
36
36
36
36
36
2500
250
336.6
336.6
336.6
336.6
336.6
336.6
378.0
378.0
378.0
336.6
336.6
336.6
336.6
336.6
336.6
70.0
28.6
28.6
2500
250
28.6
28.6
2500
250
28.6
28.6
2500
2500
2500
346.0
346.0
346.0
70.0
70.0
Pack Materials-Page 2
IMPORTANT NOTICE
Texas Instruments Incorporated and its subsidiaries (TI) reserve the right to make corrections, enhancements, improvements and other
changes to its semiconductor products and services per JESD46, latest issue, and to discontinue any product or service per JESD48, latest
issue. Buyers should obtain the latest relevant information before placing orders and should verify that such information is current and
complete. All semiconductor products (also referred to herein as “components”) are sold subject to TI’s terms and conditions of sale
supplied at the time of order acknowledgment.
TI warrants performance of its components to the specifications applicable at the time of sale, in accordance with the warranty in TI’s terms
and conditions of sale of semiconductor products. Testing and other quality control techniques are used to the extent TI deems necessary
to support this warranty. Except where mandated by applicable law, testing of all parameters of each component is not necessarily
performed.
TI assumes no liability for applications assistance or the design of Buyers’ products. Buyers are responsible for their products and
applications using TI components. To minimize the risks associated with Buyers’ products and applications, Buyers should provide
adequate design and operating safeguards.
TI does not warrant or represent that any license, either express or implied, is granted under any patent right, copyright, mask work right, or
other intellectual property right relating to any combination, machine, or process in which TI components or services are used. Information
published by TI regarding third-party products or services does not constitute a license 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 significant portions 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. TI is not responsible or liable for such altered
documentation. Information of third parties may be subject to additional restrictions.
Resale of TI components or services with statements different from or beyond the parameters stated by TI for that component or service
voids all express and any implied warranties for the associated TI component or service and is an unfair and deceptive business practice.
TI is not responsible or liable for any such statements.
Buyer acknowledges and agrees that it is solely responsible for compliance with all legal, regulatory and safety-related requirements
concerning its products, and any use of TI components in its applications, notwithstanding any applications-related information or support
that may be provided by TI. Buyer represents and agrees that it has all the necessary expertise to create and implement safeguards which
anticipate dangerous consequences of failures, monitor failures and their consequences, lessen the likelihood of failures that might cause
harm and take appropriate remedial actions. Buyer will fully indemnify TI and its representatives against any damages arising out of the use
of any TI components in safety-critical applications.
In some cases, TI components may be promoted specifically to facilitate safety-related applications. With such components, TI’s goal is to
help enable customers to design and create their own end-product solutions that meet applicable functional safety standards and
requirements. Nonetheless, such components are subject to these terms.
No TI components are authorized for use in FDA Class III (or similar life-critical medical equipment) unless authorized officers of the parties
have executed a special agreement specifically governing such use.
Only those TI components which TI has specifically designated as military grade or “enhanced plastic” are designed and intended for use in
military/aerospace applications or environments. Buyer acknowledges and agrees that any military or aerospace use of TI components
which have not been so designated is solely at the Buyer's risk, and that Buyer is solely responsible for compliance with all legal and
regulatory requirements in connection with such use.
TI has specifically designated certain components as meeting ISO/TS16949 requirements, mainly for automotive use. In any case of use of
non-designated products, TI will not be responsible for any failure to meet ISO/TS16949.
Products
Applications
Audio
www.ti.com/audio
amplifier.ti.com
dataconverter.ti.com
www.dlp.com
Automotive and Transportation www.ti.com/automotive
Communications and Telecom www.ti.com/communications
Amplifiers
Data Converters
DLP® Products
DSP
Computers and Peripherals
Consumer Electronics
Energy and Lighting
Industrial
www.ti.com/computers
www.ti.com/consumer-apps
www.ti.com/energy
dsp.ti.com
Clocks and Timers
Interface
www.ti.com/clocks
interface.ti.com
logic.ti.com
www.ti.com/industrial
www.ti.com/medical
Medical
Logic
Security
www.ti.com/security
Power Mgmt
Microcontrollers
RFID
power.ti.com
Space, Avionics and Defense
Video and Imaging
www.ti.com/space-avionics-defense
www.ti.com/video
microcontroller.ti.com
www.ti-rfid.com
www.ti.com/omap
OMAP Applications Processors
Wireless Connectivity
TI E2E Community
e2e.ti.com
www.ti.com/wirelessconnectivity
Mailing Address: Texas Instruments, Post Office Box 655303, Dallas, Texas 75265
Copyright © 2013, Texas Instruments Incorporated
相关型号:
CC2510F8RHH
Low-Power SoC (System-on-Chip) with MCU, Memory, 2.4 GHz RF Transceiver, and USB Controller
TI
CC2510F8RHHR
Low-Power SoC (System-on-Chip) with MCU, Memory, 2.4 GHz RF Transceiver, and USB Controller
TI
CC2510F8RHHT
Low-Power SoC (System-on-Chip) with MCU, Memory, 2.4 GHz RF Transceiver, and USB Controller
TI
CC2510F8RSP
Low-Power SoC (System-on-Chip) with MCU, Memory, 2.4 GHz RF Transceiver, and USB Controller
TAOS
CC2510F8RSP
Low-Power SoC (System-on-Chip) with MCU, Memory, 2.4 GHz RF Transceiver, and USB Controller
TI
CC2510F8RSPR
Low-Power SoC (System-on-Chip) with MCU, Memory, 2.4 GHz RF Transceiver, and USB Controller
TAOS
CC2510F8RSPR
Low-Power SoC (System-on-Chip) with MCU, Memory, 2.4 GHz RF Transceiver, and USB Controller
TI
CC2510FX
Low-Power SoC (System-on-Chip) with MCU, Memory, 2.4 GHz RF Transceiver, and USB Controller
TAOS
CC2510FX
Low-Power SoC (System-on-Chip) with MCU, Memory, 2.4 GHz RF Transceiver, and USB Controller
TI
CC2510FX_10
Low-Power SoC (System-on-Chip) with MCU, Memory, 2.4 GHz RF Transceiver, and USB Controller
TI
©2020 ICPDF网 联系我们和版权申明