Using low-power VS non low-power mode peripherals

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

Parents
  • Hello,

    The 'low-power-enable' property tells the Pin Control module to configure the peripheral pins as inputs with the input buffer disconnected when the sleep state is applied. This is to avoid leakage currents on from the IOs when the peripheral is suspended. However, it is often not necessary to suspended SPI and I2C buses. 

    3. How much power exactly can I save? Are there any numbers available in the specification ?

    I recommend you to measure the current power consumption before starting to optimize. 

    4. What are the disadvantages of using low power peripheral mode (for example using low power UART1 when comparing it with the default mode?

    The UART peripheral must be suspended while not in use to achieve low sleep currents, as it will keep the HF clock enabled otherwise. But please note that you cannot receive data while the peripheral suspended. 

    The low power mode mentioned in the pinctrl node is only used while the peripheral is suspended/disabled.

    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?

    You need the REQ and RDY handsake signals to use the LP UART driver.

    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

    Yes, you are correct.

    Best regards,

    Vidar

Reply
  • Hello,

    The 'low-power-enable' property tells the Pin Control module to configure the peripheral pins as inputs with the input buffer disconnected when the sleep state is applied. This is to avoid leakage currents on from the IOs when the peripheral is suspended. However, it is often not necessary to suspended SPI and I2C buses. 

    3. How much power exactly can I save? Are there any numbers available in the specification ?

    I recommend you to measure the current power consumption before starting to optimize. 

    4. What are the disadvantages of using low power peripheral mode (for example using low power UART1 when comparing it with the default mode?

    The UART peripheral must be suspended while not in use to achieve low sleep currents, as it will keep the HF clock enabled otherwise. But please note that you cannot receive data while the peripheral suspended. 

    The low power mode mentioned in the pinctrl node is only used while the peripheral is suspended/disabled.

    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?

    You need the REQ and RDY handsake signals to use the LP UART driver.

    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

    Yes, you are correct.

    Best regards,

    Vidar

Children
No Data
Related