RM0440 Rev 4 1639/2126
RM0440 Universal synchronous/asynchronous receiver transmitter (USART/UART)
1733
37.5.21 USART low-power management
The USART has advanced low-power mode functions, that enables transferring properly
data even when the usart_pclk clock is disabled.
The USART is able to wake up the MCU from low-power mode when the UESM bit is set.
When the usart_pclk is gated, the USART provides a wakeup interrupt (usart_wkup) if a
specific action requiring the activation of the usart_pclk clock is needed:
• If FIFO mode is disabled
usart_pclk clock has to be activated to empty the USART data register.
In this case, the usart_wkup interrupt source is RXNE set to ‘1’. The RXNEIE bit must
be set before entering low-power mode.
• If FIFO mode is enabled
usart_pclk clock has to be activated to:
– to fill the TXFIFO
– or to empty the RXFIFO
In this case, the usart_wkup interrupt source can be:
– RXFIFO not empty. In this case, the RXFNEIE bit must be set before entering low-
power mode.
– RXFIFO full. In this case, the RXFFIE bit must be set before entering low-power
mode, the number of received data corresponds to the RXFIFO size, and the
RXFF flag is not set.
– TXFIFO empty. In this case, the TXFEIE bit must be set before entering low-power
mode.
This enables sending/receiving the data in the TXFIFO/RXFIFO during low-power
mode.
To avoid overrun/underrun errors and transmit/receive data in low-power mode, the
usart_wkup interrupt source can be one of the following events:
– TXFIFO threshold reached. In this case, the TXFTIE bit must be set before
entering low-power mode.
– RXFIFO threshold reached. In this case, the RXFTIE bit must be set before
entering low-power mode.
For example, the application can set the threshold to the maximum RXFIFO size if the
wakeup time is less than the time required to receive a single byte across the line.
Using the RXFIFO full, TXFIFO empty, RXFIFO not empty and RXFIFO/TXFIFO
threshold interrupts to wakeup the MCU from low-power mode enables doing as many
USART transfers as possible during low-power mode with the benefit of optimizing
consumption.
Alternatively, a specific usart_wkup interrupt can be selected through the WUS bitfields.
When the wakeup event is detected, the WUF flag is set by hardware and a usart_wkup
interrupt is generated if the WUFIE bit is set. In this case the usart_wkup interrupt is not
mandatory and setting the WUF being is sufficient to wake up the MCU from low-power
mode.