English
Language : 

PIC18CXX2_13 Datasheet, PDF (151/304 Pages) Microchip Technology – High Performance Microcontrollers with 10-bit A/D
15.1 USART Baud Rate Generator
(BRG)
The BRG supports both the Asynchronous and Syn-
chronous modes of the USART. It is a dedicated 8-bit
baud rate generator. The SPBRG register controls the
period of a free running 8-bit timer. In Asynchronous
mode, bit BRGH (TXSTA<2>) also controls the baud
rate. In Synchronous mode, bit BRGH is ignored.
Table 15-1 shows the formula for computation of the
baud rate for different USART modes, which only apply
in Master mode (internal clock).
Given the desired baud rate and FOSC, the nearest
integer value for the SPBRG register can be calculated
using the formula in Table 15-1. From this, the error in
baud rate can be determined.
PIC18CXX2
Example 15-1 shows the calculation of the baud rate
error for the following conditions:
• FOSC = 16 MHz
• Desired Baud Rate = 9600
• BRGH = 0
• SYNC = 0
It may be advantageous to use the high baud rate
(BRGH = 1), even for slower baud clocks. This is
because the FOSC/(16(X + 1)) equation can reduce the
baud rate error in some cases.
Writing a new value to the SPBRG register causes the
BRG timer to be reset (or cleared). This ensures the
BRG does not wait for a timer overflow before output-
ting the new baud rate.
15.1.1 SAMPLING
The data on the RC7/RX/DT pin is sampled three times
by a majority detect circuit to determine if a high or a
low level is present at the RX pin.
EXAMPLE 15-1: CALCULATING BAUD RATE ERROR
Desired Baud Rate
= FOSC / (64 (X + 1))
Solving for X:
X
= ( (FOSC / Desired Baud rate) / 64 ) - 1
X
= ((16000000 / 9600) / 64) - 1
X
= [25.042] = 25
Calculated Baud Rate
= 16000000 / (64 (25 + 1))
= 9615
Error
= (Calculated Baud Rate - Desired Baud Rate)
Desired Baud Rate
= (9615 - 9600) / 9600
= 0.16%
TABLE 15-1: BAUD RATE FORMULA
SYNC
BRGH = 0 (Low Speed)
0
(Asynchronous) Baud Rate = FOSC/(64(X+1))
1
(Synchronous) Baud Rate = FOSC/(4(X+1))
Legend: X = value in SPBRG (0 to 255)
BRGH = 1 (High Speed)
Baud Rate = FOSC/(16(X+1))
NA
TABLE 15-2: REGISTERS ASSOCIATED WITH BAUD RATE GENERATOR
Name
Bit 7 Bit 6 Bit 5 Bit 4
Bit 3
Bit 2 Bit 1 Bit 0
Value on
POR,
BOR
TXSTA CSRC TX9 TXEN SYNC — BRGH TRMT TX9D 0000 -010
RCSTA SPEN RX9 SREN CREN ADDEN FERR OERR RX9D 0000 -00x
SPBRG Baud Rate Generator Register
0000 0000
Legend: x = unknown, - = unimplemented, read as '0'. Shaded cells are not used by the BRG.
Value on all
other
RESETS
0000 -010
0000 -00x
0000 0000
 1999-2013 Microchip Technology Inc.
DS39026D-page 151