Power consumption about LPUART

Hi,

I found a topic that discuss the LPUART power consumption.

 LPUAR 

In this discussion, it is mentioned that the power consumption of LPUART was introduce by GPIOTE IN, which is about 10~20uA.

From the old nRF SDK, we can set the hi_accuracy to false to reduce power consumption GPIOTE IN. But I don't found similar setting in NCS SDK.
typedef struct
{...
bool hi_accuracy : 1; /**< True when high accuracy (IN_EVENT) is used. */
...} nrfx_gpiote_in_config_t;

Also, I found another post two yeas ago discussing that Nordic may change the GPIOTE IN to the GPIO PORT event to reduce power consumption, Is there any up-to-date? 

 nRF9160 Sleep mode plus TWIS and LPUART 

In addition to this, is there any way we can reduce the power consumption of the LPUART in the idle?  One of our products (NRF9160+NRF52832) uses the LPUART communication mechanism, and we found that idle power consumption is almost 35uA in IDLE state(nRF52832 is almost 19uA, and the nRF9160 is 15uA). We hope to reduce this power consumption.

Thanks,

Best Regards,

Hogen

  • Hi,

    Thanks for your clarification. I have change the USB to battery supply, and using ampere meter mode to measure the current. 

    When I add NRF_POWER->SYSTEMOFF = 1 to the beginning of main, the average current is 0.57uA.

    When I remove NRF_POWER->SYSTEMOFF = 1 in LPUART, the idle current is 11.58uA.

    I also do test on 9160dk, the result is similar.

    It looks like that GPIO PORT event in my project doesn't take effect. Can you share the zephyr.dts in \build_nrf52dk_nrf52832\zephyr directory, and which commit id are you testing based on?

    BR

    Hogen

  • Hi, I think I know what the problem is. I was testing this on a nRF52840 DK, and the 840 is configured to use UART1, while the nRF52832 is using UART0. The prj.conf file sets only UART1 to low power, but that will not take effect on the nRF52832, since it is using UART0. This should have been fixed in the boards/nrf52dk_nrf52832.conf file, but it's missing CONFIG_UART_0_NRF_ASYNC_LOW_POWER=y.

    Try to add this config and see if that fixes the issue. I tested this now on a PCA10040, and I get 2.7 uA during idle:

    Otherwise, your measurement setup looks good now, and the system off code verifies that the PPK is showing the right current.

    EDIT:

    I also tested on a nRF91 DK, and this is already configured correctly, since it is using UART1. I think the best way to measure on a nRF91 DK is to use the PPK in source meter mode, and set the voltage output to 3.3V or higher (up to 5V). The connections should look as described in this guide, under the SMU mode section.

    Best regards,
    Stian

  • Hi Stian,

    Add CONFIG_UART_0_NRF_ASYNC_LOW_POWER=y fixed my problem.Thank you very much.

Related