Universal synchronous asynchronous receiver transmitter (USART) RM0091
586/742 Doc ID 018940 Rev 1
Example 2
To obtain 921.6 Kbaud with f
CK
= 48 MHz.
● In case of oversampling by 16:
USARTDIV = 48 000 000/921 600
BRR = USARTDIV = 52d = 0x34
● In case of oversampling by 8:
USARTDIV = 2 * 48 000 000/921 600
USARTDIV = 104 (104d = 0x68)
BRR[3:0] = USARTDIV[3:0] >> 1 = 0x8 >>1 = 0x4
BRR = 0x64
Table 85. Error calculation for programmed baud rates at f
CK
= 48 MHz
for oversampling by 16 and by 8
Baudrate Oversampling by 16 (OVER8 = 0) Oversampling by 8 (OVER8 = 1)
S.No Desired Actual
USART_
BRR value
% Error =
(calculated -
Desired
baudrate)/Desired
baudrate
Actual
USART_
BRR value
% Error =
(calculated -
Desired
baudrate)/Desired
baudrate
2 2.4 2.4 0x4E20 0 2.4 0x9C40 0
3 9.6 9.6 0x1388 0 9.6 0x2710 0
4 19.2 19.2 0x9C4 0 19.2 0x1384 0
5 38.4 38.4 0x4E2 0 38.4 0x9C2 0
6 57.6 57.62 0x341 0.03 57.59 0x681 0.02
7 115.2 115.11 0x1A1 0.08 115.25 0x340 0.04
8 230.4 230.76 0xD0 0.16 230.21 0x1A0 0.08
9 460.8 461.54 0x68 0.16 461.54 0xD0 0.16
10 921.6 923.07 0x34 0.16 923.07 0x64 0.16
11 2000 2000 0x18 0 2000 0x30 0
12 3000 3000 0x10 0 3000 0x20 0
13 4000 N.A N.A N.A 4000 0x14 0
14 5000 N.A N.A N.A 5052.63 0x11 1.05
15 6000 N.A N.A N.A 6000 0x10 0