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.

  • To be clear, you are measuring the current on the nRF52840 DK and not on a custom board, right?

    There is a lot of noise on the DK from USB and 5V boost regulator, which makes it hard to measure current in µA range. Can you try powering from an external supply on the LiPo header?

  • Hi,

    Thank you for your reply.

    Yes, I am measuring nrf52840 DK.

    Can you try powering from an external supply on the LiPo header?

    -> Do you mean P21 or P27? If P27, it's 0.7uA as I said before. If P21, my DK just died so I'll check once I get a new one but I remember DK hasn't boot with P21. For measuring at P21, it there any preparation for it?

  • WIth a new device, I measured pwr_mgmt app current consumption. The result is different from the old one.

    [system off mode]

    SW9 VDD, measured at VDDH P23: less than 1 uA

    SW9 USB , measured at VDDH P23: less than 1 uA

    SW9 Li-po , measured at P27 Li-po: 1.2 uA

    SW VDD, connecting external supply P21 to 3.5v SW10 ON, measured at P21: 44 uA

    About P21, do I need to do something before measuring?

    Thank you.

  • P21 is powering the entire board, including LEDs, debug chip, etc. If you want to measure the current by the nRF only, you should set SW6 to "nRF Only" in addition to SW10 in ON state.

  • Thank you for your help.

    So After setting nRF Only, it went down to similar level to the Li-po case.

    SW9 VDD, connecting external supply P21 to 3.5v, SW10 ON, SW6 nrf Only measured at P21: 1.3 uA

1 2 3