35.16 UART Baud Rate Generator
The Baud Rate Generator (BRG) is a 16-bit timer that is dedicated to the support of the UART operation. The UxBRG register pair determines the period of the free-running baud rate timer. The multiplier of the baud rate period is determined by the BRGS bit.
The high baud rate range (BRGS = 1) is intended to extend the baud rate range up to a faster rate when the desired baud rate is not otherwise possible and to improve the baud rate resolution at high baud rates. Using the normal baud rate range (BRGS = 0) is recommended when the desired baud rate is achievable with either range.
1
is not supported in the DALI mode.Writing a new value to UxBRG causes the BRG timer to be reset (or cleared). This ensures that the BRG does not wait for a timer overflow before outputting the new baud rate.
BRGS | BRG/UART Mode | Baud Rate Formula |
---|---|---|
1 |
High Rate | Fosc/[4(UxBRG+1)] |
0 |
Normal Rate | Fosc/[16(UxBRG+1)] |
Baud Rate Error Calculation
For a device with Fosc of 16 MHz, desired baud rate of 9600, Asynchronous mode, and BRGS = 0.
Solving for UxBRG: