Hello,
We are currently using the nrf52840 for development using Zephyr v3.7.99-ncs1.
We want to use the UART in low power mode and therefore, we have used the zephyr,pm-device-runtime-auto flag in the DTS uart configuration. Also, we want to have the RX pin of the UART disabled. However, we see increased current consumption in the following scenario.
- When the UART is configured in the .dts file without the disable-rx flag, the current consumption of the device is 0.6mA.
- When UART is configured including the disable-rx flag, the current consumption is 1.5mA.
Therefore, it seems that using the disable-rx flag results in the UART not going into low power mode.
- Our UART RX pin has an external pull up resistor as you can see in the image attached.
I provide the pinctrl.dtsi UART configuration and the .dts file UART configuration.
.dtsi
&pinctrl { uart0_default: uart0_default { group1 { psels = <NRF_PSEL(UART_TX, 1, 0)>; }; group2 { psels = <NRF_PSEL(UART_RX, 0, 24)>; bias-pull-up; }; }; uart0_sleep: uart0_sleep { group1 { psels = <NRF_PSEL(UART_TX, 1, 0)>, <NRF_PSEL(UART_RX, 0, 24)>; low-power-enable; }; }; };
.dts configuration
&uart0 { compatible = "nordic,nrf-uarte"; status = "okay"; current-speed = <115200>; pinctrl-0 = <&uart0_default>; pinctrl-1 = <&uart0_sleep>; pinctrl-names = "default", "sleep"; zephyr,pm-device-runtime-auto; disable-rx; };
Is there a specific reasoning or configuration we need to follow to be in low power mode and have the UART RX disabled at the same time?