Power Consumption during sleep mode in NRF52832

I am using NRF52832 Custom Board and Have to implement deep sleep for 1 minute and have to limit the current consumption to a very minimal value during the sleep cycle
 I have just enabled the log and used the below sleep function

#include <stdio.h>
#include <zephyr/sys/printk.h>
#include <zephyr/kernel.h>

int main(void)
{
    printk("Hello World! %s\n", CONFIG_BOARD);
    while(1){
        printk("Entering Sleep\n");
        k_msleep(60000);
    }
    return 0;
}
But when tracking the current consumption, I am getting roughly around 10mA which is huge for my application. How should I reduce the current consumption to uA. I have to use two SPI Pheripherals as well
  • I am using an EFR32 Microcontroller by Silicon Labs to measure the current by providing 3.3V supply from it to my custom board.

    Logging enabled and RTT Viewer Disconnected. I am getting a sleep current of 6.4 mA. I have implemented sleep for 60s.

    Still After Disabling the logs, I am getting the same current consumption.

    Sometimes I am getting the current value in uA during sleep initially after flashing and power cycling.

    I am unable to figure out exactly what is happening. And what is my idle sleep current consumption. I have enabled the power management and wake up source for both of my SPI Peripherals in the device tree.

    &spi2 {
    	compatible = "nordic,nrf-spi";
    	status = "okay";
    	cs-gpios = <&gpio0 11 GPIO_ACTIVE_LOW>;
    	pinctrl-0 = <&spi2_default>;
    	pinctrl-1 = <&spi2_sleep>;
    	pinctrl-names = "default", "sleep";
    	lora0: sx1262@0 {
    		compatible = "semtech,sx1262";
    		reg = <0>;
    		reset-gpios = <&gpio0 12 GPIO_ACTIVE_LOW>;
    		dio1-gpios = <&gpio0 28 GPIO_PULL_DOWN>;
    		spi-max-frequency = <DT_FREQ_M(8)>;
    		busy-gpios = <&gpio0 31 0>;
    		antenna-enable-gpios = <&gpio0 7 0>;
    		tx-enable-gpios = <&gpio0 8 0>;
    		wakeup-source;
    		zephyr,pm-device-runtime-auto;
    	};
    
    	zephyr,pm-device-runtime-auto;
    	wakeup-source;
    };
    

  • Hi

    6.4mA is too much to possibly be the nRF52832 in any idle mode. Even with the CPU being left running you should see 4mA here. I'm not familiar with the EFR32, but how exactly is it used to measure current here? Do you have a dedicated power analyzer or the PPK2 for current measurement? If the nRF actually draws an average of 6.4mA, it must be the radio that is on, but in that case it seems strange that the current is as stable as it is, so I think there is some hefty leakage somewhere here.

    In the ~470µA range it is, as mentioned in the bottom of the power optimization guide, likely due to a peripheral being left on, like UART logging, or SPI being kept on for example. However since there seems to be some leakage that might not be it, and I think we should start by trying to reproduce this on an nRF52832 DK if you have one available to measure on.

    Best regards,

    Simon

Related