PMU Sleep mode

In Sleep mode, the system clock to the ARM Cortex-M0+ core is stopped and execution of instructions is suspended until either a reset or an interrupt occurs.

Peripheral functions, if selected to be clocked in the SYSAHBCLKCTRL register, continue operation during Sleep mode and may generate interrupts to cause the processor to resume execution. Sleep mode eliminates dynamic power used by the processor itself, memory systems and related controllers, and internal buses. The processor state and registers, peripheral registers, and internal SRAM values are maintained, and the logic levels of the pins remain static.

Power configuration in Sleep mode

Power consumption in Sleep mode is configured by the same settings as in Active mode:

  • The clock remains running.
  • The system clock frequency remains the same as in Active mode, but the processor is not clocked.
  • Analog and digital peripherals are selected as in Active mode.

Programming Sleep mode

The following steps must be performed to enter Sleep mode:

  1. The PM bits in the PCON register must be set to the default value 0x0.
  2. The SLEEPDEEP bit in the ARM Cortex-M0+ SCR register must be set to zero (PMU Low power modes in the ARM Cortex-M0+ core).
  3. Use the ARM Cortex-M0+ Wait-For-Interrupt (WFI) instruction.

Wake-up from Sleep mode

Sleep mode is exited automatically when an interrupt enabled by the NVIC arrives at the processor or a reset occurs. After wake-up due to an interrupt, the microcontroller returns to its original power configuration defined by the contents of the PDRUNCFG and the SYSAHBCLKDIV registers. If a reset occurs, the microcontroller enters the default configuration in Active mode.