Datasheet

Table Of Contents
2010 Microchip Technology Inc. Preliminary DS39979A-page 225
PIC18F87J72 FAMILY
18.4.7 BAUD RATE
In I
2
C Master mode, the Baud Rate Generator (BRG)
reload value is placed in the lower 7 bits of the
SSPADD register (Figure 18-19). When a write occurs
to SSPBUF, the Baud Rate Generator will automatically
begin counting. The BRG counts down to 0 and stops
until another reload has taken place. The BRG count is
decremented twice per instruction cycle (T
CY) on the
Q2 and Q4 clocks. In I
2
C Master mode, the BRG is
reloaded automatically.
Once the given operation is complete (i.e., transmis-
sion of the last data bit is followed by ACK
), the internal
clock will automatically stop counting and the SCL pin
will remain in its last state.
Table 18-3 demonstrates clock rates based on
instruction cycles and the BRG value loaded into
SSPADD.
18.4.7.1 Baud Rate Generation in
Power-Managed Modes
When the device is operating in one of the
power-managed modes, the clock source to the BRG
may change frequency or even stop, depending on the
mode and clock source selected. Switching to a Run or
Idle mode from either the secondary clock or internal
oscillator is likely to change the clock rate to the BRG.
In Sleep mode, the BRG will not be clocked at all.
FIGURE 18-19: BAUD RATE GENERATOR BLOCK DIAGRAM
TABLE 18-3: I
2
C™ CLOCK RATE w/BRG
Note: A BRG value of 00h is not supported.
FCY FCY * 2 BRG Value
F
SCL
(2 Rollovers of BRG)
16 MHz 32 MHz 03h 1 MHz
(1)
10 MHz 20 MHz 18h 400 kHz
(2)
10 MHz 20 MHz 1Fh 312.5 kHz
10 MHz 20 MHz 63h 100 kHz
4 MHz 8 MHz 09h 400 kHz
(2)
4 MHz 8 MHz 0Ch 308 kHz
4 MHz 8 MHz 27h 100 kHz
1 MHz 2 MHz 02h 333 kHz
(2)
1 MHz 2 MHz 09h 100 kHz
Note 1: FOSC must be at least 16 MHz for I
2
C bus operation at this speed.
2: The I
2
C™ interface does not conform to the 400 kHz I
2
C specification (which applies to rates greater than
100 kHz) in all details, but may be used with care where higher rates are required by the application.
SSPM<3:0>
BRG Down Counter
CLKO
F
OSC/4
SSPADD<6:0>
SSPM<3:0>
SCL
Reload
Control
Reload