Datasheet
PIC18F87K22 FAMILY
DS39960D-page 332 2009-2011 Microchip Technology Inc.
EXAMPLE 22-1: CALCULATING BAUD RATE ERROR
TABLE 22-2: REGISTERS ASSOCIATED WITH BAUD RATE GENERATOR
Name Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
TXSTA1
CSRC TX9 TXEN SYNC SENDB BRGH TRMT TX9D
RCSTA1 SPEN
RX9 SREN CREN ADDEN FERR OERR RX9D
BAUDCON1 ABDOVF RCIDL RXDTP TXCKP BRG16 — WUE ABDEN
SPBRGH1 EUSART1 Baud Rate Generator Register High Byte
SPBRG1 EUSART1 Baud Rate Generator Register
TXSTA2
CSRC TX9 TXEN SYNC SENDB BRGH TRMT TX9D
RCSTA2 SPEN
RX9 SREN CREN ADDEN FERR OERR RX9D
BAUDCON2 ABDOVF RCIDL RXDTP TXCKP BRG16 — WUE ABDEN
SPBRGH2 EUSART2 Baud Rate Generator Register High Byte
SPBRG2 EUSART2 Baud Rate Generator Register
PMD0
CCP3MD CCP2MD CCP1MD UART2MD UART1MD SSP2MD SSP1MD ADCMD
Legend: — = unimplemented, read as ‘0’. Shaded cells are not used by the BRG.
For a device with FOSC of 16 MHz, desired baud rate of 9600, Asynchronous mode, and 8-bit BRG:
Desired Baud Rate = F
OSC/(64 ([SPBRGHx:SPBRGx] + 1))
Solving for SPBRGHx:SPBRGx:
X = ((F
OSC/Desired Baud Rate)/64) – 1
= ((16000000/9600)/64) – 1
= [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%