Experienced high power consumption with both CONFIG_PM_DEVICE and CONFIG_NRF_SW_LPUART enabled

Hello everyone,

I am experiencing excessive power consumption in a project based on the nRF9151 processor, developed using nRF Connect SDK 2.9.0.

My project uses two UART interfaces:

uart0 – used for the console. It is suspended and resumed using the pm_device_action_run() function (with CONFIG_PM_DEVICE=y enabled):

pm_device_action_run(console, PM_DEVICE_ACTION_SUSPEND);  // suspend
pm_device_action_run(console, PM_DEVICE_ACTION_RESUME);   // resume

uart2 – configured as LPUART (with CONFIG_NRF_SW_LPUART=y enabled), communicating with a Bluetooth module.

With both configurations enabled, I measure a current consumption of approximately 30 µA, while I would expect something closer to 8 µA.

My test

To further investigate the issue, I built and ran the LPUART sample on the nRF9151DK development board.
I created the files nrf9151dk_nrf9151_ns.overlay and nrf9151dk_nrf9151_ns.conf, adapting them from the nRF9160 versions.

I shorted RX and TX (pins 10 and 11), and REQ and RDY (pins 12 and 13 in my configuration), as suggested in the sample documentation.

Everything works correctly. The current consumption is extremely low (around 1 µA avarage current) between communication intervals. See image attached

At this point, I simply added CONFIG_PM_DEVICE=y to prj.conf, and the current consumption immediately increased to more than 22 µA.

My conclusion is that there may be some incompatibility between CONFIG_NRF_SW_LPUART and CONFIG_PM_DEVICE. Can you confirm it?

Here is my lpuart sample test project:

lpuart.zip

I would like to keep the LPUART communication active while also being able to suspend the console when the device needs to enter low-power mode.

How can I achieve this?

Thank you 

Luca

Parents Reply Children
  • Hi Kazi,

    Did you measure sleep current?

    Yes I was measuring sleep current on my project board.

    But, please also look at the second part of my post (after "My Test" underlined label)

    I got the same current increment with the lpuart example and the nRF9151-DK (not SMA) board.

    So, my test condition are:

    - nRF9151-DK (not SMA)

    RX(pin 10) and TX (pin11) shorted

    - REQ (pin 12) and RDY (pins 13) shorted

    - lpuart example code (slightly modified to be compatible with 9151, see attached code)

    CONFIG_PM_DEVICE=n, low current case (first picture)

    CONFIG_PM_DEVICE=y, high current case (second picture)

    thank you for your answer

    Luca

  • Hello Luca,

    I have tried to reproduce your issue. The result is not same in terms of current value but in terms of CONFIG_PM_DEVICE issue we have the same observation.

    This is when CONFIG_PM_DEVICE=y

    This is when CONFIG_PM_DEVICE=n

    I am not sure why setting CONFIG_PM_DEVICE causes higher current. I have asked team if it is a bug in the application. I will get back to you when there is a reply.

    Thanks.

    BR
    Kazi

  • Hi Kazi,

    In your test, something was probably left enabled in the case with CONFIG_PM_DEVICE=y, which is why you're seeing currents in the milliamp range. However, even if you manage to disable whatever is consuming too much power, the current still remains inexplicably around 22µA.

    I’m looking forward to the team’s feedback.

    Thanks you for your help.

    Luca

Related