Microchip Technology MA240017 Data Sheet

Page of 278
PIC24F16KA102 FAMILY
DS39927C-page 148
 2008-2011 Microchip Technology Inc.
18.1
UART Baud Rate Generator (BRG)
The UART module includes a dedicated 16-bit Baud
Rate Generator (BRG). The UxBRG register controls
the period of a free-running, 16-bit timer. 
provides the formula for computation of the baud rate
with BRGH = 0.
EQUATION 18-1:
UART BAUD RATE WITH 
BRGH = 0
(
 provides the calculation of the baud rate
error for the following conditions:
• F
CY
 = 4 MHz 
• Desired Baud Rate = 9600
The maximum baud rate (BRGH = 0) possible is
F
CY
/16 (for UxBRG = 0) and the minimum baud rate
possible is F
CY
/(16 * 65536).
 provides the formula for computation of
the baud rate with BRGH = 1.
EQUATION 18-2:
UART BAUD RATE WITH 
BRGH = 1
The maximum baud rate (BRGH = 1) possible is F
CY
/4
(for UxBRG = 0) and the minimum baud rate possible
is F
CY
/(4 * 65536).
Writing a new value to the UxBRG register causes the
BRG timer to be reset (cleared). This ensures the BRG
does not wait for a timer overflow before generating the
new baud rate.
EXAMPLE 18-1:
BAUD RATE ERROR CALCULATION (BRGH = 0)
(
)
Note 1:
Based on F
CY
 = F
OSC
/2; Doze mode 
and PLL are disabled.
Baud Rate =
F
CY
16 • (UxBRG + 1)
F
CY
16 • Baud Rate
UxBRG =
 1
Baud Rate =
F
CY
4 • (UxBRG + 1)
F
CY
4 • Baud Rate
UxBRG =
 1
Note 1:
Based on F
CY
 = F
OSC
/2; Doze mode 
and PLL are disabled.
Desired Baud Rate 
= F
CY
/(16 (UxBRG + 1)) 
Solving for UxBRG value:
UxBRG
= ((F
CY
/Desired Baud Rate)/16)  1
UxBRG
= ((4000000/9600)/16)  1 
UxBRG
= 25 
Calculated Baud Rate = 4000000/(16 (25 + 1)) 
= 9615    
Error
= (Calculated Baud Rate  Desired Baud Rate)
Desired Baud Rate 
= (9615  9600)/9600 
= 0.16% 
Note 1:
Based on F
CY
 = F
OSC
/2; Doze mode and PLL are disabled.