NRF52832 FREERTOS power Power consumption

application :   examples\ble_peripheral\ble_app_hrs_freertos

I am using nRF52832 with sdk 17.0.2,+ freertos.

I need to implement low power with LOG_ENABLED,but the Power consumption seems a little bit high

pls  help me and give me some solutions,Hope  the power consumption  is less than 3ua

1. the  Power consumption is 2.1uA  According to the following configuration:

#define configUSE_TICKLESS_IDLE 1

#define NRF_LOG_ENABLED 0

2.  the  Power consumption is 12.5uA According to the following configuration:

#define configUSE_TICKLESS_IDLE 1

#define NRF_LOG_ENABLED 1

void vApplicationIdleHook( void )
{
	idle_state_handle();
}


void nrf_pwr_mgmt_run(void)
{
    PWR_MGMT_FPU_SLEEP_PREPARE();
    PWR_MGMT_SLEEP_LOCK_ACQUIRE();
    PWR_MGMT_CPU_USAGE_MONITOR_SECTION_ENTER();
    PWR_MGMT_DEBUG_PIN_SET();

    // Wait for an event.
#ifdef SOFTDEVICE_PRESENT
    if (nrf_sdh_is_enabled())
    {
        ret_code_t ret_code = sd_app_evt_wait();
        ASSERT((ret_code == NRF_SUCCESS) || (ret_code == NRF_ERROR_SOFTDEVICE_NOT_ENABLED));
        UNUSED_VARIABLE(ret_code);
    }
    else
#endif // SOFTDEVICE_PRESENT
    {
        // Wait for an event.
        __WFE();
        // Clear the internal event register.
        __SEV();
        __WFE();
    }

    PWR_MGMT_DEBUG_PIN_CLEAR();
    PWR_MGMT_CPU_USAGE_MONITOR_SECTION_EXIT();
    PWR_MGMT_SLEEP_LOCK_RELEASE();
}

Parents
  • Hi

    Enabling the logging module will use some additional current I'm afraid. You can minimize this by disabling it whenever your device is going to sleep, and by using RTT as the logger backend instead of the UART peripheral, as the RTT will not use current unless the debugger is connected. This is done by setting the

    NRF_LOG_BACKEND_UART_ENABLED define to 0 and the NRF_LOG_BACKEND_RTT_ENABLED define to 1 in your sdk_config.h.
    For some additional ways to reduce/minimize current consumption, please check out the optimizing power blog post available here.
    Best regards,
    Simon
Reply
  • Hi

    Enabling the logging module will use some additional current I'm afraid. You can minimize this by disabling it whenever your device is going to sleep, and by using RTT as the logger backend instead of the UART peripheral, as the RTT will not use current unless the debugger is connected. This is done by setting the

    NRF_LOG_BACKEND_UART_ENABLED define to 0 and the NRF_LOG_BACKEND_RTT_ENABLED define to 1 in your sdk_config.h.
    For some additional ways to reduce/minimize current consumption, please check out the optimizing power blog post available here.
    Best regards,
    Simon
Children
No Data
Related