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
Parents Reply Children
  • I have already disconnected the J-Link and measuring the current using power profiler kit by powering the chip on using the kit.

  • You can disable LOG and printk and try again.

    What is the ENABLE_DCDC in your prf.conf?

    You could also check that the devices in the device tree have a pinctrl set for the sleep state and that "zephyr,pm-device-runtime-auto;" is set, so that they are set to sleep after initialisation when they are not used:

    debug_rs232: &uart0 {
        status = "okay";
        current-speed = <115200>;
        pinctrl-0 = <&uart0_default>;
        pinctrl-1 = <&uart0_sleep>;
        pinctrl-names = "default", "sleep";
        zephyr,pm-device-runtime-auto;
    };

  • I have seen somewhere that we should enable the dcdc conversion so that the microcontroller would operate in 3.3 V and the current consumption would be limited. I am not sure which uart I am using for RTT Viewer debugger. My setup contains the GND, DIO and CLK pins for flashing the custom board. I am using another NRF Dev Kit. Where should I add power management in my dts file

  • Uh, I did not want to start a confusing: RTT uses the debugger, no uart needed here.

    I mentioned the uart because I do not see your device tree/overlays and your prj.conf and wanted to give you an example where pm-device-runtime-auto is used.

    When you have peripherals enabled in the device tree of your custom board or in your overlay (if you are using one), you could check if the peripherals support pm-device-runtime-auto and add the setting there

Related