Usart Baud Rate Generation - ST STM32L4x6 Reference Manual

Table of Contents

Advertisement

Universal synchronous asynchronous receiver transmitter (USART)
36.5.4

USART baud rate generation

The baud rate for the receiver and transmitter (Rx and Tx) are both set to the same value as
programmed in the USARTx_BRR register.
Equation 1: Baud rate for standard USART (SPI mode included) (OVER8 = 0 or 1)
In case of oversampling by 16, the equation is:
In case of oversampling by 8, the equation is:
Equation 2: Baud rate in smartcard, LIN and IrDA modes (OVER8 = 0)
In smartcard, LIN and IrDA modes, only Oversampling by 16 is supported:
USARTDIV is an unsigned fixed point number that is coded on the USARTx_BRR register.
When OVER8 = 0, BRR = USARTDIV.
When OVER8 = 1
Note:
The baud counters are updated to the new value in the baud registers after a write operation
to USARTx_BRR. Hence the baud rate register value should not be changed during
communication.
In case of oversampling by 16 or 8, USARTDIV must be greater than or equal to 16d.
How to derive USARTDIV from USARTx_BRR register values
Example 1
To obtain 9600 baud with f
In case of oversampling by 16:
USARTDIV = 8 000 000/9600
BRR = USARTDIV = 833d = 0341h
In case of oversampling by 8:
USARTDIV = 2 * 8 000 000/9600
USARTDIV = 1666,66 (1667d = 683h)
BRR[3:0] = 3h << 1 = 1h
BRR = 0x681
1194/1693
BRR[2:0] = USARTDIV[3:0] shifted 1 bit to the right.
BRR[3] must be kept cleared.
BRR[15:4] = USARTDIV[15:4]
= 8 MHz.
CK
DocID024597 Rev 3
f
CK
--------------------------------
Tx/Rx baud
=
USARTDIV
×
2
f
CK
--------------------------------
Tx/Rx baud
=
USARTDIV
f
CK
--------------------------------
Tx/Rx baud
=
USARTDIV
RM0351

Advertisement

Table of Contents
loading
Need help?

Need help?

Do you have a question about the STM32L4x6 and is the answer not in the manual?

Questions and answers

Subscribe to Our Youtube Channel

Table of Contents

Save PDF