Enabling PM_DEVICE raises idle current consumption on LPUART

I need both zephyr power device management and the low power features of LPUART in my project.

However, enabling PM_DEVICE raises idle current consumption by quite a bit.

Testing with the lpuart sample on NCS 2.9.0 on the nRF9160-DK, measuring with PPK2, I get 5uA without PM_DEVICE, but around 20uA with PM_DEVICE enabled. On the nRF52840-DK results are similar.

Parents Reply Children
  • Hi Einar,

    Thanks for helping out. The issue you mentioned is using the uarte in interrupt mode. The lpuart sample I am testing uses the uart in async mode with UART_1_NRF_ASYNC_LOW_POWER=y.

    I do however measure the higher 20uA idle current consumption without PM_DEVICE=y but UART_1_NRF_ASYNC_LOW_POWER=n.

    Some observations:

    • When PM_DEVICE=n, if I remove the call to nrf_uarte_disable() in function uarte_disable_locked in uart_nrfx_uarte.c, current consumption is raised by 15uA as well. So you might think nrf_uarte_disable() is not called when PM_DEVICE=y.
    • When PM_DEVICE=y, nrf_uarte_disable() does get called however in uarte_pm_suspend() when the lpuart is idle.

    Any more ideas would be welcome!

Related