March 2024 AN4635 Rev 8 1/53
1
AN4635
Application note
How to optimize LPUART power consumption on STM32 MCUs
Introduction
STM32 microcontrollers listed in Table 1 feature an alternative universal asynchronous
receiver transmitter (UART) interface, enabling them to operate with minimum power
requirements.
This document explains how to fully exploit the advantages of the low-power UART
(LPUART), thus extending product battery life. It shows in practical examples the extremely
low-power consumption of the device waiting for a communication.
The code used to perform the measurements described in Section 7.1 and Section 7.2 is
supplied in the package X-CUBE-LPUART, and can be downloaded from www.st.com.
Table 1. Applicable products and software
Type Series, line or part number
Microcontrollers
STM32G0 and STM32G4 series
STM32L0, STM32L4, STM32L4+, and STM32L5 series
STM32H7, STM32U0, STM32U5, and STM32WB series
STM32 Embedded Software X-CUBE-LPUART
www.st.com
Contents AN4635
2/53 AN4635 Rev 8
Contents
1 Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2 Reference documents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3 Summary of features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.1 Clock subsystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.1.1 MSI clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.1.2 HSI clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.1.3 Low speed clock sources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.1.4 CSI clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.2 Power management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.3 Comparison with USART peripheral . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
4 Operation modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.1 Polling mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.2 IT mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.3 DMA mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.4 Combined mode examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.4.1 Interrupt with polling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.4.2 Combining DMA with direct access . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
5 Other considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
5.1 Execution from SRAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
5.2 GPIO configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
5.3 Clock configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
5.3.1 Clock prescalers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
5.4 Power configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
5.4.1 Use of Stop and Sleep modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
5.4.2 Run time configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
5.4.3 STM32H7 core domain sections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
5.4.4 SMPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
5.5 Cache memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17