Microchip Technology MA240017 Data Sheet
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.
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.
with BRGH = 0.
EQUATION 18-1:
UART BAUD RATE WITH
BRGH = 0
BRGH = 0
(
provides the calculation of the baud rate
error for the following conditions:
• F
• F
CY
= 4 MHz
• Desired Baud Rate = 9600
The maximum baud rate (BRGH = 0) possible is
F
F
CY
/16 (for UxBRG = 0) and the minimum baud rate
possible is F
CY
/(16 * 65536).
the baud rate with BRGH = 1.
EQUATION 18-2:
UART BAUD RATE WITH
BRGH = 1
BRGH = 1
The maximum baud rate (BRGH = 1) possible is F
CY
/4
(for UxBRG = 0) and the minimum baud rate possible
is F
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.
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%
= 0.16%
Note 1:
Based on F
CY
= F
OSC
/2; Doze mode and PLL are disabled.