Hey. We are working on a project where keeping power consumption at a minimum is crucial.
I would like to further understand what are the difference between low-power mode and non low-power mode peripherals as I could not find any information about them on the nRF52840 product specification.
1. For example. lets say I am using 2x UART, 1x SPI and 1x I2C on my project. On the nRF52840DK nRF52840 pin-ctrl.dtsi I can see that each peripheral has default config and a sleep config, for example:
uart1_default: uart1_default {
group1 {
psels = <NRF_PSEL(UART_RX, 1, 1)>;
bias-pull-up;
};
group2 {
psels = <NRF_PSEL(UART_TX, 1, 2)>;
};
};
uart1_sleep: uart1_sleep {
group1 {
psels = <NRF_PSEL(UART_RX, 1, 1)>,
<NRF_PSEL(UART_TX, 1, 2)>;
low-power-enable;
};
};
2. What exactly happens on the device that allows it to save power?
3. How much power exactly can I save? Are there any numbers available in the specification ?
4. What are the disadvantages of using low power peripheral mode (for example using low power UART1 when comparing it with the default mode?
5. How to enable the low power peripheral mode? Is simply having CONFIG_NRF_SW_LPUART=y and CONFIG_UART1_NRF_ASYNC_LOW_POWER=y enough?
6. From what I understand, using lpuart only makes sense if you have full control of both devices that use UART to communicate because you need to implement additional logic for REQ and RDY pins. Is that correct? I cant simply using LPUART if I want to communicate with the external GNSS that only uses RX/TX