RM0082
Power and clock management
Doc ID 018672 Rev 1
819/844
37.2.2
DOZE (reset state)
DOZE is the first state activated after reset.
In this state CPU is running with RTC or MAIN Oscillator, according to bit set in
PRPH_CLK_CFG.rtc_disable. After reset MAIN Oscillator is selected (that allows to have
systems without RTC Oscillator).
It is possible to select a division of MAIN Oscillator frequency through
CORE_CLK_CFG.osci24_div_en to enable and CORE_CLK_CFG.osci24_div_ratio bits to
select ratio.
Better results, to reduce power consumption, are achieved with RTC Oscillator.
Code execution
In DOZE state code has to run from internal memory (Boot ROM, internal RAM, Cache and
TCM if present) or from external memory Serial Flash or DRAM. To run from DRAM it is
necessary to use PLL2 for the SDRAM controller (asynchronous DRAM mode) with a
frequency higher than minimum supported by used DRAM.
It is also recommended, if wake-up response allows it, to put DDR in self refresh mode.
Transition to other state is software controlled through SCCTRL ModeCtrl bits. It allows
program directly in the NORMAL state, in this case the hardware will execute transitioning
as several steps. Less than five clock cycles are required to change from one state to the
other.
37.2.3 SLOW
In SLOW state MAIN Oscillator is used to clock CPU.
It is possible to select a division of MAIN Oscillator frequency through
CORE_CLK_CFG.osci24_div_en to enable and CORE_CLK_CFG.osci24_div_ratio bits to
select ratio.
In SLOW state there are the same constrains of DOZE state for code execution.
Transition to other state is software controlled through SCCTRL Mode Ctrl bits.
It is allowed to program DOZE state and nothing else is required
To go in NORMAL state, it is necessary to program PLL1 at the desired frequency. PLL has
to be stable before switch in NORMAL, two ways are possible:
●
Controlled by software, verifying PLL1_CTR.pll_lock bit, applicable if Dither is disable
(PLL1_CTR.pll_control1.DitherMode).
●
Controlled by Hardware. An intermediate hardware state waits for PLL stabilization
using a pre programmed delay, use SCPLLCTRL.PllTime for time delay with
SCPLLCTRL PllOver disabled. See formula in
Section 37.3: Dynamic frequency
to calculate the proper delay.
37.2.4 NORMAL
In NORMAL state it is possible to apply the power management techniques described in
following sections.