Hi,
I am trying to optimize my nrf52840 application for power consumption. If I run simple
while(1) { WFE__());
loop using nrf5 SDK i get ~1.2mA. However with similiar code on Zephyr:
for (;;) { k_sleep(K_MSEC(1000)); }
I get ~1.7mA. I understand that Zephyr kernel configures some peripherals even before entering the main, but can you help me understand which in my case and how does it work exactly? Here is my prj.conf:
# # Copyright (c) 2018 Nordic Semiconductor # # SPDX-License-Identifier: LicenseRef-Nordic-5-Clause # CONFIG_NCS_SAMPLES_DEFAULTS=y CONFIG_BT_DEBUG_LOG=y CONFIG_USE_SEGGER_RTT=y CONFIG_RTT_CONSOLE=y CONFIG_UART_CONSOLE=n CONFIG_BT=y CONFIG_BT_PERIPHERAL=y CONFIG_BT_DEVICE_NAME="Sensor_board" CONFIG_BT_BAS=y CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=2048 # I2C CONFIG_I2C=y # RTC CONFIG_COUNTER=y CONFIG_COUNTER_MICROCHIP_MCP7940N=y CONFIG_COUNTER_INIT_PRIORITY=65 # LSM6DSO CONFIG_LSM6DSO_TRIGGER_GLOBAL_THREAD=y # Sensor CONFIG_SENSOR=y CONFIG_CBPRINTF_FP_SUPPORT=y # ADC CONFIG_ADC=y # MAXIM CONFIG_FUEL_GAUGE=y CONFIG_GPIO=y
I am using NCS 2.7
Btw - I know >1mA is still too much , but this is a different issue I need to solve on hw side.
Best regards,
Michal