16.6.2.8 Sleep Mode Controller

Sleep mode is activated by the Wait For Interrupt instruction (WFI). The Idle bits in the Sleep Mode register (SLEEP.IDLE) and the SLEEPDEEP bit of the System Control register of the CPU should be used as argument to select the level of the sleep mode.

There are two main types of sleep mode:

  • IDLE mode: The CPU is stopped. Optionally, some synchronous clock domains are stopped, depending on the IDLE argument. Regulator operates in normal mode.
  • STANDBY mode: All clock sources are stopped, except those where the RUNSTDBY bit is set. Regulator operates in low-power mode. Before entering standby mode the user must make sure that a significant amount of clocks and peripherals are disabled, so that the voltage regulator is not overloaded.
    Table 16-3. Sleep Mode Entry and Exit Table
    ModeLevelMode EntryWake-Up Sources
    IDLE0SCR.SLEEPDEEP = 0
SLEEP.IDLE=Level
WFISynchronous(2) (APB, AHB), asynchronous(1)
    1Synchronous (APB), asynchronous
    2Asynchronous
    STANDBYSCR.SLEEPDEEP = 1
WFIAsynchronous
    Note:
    1. Asynchronous: interrupt generated on generic clock or external clock or external event.
    2. Synchronous: interrupt generated on the APB clock.
    Table 16-4. Sleep Mode Overview
    Sleep
ModeCPU
ClockAHB
ClockAPB
ClockOscillatorsMain
ClockRegulator
ModeRAM
Mode
    ONDEMAND = 0ONDEMAND = 1
    RUNSTDBY=0RUNSTDBY=1RUNSTDBY=0RUNSTDBY=1
    Idle 0StopRunRunRunRunRun if requestedRun if requestedRunNormalNormal
    Idle 1StopStopRunRunRunRun if requestedRun if requestedRunNormalNormal
    Idle 2StopStopStopRunRunRun if requestedRun if requestedRunNormalNormal
    StandbyStopStopStopStopRunStopRun if requestedStopLow powerLow power