
Universal synchronous/asynchronous receiver transmitter (USART/UART)
RM0453
1164/1454
RM0453 Rev 2
35.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.