nRF52840 Power Management when idle

Greetings,

I am looking into power management options for our custom board using the nrf52840 with the nRF Connect SDK.

I wanted to ask for a clarification if possible.

Do I have to enable anything other than CONFIG_PM=y option to enable the system to go into low power mode when the idle thread is running?

Do I have to use the CAF for that to happen?

Thank you!

Best Regards,

Stavros

  • Hello Stavros,

     You can disable UART by using CONFIG_SERIAL=n.

    Thanks.

    BR

    Kazi

  • Hello Kazi.

    Thank you for your quick response!

    I did read about disabling the UART in the documentation, thank you for suggesting this (although in our case we need the UART for communication and DFU so that is not possible).

    If you could confirm my question as well it would be really helpful!

    When CONFIG_PM=y configuration option is selected the MCU will go into low-power/sleep mode when the idle thread is running, is that correct?Can you please confirm this?

    Thank you!

    BR

    Stavros

  • Hello Stavros,

    CONFIG_PM = y only includes the library which is used for the power state of peripherals. So, setting this configuration does not help MCU to go into low-power/sleep mode. 

    But if you want to use the power management library to turn off different peripherals before going to sleep, you need to enable this in config so the correct libraries are included in the build to turn the peripherals off. However, you still need to handle the power state of some of the peripherals in the code manually through this library.

    Thanks.

    BR
    Kazi

  • Hello Kazi,

    So the quote below is false? Seems this question has been asked before and a Nordic enginner confirmed this in this ticket (question 2).

    From the Zephyr docmentation:

    "The kernel enters the idle state when it has nothing to schedule. If enabled via the CONFIG_PM Kconfig option, the Power Management Subsystem can put an idle system in one of the supported power states, based on the selected power management policy and the duration of the idle time allotted by the kernel."

    Form the quote above I understand that when this configuration is enabled when the system runs the idle thread the Power Management Subsystem puts the device in one of the supported power states.

    It is also stated in this video by Zephyr that states "that when the idle thread is called and CONFIG_PM is enabled it calls the pm_system_suspend() function which takes care of the por management of the MCU"

    If this is indeed not the case are there any samples/examples that show how to use this library and put the device to a low-power state when the idle thread is running? I am refering to System PM not Device PM.

    Thank you

    Best regards,

    Stavros

  • Hi Kazi,

    Kind reminder if you have any updates or feedback on my previous message they will be greatly appreaciated!

    Thank you!

    BR

    Savros

Related