This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

WFE, WFI, and SystemON mode differences

HI.  I used a translator.

I am using the nRF52840 DK and SDK15.

I want to save power when there is no input from the switch.

I want to wake up when a switch input (external interrupt) occurs.

(The stm32 chip used STOP mode.)

I found out that there is WFE, WFI, System ON mode, System OFF mode, sd_app_evt_wait() through the search.

But I do not know exactly what it does.

Could you explain the difference?

Thank you in advance.

  • Hi,

    System ON mode typically means that the CPU and most peripherals are powered down. However, the low frequency clock and at least RTC0 is active and used for SoftDevice time keeping (assuming you use it), so that the nRF can wake up on a BLE event. It can also wake up on interrupts from any peripheral. To enter system ON low power mode, put the CPU to sleep using WFE or WFI. You can see a short explanation of WFE and WFI in this post. System ON is the most used low power mode,and should be the default state of most applications. You can see that most SDK examples enters system ON low power mode in the main loop. This is typically achieved by calling nrf_pwr_mgmt_run() which calls sd_app_evt_wait() if a SoftDevice is used or __WFE ()if not. (sd_app_evt_wait() itself uses WFE internally).

    In system off mode, all clocks and most peripherals are fully disabled. There are only a few limited wake up sources from system off: GPIO, NFC and pin reset. The device always resets when waking up from system off.

Related