Power Management for an nRF54l15 custom board

Context:

  • VS Code
  • NCS 2.9
  • nRF54l15 custom board
  • Mac OS Sequoia15.5
  • peripheral_lbs sample project

Goal:

The goal of this project is to create a bluetooth beacon device that periodically advertises a custom payload and in between advertisements goes into a low power sleep state. This project is based on the NCS v2.9 sdk and toolchain starting with the peripheral_lbs sample project as the foundation. The final application is run on a custom board using the nRF54l15 chip, with the only current deviation from the auto-generated files being a change to enable the clock. The bluetooth beacon functionality has been completed using the ext_adv backend. The issue I am currently having trouble with is the implementation of power management for the nRF54l15 chip within NCS 2.9.

I would like the device to go into a low power state, lower than 5uA, in between advertisement events, however the current power consumption during sleep is closer to 90uA. I initially began by attempting to implement "CONFIG_PM" however that flag was automatically disabled as my board was missing the "HAS_PM" attribute. After further investigation as well as testing "CONFIG_PM" on the nrf54l15 dev-kit board files, the documentation seems to suggest that CONFIG_PM has been depreciated or replaced by system and device power control such as CONFIG_DEVICE_PM. After implementing the CONFIG_DEVICE_PM type flags, the power consumption during sleep did not appreciably change. 

Questions:

  • Can you explain how to implement power management on an nRF54l15 chip in NCS 2,9 or link relevant documentation on the implementation for reference in case something was missed?
  • Has the CONFIG_PM backend been deprecated in more recent iterations of NCS or has the backend not been created for the nRF54l15 chip within NCS 2.9?
  • Are the CONFIG_DEVICE_PM/CONFIG_PM_DEVICE_SYSTEM_MANAGED flags a replacement for CONFIG_PM or additional power management modules?
  • Are there additional steps required to enable power management on a custom board and if so can you link documentation?
  • Is k_sleep()/k_msleep() the most power efficient way to save power while idle between advertisements?
Parents
  • Hi,

    Check out  Optimizing Power on nRF5340 SoC Designs . This is for the nRF5340, but many parts will still be relevant for the nRF54L15.

    In general though:
    When you use k_sleep, the device should use as little power as possible automatically. There are some exceptions though. The most common exception is "need-to-listen" peripherals, such as UART, where it stays on all the time. This is where Power Management comes in.

    However, I would recommend that instead of using the Power Management functionality, you start by disabling the other functionality in the build. Then once you have used this method to find out what causes the extra current draw, you can see if Power Management is the correct way to disable that.

    I did not answer your questions directly, but I hope this was helpful still.

    Regards,
    Sigurd Hellesvik

Reply
  • Hi,

    Check out  Optimizing Power on nRF5340 SoC Designs . This is for the nRF5340, but many parts will still be relevant for the nRF54L15.

    In general though:
    When you use k_sleep, the device should use as little power as possible automatically. There are some exceptions though. The most common exception is "need-to-listen" peripherals, such as UART, where it stays on all the time. This is where Power Management comes in.

    However, I would recommend that instead of using the Power Management functionality, you start by disabling the other functionality in the build. Then once you have used this method to find out what causes the extra current draw, you can see if Power Management is the correct way to disable that.

    I did not answer your questions directly, but I hope this was helpful still.

    Regards,
    Sigurd Hellesvik

Children
No Data
Related