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

High sleep current consumption in SED Thread+BLE multiprotocol example

There is an issue in SDK for Thread & Zigbee 4.1.0 release. It does not appear in previous releases. The problem manifests itself as higher current consumption, as shown in below image:

The problem occurs when all the following is true:

  • nrf52840 device utilizes nrf_security libraries (nrf_security is used by default on nrf52840, except for Keil compiler).
  • SoftDevice is present (every multiprotocol example).
  • Processor is put to sleep by calling sd_app_evt_wait(). This is done for every Sleepy End Device (SED) by calling thread_sleep() in the main loop.
  • The root cause of this issue is pending CryptoCell interrupt in the NVIC register that prevents the system from sleeping.

    There is a workaround for the issue. It requires placing the following code before the sd_app_evt_wait() call:

    NVIC_ClearPendingIRQ(CRYPTOCELL_IRQn);

    This line will clear the pending CryptoCell interrupt and allow the system to go to sleep mode.

    Current consumption after adding the workaround is shown in below image:

Related