Low Power consumption for nRF52 series of devices

I was looking for different power options for nRF52/53 series of devices and possible want more information on how to reduce power such that device can run for months on a battery.

There was one interesting thread which discuss this for nRF51 series of devices. But that one is quite old (over 9 years now). So can someone from Nordic guide on this how to reduce power consumption of the device and individual blocks of SoC?

https://devzone.nordicsemi.com/f/nordic-q-a/1657/how-to-minimize-current-consumption-for-ble-application-on-nrf51822

Note: I have selected some tags to address topic for power consumption discussion.

Parents
  • I was working on this topic and want to ask some more question regarding power consumption and reducing the power on nRF52840 device.

    Currently, I do not have Nordic PPK-2 and measure the current through ampere meter via header P21 on the nRF52840-DK. The current consumption is around ~25uAmps when device it ideal(not advertising) with spike of around ~100uAmps when device do advertise.

    To reduce the power I did some changes to my application. First, I disabled the serial monitor and Logging through config options. This reduces significant amount of current consumption.

    Still I think there can be reduction in power consumption hence I am posting some questions and my current code.

    I have disabled the peripherals which are not needed in device.overlay file. As the following file, there are many of them in disabled state.

    &uart0 {
        status = "disabled";
    };
    &uart1 {
        status = "disabled";
    };
    
    &spi0 {
    	status = "disabled";
    };
    &gpiote{
        status = "disabled";
    };
    
    &spi1 {
    	status = "disabled";
    };
    &spi3 {
        status = "disabled";
    };
    
    &qspi {
        status = "disabled";
    };
    
    &adc {
        status = "disabled";
    };
    
    &pdm0 {
    	status = "disabled";
    };
    &i2c0 {
    	status = "disabled";
    };
    
    &i2c1 {
    	status = "disabled";
    };
    
    &nfct {
        status = "disabled";
    };

    In Kconfig file, I have enabled DC-DC converter which in my understanding enabled by default and I do not need to enable through power API in my application. The same is for clock configuration which I have enabled the external low power LFCLK 32khz clock through Kconfig as well as in my code by nrfx_clock_start(NRF_CLOCK_DOMAIN_LFCLK);

    I also have powered down unused RAM by power_down_unused_ram();

    My question is what else can I change in my code to reduce power?

    The config file is as follows.

    CONFIG_GPIO=y
    
    CONFIG_BT=y
    CONFIG_BT_CENTRAL=y
    
    CONFIG_BT_DEBUG_LOG=y
    CONFIG_BT_SMP=y
    CONFIG_BT_DIS=y
    CONFIG_BT_DIS_PNP=n
    CONFIG_BT_PERIPHERAL=y
    CONFIG_BT_GATT_CLIENT=y
    
    CONFIG_BT_DEVICE_NAME="Key"
    CONFIG_BT_DEVICE_APPEARANCE=833
    
    CONFIG_PM=y
    # Required to disable default behavior of deep sleep on timeout
    CONFIG_PM_DEVICE=y
    
    CONFIG_LOG=n
    CONFIG_SERIAL=n
    
    CONFIG_BOARD_ENABLE_DCDC_HV=y
    CONFIG_CLOCK_CONTROL_NRF_K32SRC_XTAL=y
    CONFIG_RAM_POWER_DOWN_LIBRARY=y
    
    CONFIG_CAF_POWER_MANAGER=y
    CONFIG_CAF_POWER_MANAGER_TIMEOUT=10
    CONFIG_CAF_POWER_MANAGER_STAY_ON=y

  • Hi,

    What is flashed to the network core? Have you checked if logging is disabled for the network core?

    regards

    Jared 

  • Hi, It is single core. nRF52840. not nRF5340.

    I read that it can be disabled on nRF5340 on some article..

    Do I need to do anything for power management API? I do not understand it well though.

Reply Children
Related