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
  • 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.

Reply
  • 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.

Children
No Data
Related