This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

low power (system on mode) in ble_uart_app

Hi,

I am trying to verify current consumption of nrf52840 DK (not any peripheral connected ) before doing that for our product.

We need to use RTC to wake up the device so we are going to use system on mode for deep sleep instead of system off mode.

With "examples\peripheral\pwr_mgmt\pca10056\blank\armgcc" + disabled NRF_LOG_ENABLE and setting DCDC_EN,

I verified DK can go down to 9uA when it is system on mode. (system off mode :6uA) getting from VDDH lines.

However, with examples\ble_peripheral\ble_app_uart\pca10056\s140\armgcc which includes softdevice,

DK stays 800uA in system on mode even if I disable uart, timer, NRF_LOG_ENABLE and set DCDC_EN following some other postings.

[code change for ble uart app]

static void sleep_mode_enter(void)

{
    uint32_t err_code = bsp_indication_set(BSP_INDICATE_IDLE);
    APP_ERROR_CHECK(err_code);

    // Prepare wakeup buttons.
    err_code = bsp_btn_ble_sleep_mode_prepare();
    APP_ERROR_CHECK(err_code);

    // Go to system-off mode (this function will not return; wakeup will cause a reset).
    // err_code = sd_power_system_off();
    // APP_ERROR_CHECK(err_code); < disabled to check system on mode


    app_timer_stop_all();
    app_uart_close();
    sd_app_evt_wait();
}
int main(void)
{
    bool erase_bonds;

    sd_power_dcdc_mode_set(NRF_POWER_DCDC_ENABLE);

    NRF_POWER->DCDCEN = POWER_DCDCEN_DCDCEN_Enabled;
uint32_t app_uart_close(void)
{
   // these two lines are locally added
    nrf_drv_uart_tx_abort(&app_uart_inst);
    nrf_drv_uart_rx_abort(&app_uart_inst);
    nrf_drv_uart_uninit(&app_uart_inst);
    return NRF_SUCCESS;
}

Questions

1. Is it normal with 6uA for system off mode(measured at VDDH with usb power source)?

2. For ble_app_uar, Is there extra code to reduce current consumption?

Thank you.

Parents Reply Children
Related