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.

  • Hi,

    1. 6 uA in System OFF mode sounds a bit high. According to the PS, typical current consumption in System OFF with wake on reset running from 5 V is 0.95 uA (IOFF_RAMOFF_RESET_5V).
    2. Are you using a revision 1/2 chip or an older engineering version? Can you check if the workaround in errata 89 affects your current?
      For UARTE0:
      *(volatile uint32_t *)0x40002FFC = 0;
      *(volatile uint32_t *)0x40002FFC;
      *(volatile uint32_t *)0x40002FFC = 1;

      For UARTE1:
      *(volatile uint32_t *)0x40028FFC = 0;
      *(volatile uint32_t *)0x40028FFC;
      *(volatile uint32_t *)0x40028FFC = 1;

    Best regards,
    Jørgen

  • Hi Jørgen Holmefjord,

    Thank you for your support.

    About the chip info, my DK has PCA10056 1.1.0 and NRF52840 QIAAD0.

    And even if I add the erratta 89 workaround codes, it can reduce the current just by under uA and still around 6.uA for system off mode and 9uA for system on mode.

    It seems there is something making the current by extra 6uA consistently.

    FYI, I am using ble_app_uart in SDK 15.3.0 59ac345.

    Basically, I didn't change anything but the codes in my question above.

    Do you have something else to recommend to do like disabling clock...?

    Thank you.

  • How did you measure the current consumption?

    I did a quick test with the ble_app_uart example, where the only modifications was to enable DCDC (should not affect system OFF current) and disable NRF_LOG.

    When running this on a nRF52840 DK v1.1.0, I get about 350-400 nA current consumption with default supply voltage (3.0 V) using the PPK:

    I have not yet tested with 5V supply, but I do not expect it to be higher. Have you measured with 3 V supply?

  • Hi,

    Thank you for your support.

    I was using USB for power source (SW9) so VDD is 1.8V and VDDH 5.0V.

    For measuring at VDDH of DK, I cut SB41 and connect P23 to 0.1 uA resolution multimeter(Agilent 34401A).

    Also I've checked VDDH current with Li-Po for power source (SW9) 3.0v and it was same (6uA for system off).

    As per your question, when I check VDDH current with VDD 3.0v (SW9), the result was less than 300nA.

    Also I tested Li-Po P27 current with Li-Po for power source (SW9) 3.0v and it was 0.7uA

    I guess it should be done directly at battery power source like P27 rather than VDDH or VDD, does it make sense? Or maybe other reasons to need to measure VDD or VDDH, then please let me know.

    And another question is when I use Li-Po as power source, if I disconnect USB cable, it makes around 70mA current at P27. (I wanted to make sure to cut everything can affect current consumption)

    Can you tell me why that happen?

    Thank you.

Related