Hi,
I am developing a low power BLE device using Promicro nRF52840 boards. After updating to ncs3.2.1 I have noticed a high power consumption in sleep, that isn't present with ncs3.1.1. Reading the changelogs and migration guides I am unable to determine what exactly changed. I have put together a simple application that is enough to show a clear difference. When compiling with 3.1.1 the consumption of the whole board is 54 uA, while with 3.2.1 it's 1.4 mA.
I have previously successfully used the pm suspend to keep power low in sleep, but it seems it no longer works. I'm sure the fix is simple but I was unable to figure it out.
Here's the code:
main.c:
#include <zephyr/kernel.h>
#include <zephyr/pm/device.h>
static const struct device *uart = DEVICE_DT_GET(DT_NODELABEL(uart0));
int main(void) {
pm_device_action_run(uart, PM_DEVICE_ACTION_SUSPEND);
k_sleep(K_FOREVER);
return 0;
}
prj.conf:
CONFIG_SENSOR=y CONFIG_W1=y CONFIG_LOG=n CONFIG_SERIAL=n CONFIG_CONSOLE=n CONFIG_UART_CONSOLE=n CONFIG_PM_DEVICE=y
promicro_nrf52840_nrf52840.overlay:
&uart0 {
status = "okay";
w1_0: w1-zephyr-serial-0 {
compatible = "zephyr,w1-serial";
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
ds18x20: ds18x20 {
compatible = "maxim,ds18b20";
family-code = <0x28>;
resolution = <12>;
status = "okay";
};
};
};
&pinctrl {
uart0_default: uart0_default {
group1 {
psels = <NRF_PSEL(UART_RX, 1, 4)>;
bias-pull-up;
};
group2 {
psels = <NRF_PSEL(UART_TX, 1, 6)>;
/* max. 5mA drive strength: */
nordic,drive-mode = <NRF_DRIVE_H0D1>;
};
};
uart0_sleep: uart0_sleep {
group1 {
psels = <NRF_PSEL(UART_TX, 1, 4)>,
<NRF_PSEL(UART_RX, 1, 6)>;
low-power-enable;
};
};
};
Thank you in advance!
Best regards,
Sašo
