The clock control system can source the system clocks from a range of high and low frequency oscillators, and distribute them to modules based upon a module's individual requirements.
Clock generation and distribution is handled automatically by PMU to optimize current consumption. This optimization will affect the predictability of the oscillators' startup times under different device operating conditions. However, it is possible to bypass some of the power saving mechanisms by explicitly keeping the system on constant latency sub mode (more about constant latency in System ON mode) and/or manipulating START/STOP clock task registers.
The following are the available clock signal sources:
The clock and oscillator resources are configured and controlled via the CLOCK peripheral as illustrated below.
The HFCLK clock controller provides several clocks in the system.
These are as follows:
The HFCLK controller uses the following high frequency clock (HFCLK) sources:
For illustration, see Clock and oscillator setup.
The HFCLK controller automatically provides the clock(s) requested by the system. If the system does not request any clocks from the HFCLK controller, the controller switches off all its clock sources and enters a power saving mode.
The HFINT source is used when HFCLK is requested and HFXO has not been started.
The HFXO is started by triggering the HFCLKSTART task and stopped using the HFCLKSTOP task. A HFCLKSTARTED event is generated when the HFXO has started and its frequency is stable.
The system supports several low frequency clock sources.
As illustrated in Clock and oscillator setup, the system supports the following low frequency clock sources:
The LFCLK clock controller and all LFCLK clock sources are always switched off when in System OFF mode.
The LFCLK clock is started by first selecting the preferred clock source in the LFCLKSRC register and then triggering the LFCLKSTART task. LFXO is highly recommended as the LFCLK clock source, since the LFRC has a large frequency variation.
Switching between LFCLK clock sources can be done without stopping the LFCLK clock. A LFCLK clock source which is running prior to triggering the LFCLKSTART task continues to run until the selected clock source is available. After that the clock sources will be switched. Switching between clock sources will stretch a clock pulse by 0.5 to 1.0 clock cycle (i.e. will delay rising edge by 0.5 to 1.0 clock cycle).
A LFCLKSTARTED event will be generated when the selected LFCLK clock source has started.
A LFCLKSTOP task will prevent global requesting of the LFCLK clock, unless a system component such as WDT or modem requires the LFCLK, in which case the clock is not stopped. The LFCLKSTOP task should only be triggered after the STATE field in the LFCLKSTAT register indicates a LFCLK running state.
The default source of the low frequency clock (LFCLK) is the 32.768 kHz RC oscillator (LFRC).
The LFRC frequency is affected by variation in temperature.
Symbol | Description | Min. | Typ. | Max. | Units |
---|---|---|---|---|---|
fNOM_HFINT |
Nominal output frequency |
64 | MHz | ||
fTOL_HFINT |
Frequency tolerance |
±1 | ±5 | % | |
tSTART_HFINT |
Startup time |
3.2 | µs |
Symbol | Description | Min. | Typ. | Max. | Units |
---|---|---|---|---|---|
fNOM_HFXO |
Nominal output frequency |
64 | MHz | ||
fTOL_HFXO |
Frequency tolerance |
±1 | ppm | ||
tSTART_HFXO |
Startup time |
2 | ms |
Symbol | Description | Min. | Typ. | Max. | Units |
---|---|---|---|---|---|
fNOM_LFXO |
Frequency |
32.768 | kHz | ||
fTOL_LFXO |
Frequency tolerance |
±20 | ppm | ||
tSTART_LFXO |
Startup time |
450 | ms |
Symbol | Description | Min. | Typ. | Max. | Units |
---|---|---|---|---|---|
fNOM_LFRC |
Nominal frequency |
32.768 | kHz | ||
fTOL_LFRC |
Frequency tolerance |
30 | % | ||
tSTART_LFRC |
Startup time |
600 | µs |