Beware that this post is related to an SDK in maintenance mode
More Info: Consider nRF Connect SDK for new designs
This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Why use WFE instead of sd_app_evt_wait() on SDK15/FreeRTOS?

I try to use SDK15/FreeRTOS project.

I measured current comsumption on IDLE state(not run any task).

It's take about 200uA.

On FreeRTOS's portable/CMSIS/nrf52/port_cmsis_systick.c line239

#if 0  // With FreeRTOS sd_app_evt_wait increases power consumption with FreeRTOS compared to _WFE (NRFFOSDK-11174)

I try to change "#if 1", current comsumption is reduced.

Why disable sd_app_evt_wait()?

Parents
  • Hi,

    I tested on PCA10040,it's take about 6.9mA when using sd_app_evt_wait() . Other hand, it's take about 0.92mA when using  _WFE.

    Do you know how to cut down the left 0.92mA to 0.01mA?

    I tested the demo project  ble_app_hrs_freertos.

Reply
  • Hi,

    I tested on PCA10040,it's take about 6.9mA when using sd_app_evt_wait() . Other hand, it's take about 0.92mA when using  _WFE.

    Do you know how to cut down the left 0.92mA to 0.01mA?

    I tested the demo project  ble_app_hrs_freertos.

Children
  • I tryed ble_app_hrs_freertos.
    As you said that,
    Using sd_app_evt_wait()  7mA.
    Using WFE <1mA.

    I analyze my project and ble_app_hrs_freertos, I found diffrence.

    I disable NRF_LOG
     sdk_config.h
     #define NRF_LOG_ENABLED 0

    example/ble_app_hrs_freertos and above modified,
    Using sd_app_evt_wait()  reduced current.

    NRF_LOG problem?