LPUARTE

The LPUARTE sample demonstrates how to configure and use the LPUARTE driver as a low power alternative to regular UART.

Requirements

The sample supports the following development kits:

The following board variants do not have DFU capabilities:

S115:

Hardware platform

PCA

Board target

nRF54L15 DK

PCA10156

bm_nrf54l15dk/nrf54l15/cpuapp/s115_softdevice

nRF54L15 DK (emulating nRF54L10)

PCA10156

bm_nrf54l15dk/nrf54l10/cpuapp/s115_softdevice

nRF54L15 DK (emulating nRF54L05)

PCA10156

bm_nrf54l15dk/nrf54l05/cpuapp/s115_softdevice

nRF54LM20 DK

PCA10184

bm_nrf54lm20dk/nrf54lm20a/cpuapp/s115_softdevice

nRF54LS05 DK

PCA10214

bm_nrf54ls05dk/nrf54ls05b/cpuapp/s115_softdevice

nRF54LV10 DK

PCA10188

bm_nrf54lv10dk/nrf54lv10a/cpuapp/s115_softdevice

S145:

Hardware platform

PCA

Board target

nRF54L15 DK

PCA10156

bm_nrf54l15dk/nrf54l15/cpuapp/s145_softdevice

nRF54L15 DK (emulating nRF54L10)

PCA10156

bm_nrf54l15dk/nrf54l10/cpuapp/s145_softdevice

nRF54L15 DK (emulating nRF54L05)

PCA10156

bm_nrf54l15dk/nrf54l05/cpuapp/s145_softdevice

nRF54LM20 DK

PCA10184

bm_nrf54lm20dk/nrf54lm20a/cpuapp/s145_softdevice

nRF54LS05 DK

PCA10214

bm_nrf54ls05dk/nrf54ls05b/cpuapp/s145_softdevice

nRF54LV10 DK

PCA10188

bm_nrf54lv10dk/nrf54lv10a/cpuapp/s145_softdevice

The sample also requires the following pins to be connected, as defined in the boards board-config.h header:

LPUARTE pin connections (board-config.h).

Development Kit

nRF54L15 DK

nRF54LM20 DK

nRF54LS05 DK

nRF54LV10 DK

LPUARTE TX

P1.11

P1.12

P1.17

P1.17

LPUARTE RX

P1.12

P1.13

P1.18

P1.18

LPUARTE REQ

P0.04

P1.14

P1.19

P1.19

LPUARTE RDY

P1.14

P1.15

P1.20

P1.20

  1. For two-device setup:

  • Device 1 LPUARTE TX → Device 2 LPUARTE RX

  • Device 1 LPUARTE RX → Device 2 LPUARTE TX

  • Device 1 LPUARTE REQ → Device 2 LPUARTE RDY

  • Device 1 LPUARTE RDY → Device 2 LPUARTE REQ

  • Connect GND between both devices.

  1. For single-device loopback setup:

  • LPUARTE TXLPUARTE RX

  • LPUARTE REQLPUARTE RDY

Additionally, the sample requires a logic analyzer to observe the LPUARTE activity and a current measurement instrument to measure the current.

Overview

The sample initializes the application LPUARTE instance, specified in the board-config.h file in the board. It then implements a simple loopback using a single LPUARTE instance. By default, the console and logging are disabled to demonstrate low power consumption when UART is active.

User interface

LED 0:

If configured, lit when the device is initialized. (Configurable using the CONFIG_SAMPLE_LPUARTE_INIT_LED kconfig option)

Building and running

This sample can be found under samples/peripherals/lpuarte/ in the Bare Metal folder structure.

For details on how to create, configure, and program a sample, see Getting Started with the samples.

Testing

You can test this sample by performing the following steps:

  1. Compile and program the application.

  2. Connect the logic analyzer to the LPUARTE pins, to confirm UARTE activity. The request/response pins are HIGH in the idle state. When a transmission starts, the pins are pulled LOW to signal the start of data transfer. At the same time, activity should be visible on the UART RX/TX pins.

    Configure the logic analyzer to use an asynchronous serial (UART) protocol on the RX/TX connection. With the default sample configuration, use a baud rate of 115200, and verify that a 5-byte message is transmitted with the decimal values 1, 2, 3, 4, and 5.

  3. Measure the current to confirm that the power consumption indicates that high-frequency clock is disabled during the idle stage.

During the idle stage, the UARTE receiver is ready to start reception, as the request pin wakes it up.