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

NRF52832 UART Power consumption

Hi,

I just wanna start off by saying I know there a lot of similar posts to this one here on the dev zone, but my problem with them is that none of them (from what I've seen) give a good answer what to do in order to reduce the power consumption of the UART peripheral when it's active.

My observation is that as soon as I activate the UART (data is constantly sent when activating the UART) the current consumption averages around 2.4mA. I need to be able to reduce this as much as possible.

One of the topics I found was this one:
https://devzone.nordicsemi.com/f/nordic-q-a/28439/gpio-and-uart-with-low-power-consumption

however the solutions presented in that topic only reduces current consumption when the UART is idle.

Another topic that is similar to mine, but not answered:

devzone.nordicsemi.com/.../how-to-configure-uart-with-low-power

Furthermore, I found the low power examples for nRF51:

https://github.com/NordicPlayground/nrf51-UART-examples/tree/master/ble_app_uart_low_power

Are these valid for nRF52 as well? or are there some equivalent examples for nRF52?

SDK: v15.0

HW: nRF52832 PCA10040

Br,
Anton

Parents
  • I have also run into this same problem.

    I have enabled the internal DC/DC converter, and this has roughly halved the current consumption from a 3V supply

    But I do not understand why EasyDMA causes such a peak. According to the datasheet, HFXO is 250µA, and UARTE 55µA. Where does the rest come from? Is it from running the AHB multilayer and RAM at full speed as well? Is the DMA such a power hog?

    Also why do these need to run? IDLE to CPU time is 3µs, while even at 1Mps one char + start + stop is 10µs, so there is more than enough time to wake the rest of the system to write out the received byte.

    You seem to recommend not using UARTE, but the basic UART. Then we need to service an interrupt fast enough to retrieve the data. The S132 SDS states that during a Bluetooth connection, you could get delayed by 250µs (ISR post processing), so the UART would need to be configured at 200Kps or lower to never drop a character?

Reply
  • I have also run into this same problem.

    I have enabled the internal DC/DC converter, and this has roughly halved the current consumption from a 3V supply

    But I do not understand why EasyDMA causes such a peak. According to the datasheet, HFXO is 250µA, and UARTE 55µA. Where does the rest come from? Is it from running the AHB multilayer and RAM at full speed as well? Is the DMA such a power hog?

    Also why do these need to run? IDLE to CPU time is 3µs, while even at 1Mps one char + start + stop is 10µs, so there is more than enough time to wake the rest of the system to write out the received byte.

    You seem to recommend not using UARTE, but the basic UART. Then we need to service an interrupt fast enough to retrieve the data. The S132 SDS states that during a Bluetooth connection, you could get delayed by 250µs (ISR post processing), so the UART would need to be configured at 200Kps or lower to never drop a character?

Children
Related