Datasheet

PIC18F87K90 FAMILY
DS39957D-page 354 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
Reset Values
on Page:
TXSTA1
CSRC TX9 TXEN SYNC SENDB BRGH TRMT TX9D 77
RCSTA1 SPEN RX9 SREN CREN ADDEN FERR OERR RX9D 77
BAUDCON1
ABDOVF RCIDL RXDTP TXCKP BRG16 WUE ABDEN 79
SPBRGH1 EUSART1 Baud Rate Generator Register High Byte 76
SPBRG1 EUSART1 Baud Rate Generator Register Low Byte 77
TXSTA2 CSRC TX9 TXEN SYNC SENDB BRGH TRMT TX9D 81
RCSTA2 SPEN RX9 SREN CREN ADDEN FERR OERR RX9D 81
BAUDCON2 ABDOVF RCIDL RXDTP TXCKP BRG16 WUE ABDEN 81
SPBRGH2 EUSART2 Baud Rate Generator Register High Byte 82
SPBRG2 EUSART2 Baud Rate Generator Register Low Byte 82
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%