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.

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

  • Joe,

    The current is 3mA now because the debugger is connected and the debug engine is running. I forgot about that when I suggested using RTT. There really isn't a low current way to log data without modifying the logging library to disable the UART after all data is flushed or toggle unused GPIOs.

    Sorry for the confusion.

    The check is to the left of my initial answer, please check it only if you felt I answered your question:)

    Cheers, Darren

Related