Low Power mode on nrf5340 DK

Hello,

I am using nrf5340 DK with SDK version 2.1.0. I am trying to implement a low power mode functionality where I would like the execution flow to return to the same place after the device wakes up. I have gone through the state.h file which lists the power management states available. I have a few questions regarding the states:

  1. Which PM state would be suitable for my scenario: PM_STATE_RUNTIME_IDLE or PM_STATE_SUSPEND_TO_IDLE ?
  2. I didn't find any sample code which shows how to put the device in low power mode. Could you please point me in the right direction?
  3. Do I have to specifically turn off GPIOs, UARTs before entering low power mode? If yes, what is the correct way to do that?
Parents
  • Hi,

    For your first question, it sounds that both could be suitable depending on your desired handling of peripherals and your required wake-up latency. PM_STATE_RUNTIME does not change the power management state of peripherals, while PM_STATE_SUSPEND_TO_IDLE may put peripherals into a low-power state, depending on whether device power management is enabled and whether the peripheral driver has it implemented.

    For question two and three I think you will find this guide by Wes Cherry helpful:  Optimizing Power on nRF5340 SoC Designs
    He guides you through the power management system for nRF5340 and at the end he includes a sample project.

  • Thank you for sharing the link!

    I have a few questions regarding peripherals. Let's say that I would like to disable GPIO and UART before going to sleep. What I am not able to understand is do I have to explicitly turn these off? If yes, could you share some sample example where this is being done?

    Also, is k_sleep the same as putting the device in low power mode?

Reply
  • Thank you for sharing the link!

    I have a few questions regarding peripherals. Let's say that I would like to disable GPIO and UART before going to sleep. What I am not able to understand is do I have to explicitly turn these off? If yes, could you share some sample example where this is being done?

    Also, is k_sleep the same as putting the device in low power mode?

Children
Related