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

current consumption of the radio Module in sleep mode

Hello,

I am developing an IEEE802.15.4 Beacon with the nRF52840-DK, SDK 16 and the nRF-IEEE-802.15.4-radio-driver. My problem is that the consumes ~400uA of current in sleep mode, deiniting the driver doesn't make a difference. With Radio disabled the DK uses ~10uA with a 400uA spike every 28ms.

Can you please help me with reducing the current consumption?

Thanks

#include "sdk_config.h"
#include "nrf.h"
#include "nrf_pwr_mgmt.h"
#include <nrf_802154.h>

#define PWR_DCDC  1
#define PWR_RADIO 1
#define PWR_SLEEP 1

int main(void) {
#if PWR_DCDC
    NRF_POWER->DCDCEN  = 1;
    NRF_POWER->DCDCEN0 = 1;
#endif
#if PWR_SLEEP
    nrf_pwr_mgmt_init();
#endif
#if PWR_RADIO
        nrf_802154_init();
        nrf_802154_sleep();
        //nrf_802154_deinit();
#endif
    while(1) {
#if PWR_SLEEP
        nrf_pwr_mgmt_run();
#endif
    }
}

Parents
  • Hi

    Sorry, I don't know how I missed that. In any case, it seems that the nrf_802154_sleep() function doesn't actually disable the HF clock in any way, at least as far as I can see. The nrf_802154_deinit() function, however, does disable and uninit the HF clock if it is added to an SDK correctly. It ends up calling the nrf_drv_clock_uninit, which is defined in the nrf_drv_clock.c file in SDK v.16.0.0. Can you check whether that function is actually called (set a breakpoint) when debugging to make sure it is called when you use the deinit function?

    Best regards,

    Simon

Reply
  • Hi

    Sorry, I don't know how I missed that. In any case, it seems that the nrf_802154_sleep() function doesn't actually disable the HF clock in any way, at least as far as I can see. The nrf_802154_deinit() function, however, does disable and uninit the HF clock if it is added to an SDK correctly. It ends up calling the nrf_drv_clock_uninit, which is defined in the nrf_drv_clock.c file in SDK v.16.0.0. Can you check whether that function is actually called (set a breakpoint) when debugging to make sure it is called when you use the deinit function?

    Best regards,

    Simon

Children
No Data
Related