Current optimization

Hi,

I've developed the product, now we need to minimize the current consumption of the device.

In order to consume low power, we need to set CONFIG_SERIAL=n (suggested on forum, and I tested in sample code it is minimizing current), but in my project we are using UART, so when I am setting CONFIG_SERIAL=n then getting code build error.

I also disabled the log but no effect on current consumption. Please suggest me how I can achieve low current consumption.

Parents
  • Hi,

    Generally, disabling any features that is not needed is key to conserve power, including disabling logging in production code. However if you need UART in the application, the UART becomes similar to other peripheral that are power intensive, in the sense that you should ensure that it is only enabled while needed. The Power Management API can be used for that, by changing power state between suspend and resume. See set_uart_power_state() in nrf/applications/connectivity_bridge/src/modules/uart_handler.c for an example of that.

    In suspend the UART pins will be changes to the configuration for the sleep state, so you need to make sure this matches what makes sense for your external circuitry. You can see the difference bretween uart0_default and uart0_sleep for the nRF52840 DK board as reference under zephyr/boards/arm/nrf52840dk_nrf52811/nrf52840dk_nrf52811-pinctrl.dtsi.

Reply
  • Hi,

    Generally, disabling any features that is not needed is key to conserve power, including disabling logging in production code. However if you need UART in the application, the UART becomes similar to other peripheral that are power intensive, in the sense that you should ensure that it is only enabled while needed. The Power Management API can be used for that, by changing power state between suspend and resume. See set_uart_power_state() in nrf/applications/connectivity_bridge/src/modules/uart_handler.c for an example of that.

    In suspend the UART pins will be changes to the configuration for the sleep state, so you need to make sure this matches what makes sense for your external circuitry. You can see the difference bretween uart0_default and uart0_sleep for the nRF52840 DK board as reference under zephyr/boards/arm/nrf52840dk_nrf52811/nrf52840dk_nrf52811-pinctrl.dtsi.

Children
No Data
Related