How to keep nRF5340 in low power mode with BLE always ON and UART active only during data transfer (with no data loss)?

Hello,

I’m working on a Zephyr-based application using the nRF5340 where I need to optimize power consumption. The intended behavior is:

  • The device should stay in a low power mode as much as possible.

  • Bluetooth (BLE) should always remain ON, ready to transmit data when available.

  • The UART interface is mostly idle/asleep, and should wake only when new data arrives.

  • Once UART receives data, it should immediately trigger BLE transmission without losing any data.

My questions are:

  1. Which power mode(s) in the nRF5340 would allow BLE to stay active while letting other peripherals like UART go into sleep mode?

  2. What is the best way to configure the UART (e.g., via interrupts, DMA, or low-power UART options) so that it wakes the CPU efficiently and avoids data loss at high baud rates (e.g., 921600)?

  3. Are there any recommended Zephyr APIs or Nordic-specific drivers to achieve this kind of wake-on-UART behavior while maintaining active BLE connections?

  4. Is it possible to transition between PM_STATE_RUNTIME_IDLE, SUSPEND_TO_IDLE, or any other state automatically based on peripheral activity?

Any insights, example implementations, or configuration suggestions would be greatly appreciated!

Thank you.

Parents Reply Children
No Data
Related