Microchip Technology MCU PIC PIC18F87K22-I/PTRSL TQFP-80 MCP PIC18F87K22-I/PTRSL Data Sheet

Product codes
PIC18F87K22-I/PTRSL
Page of 550
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 F
OSC
 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%