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

Sleep current with NRF_LOG_ENABLED or without NRF_LOG_ENABLED

Hi,

I am measuring the current during sleep, after the sequence, __WFE();__SEV();__WFE();.

With NRF_LOG_ENABLED set to 1, the current is about 486 uA. With NRF_LOG_ENABLED set to 0, the current is about 14 uA. What is consuming the current during sleep when log is enabled? The UART in the data sheet says 55 uA, what else is drawing the current?

Is it possible to temporarily suspend the "logging" capability during sleep in order to reduce the idle current, since there is no activity anyway.

Thanks.

Parents
  • Joe,

    Without knowing exactly how you have sdk_config.h setup my guess is the additional sleep current is due to the UART quiescent current. In our tests it adds ~400uA static quiescent current. If you have a Segger debugger you can switch to RTT logging which is a lot faster than using the UART and it frees up your UART for other tasks.

    Darren

  • Actually, a folowup question :)

    I now switch to using RTT like you suggested. In sdk_config.h, I set NRF_LOG_BACKEND_SERIAL_USES_UART to 0, and NRF_LOG_BACKEND_SERIAL_USES_RTT to 1. When I run JLinkRTTViewer, the output is nice and quick. However, now my idle/sleep current is ~3mA. Have you had similar experience? Do I need to turn off the RTT before going to sleep?

    I am new to the forum, where is the check you want me to click?

Reply
  • Actually, a folowup question :)

    I now switch to using RTT like you suggested. In sdk_config.h, I set NRF_LOG_BACKEND_SERIAL_USES_UART to 0, and NRF_LOG_BACKEND_SERIAL_USES_RTT to 1. When I run JLinkRTTViewer, the output is nice and quick. However, now my idle/sleep current is ~3mA. Have you had similar experience? Do I need to turn off the RTT before going to sleep?

    I am new to the forum, where is the check you want me to click?

Children
No Data
Related