22.3.2 Operation
The desired low frequency oscillator for the CRYOTIMER operation can be selected by using OSCSEL in CRYOTIMER_CTRL. The
selection must be made before enabling the CRYOTIMER, and it must be ensured that the selected oscillator is ready. This can be
checked by observing LFXORDY or LFRCORDY (depending upon the oscillator selection) in CMU_STATUS. Note that the ULFRCO is
always ready.
By default the CRYOTIMER is held in reset. It can be started by setting EN in CRYOTIMER_CTRL. The CRYOTIMER, when running, is
reset by clearing EN.
The timer counts at a frequency determined by PRESC in CRYOTIMER_CTRL. This value should be set before the CRYOTIMER is
enabled. Setting PRESC to 0 gives the maximum resolution, while higher values allow longer periods, see
Resolution vs Maximum Wakeup Event/Interrupt Period, F
The 32-bit Counter provides 32 different options for selecting the duration between the Wakeup events. The selected duration is speci-
fied by CRYOTIMER_PERIODSEL. It should be configured before the CRYOTIMER is enabled.
T
WU
= (2
PRESC
x 2
PERIODSEL
)/f
CRYOCLK
Figure 22.2. Duration Between the CRYOTIMER Wakeup Events in Seconds
Table 22.1. CRYOTIMER Resolution vs Maximum Wakeup Event/Interrupt Period, F
CRYOCLK
= 32768 Hz
CRYOTIMER_CTRL_PRESC
Resolution, 2
PRESC
/f
CRYOCLK
Maximum Wakeup event/Interrupt Period
DIV1
30.5 µs
36.4 hours
DIV2
61 µs
72.8 hours
DIV4
122 µs
145.6 hours
DIV8
244 µs
12 days
DIV16
488 µs
24 days
DIV32
977 µs
48 days
DIV64
1.95 ms
97 days
DIV128
3.91 ms
194 days
The 32-bit counter value of the CRYOTIMER can be read using the CRYOTIMER_CNT register.
The PRS output pulses of the CRYOTIMER are 1 CRYOCLK clock cycle wide. However, if the PRESC and PERIODSEL are both set to
0, the width of these pulses will be half CRYOCLK time period.
The CRYOTIMER wakeup events set the flag in the CRYOTIMER_IF. Interrupt on this event can be enabled by using the CRYOTIM-
ER_IEN register.
The CRYOTIMER is always reset by the External Pin and Power-On resets. Additionally, by using EMU_CTRL, it can also be config-
ured to reset by Watchdog, lockup, and system request resets.
Note:
The CRYOTIMER configuration bits/registers should only be changed when EN in CRYOTIMER_CTRL is cleared.
22.3.3 Debug Mode
When the CPU is halted in debug mode, the CRYOTIMER can be configured to either continue to run or to be frozen. This is configured
using DEBUGRUN in CRYOTIMER_CTRL.
22.3.4 Energy Mode Availability
The CRYOTIMER is available in all energy modes. Wakeup from EM2 Deep Sleep and EM3 Stop to EM0 Active can be performed
using the regular interrupt as discussed in
. To generate wakeup events during EM4 Hibernate/Shutoff, EM4WU in
CRYOTIMER_EM4WUEN must be set to 1. Since the interrupt flag serves as the wakeup source, it must be cleared by software after
exiting a low energy mode. Refer to
10. EMU - Energy Management Unit
for details on how to configure the EMU.
Reference Manual
CRYOTIMER - Ultra Low Energy Timer/Counter
silabs.com
| Building a more connected world.
Rev. 1.1 | 747