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

Achieving ~3uA sleep current with nRF52832 running mbed-os 5.8

I need to achieve the "few uAmps" level of sleep current while running the latest mbed-os 5 on an nRF2832 (inside a u-blox NINA-B1 module).  I'm currently seeing ~500 uA in sleep, so there is a way to go.  In the NRF5 hal_sleep() call softdevice_hander_is_enabled() is returning true, hence the sleep sequence is managed by SoftDevice with the following calls:

        sd_power_mode_set(NRF_POWER_MODE_LOWPWR);
        sd_app_evt_wait();

What I can't tell is whether the 32 MHz clock is being powered down and the RAM put into retention, both of which I think are required to achieve the specified sleep current.  From the S132 SoftDevice v5.0.0 API I see that calls to sd_power_ram_power_set() and sd_clock_hfclk_release() are available but sd_power_ram_power_set() is not a part of the NRF52 port into Mbed so I can't reference that.  Of course, it could be that I need to disable the SoftDevice but I can't find the call to the init function in the first place to know how it should be set up on return from sleep.

What is the recommended method to achieve the "few uAmps" sleep current with an mbed-os build on an nRF52832?  FYI, I have no need of BLE when at this level of sleep so disabling it is fine.

Rob

Related