English
Language : 

CC2510F16 Datasheet, PDF (123/244 Pages) Texas Instruments – Low-Power SoC (System-on-Chip) with MCU, Memory, 2.4 GHz RF Transceiver, and USB Controller
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.
Note: The Sleep timer should not be used
in active mode
12.8.1 Sleep Timer Operation
This section describes the operation of the
timer.
Note: In this section of the document, fRef is
used to denote the reference frequency for
the synthesizer.
For CC2510Fx fref = fXOSC and for
CC2511Fx,
f ref
=
f XOSC
2
When referring to the low power RCOSC,
calibrated values are assumed
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.
The Sleep Timer has a programmable timing
event called Event 0. While in PM0, PM1, or
PM2, reaching Event 0 will make the
CC2510Fx/CC2511Fx enter active mode.
The time between two consecutive Event 0’s
(tEvent0) is programmed with a mantissa value
CC2510Fx / CC2511Fx
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:
t Event 0
=
750
f ref
⋅ EVENT 0 ⋅ 25⋅WOR _ RES
If the 32.768 kHz crystal oscillator is used to
clock the Sleep Timer, tEvent0 is calculated as
follows:
t Event 0
=
1
32768
⋅
EVENT 0 ⋅ 25⋅WOR _ RES
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).
t SLEEPmin
=
750 ⋅ 384
f ref
When the Sleep Timer is clocked by the
32.768 kHz crystal oscillator, tSLEEPmin = 11.72
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
EVENT0 and/or entering PM{0 - 2} correctly:
Please note that the update rate of the
WORTIME0 register will depend on the Sleep
Timer resolution, configured through
WORCTRL.WOR_RES.
// Alignment of entering PM{0 – 2} to a positive edge on the 32 kHz clock source
char temp = WORTIME0;
while(temp == WORTIME0);
// Wait until a positive 32 kHz edge
PCON |= 0x01;
// Enter PM{0 – 2}
// Alignment of updating EVENT0 to a positive edge on the 32 kHz clock source
char temp = WORTIME0;
while(temp == WORTIME0);
// Wait until a positive 32 kHz edge
WOREVT1 = desired event0 >> 8;
// Set EVENT0, high byte
WOREVT0 = desired event0;
// 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);
// Wait until a positive 32 kHz edge
WOREVT1 = desired event0 >> 8;
// Set EVENT0, high byte
WOREVT0 = desired event0;
// Set EVENT0, low byte
PCON |= 0x01;
// Enter PM{0 – 2}
SWRS055F
Page 123 of 241