English
Language : 

PIC18F44J50-I Datasheet, PDF (311/562 Pages) Microchip Technology – 28/44-Pin, Low-Power, High-Performance USB Microcontrollers
PIC18F46J50 FAMILY
19.5.7.2 Clock Arbitration
Clock arbitration occurs when the master, during any
receive, transmit or Repeated Start/Stop condition,
deasserts the SCLx pin (SCLx allowed to float high).
When the SCLx pin is allowed to float high, the BRG is
suspended from counting until the SCLx pin is actually
sampled high. When the SCLx pin is sampled high, the
BRG is reloaded with the contents of SSPxADD<6:0>
and begins counting. This ensures that the SCLx high
time will always be at least one BRG rollover count in
the event that the clock is held low by an external
device (Figure 19-20).
FIGURE 19-20: BAUD RATE GENERATOR TIMING WITH CLOCK ARBITRATION
SDAx
DX
DX – 1
SCLx
BRG
Value
BRG
Reload
SCLx deasserted but slave holds
SCLx low (clock arbitration)
SCLx allowed to transition high
BRG decrements on
Q2 and Q4 cycles
03h
02h
01h
00h (hold off)
03h
02h
SCLx is sampled high, reload takes
place and BRG starts its count
19.5.8
I2C MASTER MODE START
CONDITION TIMING
To initiate a Start condition, the user sets the Start
Enable bit, SEN (SSPxCON2<0>). If the SDAx and
SCLx pins are sampled high, the BRG is reloaded with
the contents of SSPxADD<6:0> and starts its count. If
SCLx and SDAx are both sampled high, when the Baud
Rate Generator times out (TBRG), the SDAx pin is
driven low. The action of the SDAx being driven low
while SCLx is high is the Start condition and causes the
Start bit (SSPxSTAT<3>) to be set. Following this, the
BRG is reloaded with the contents of SSPxADD<6:0>
and resumes its count. When the BRG times out
(TBRG), the SEN bit (SSPxCON2<0>) will be
automatically cleared by hardware. The BRG is sus-
pended, leaving the SDAx line held low and the Start
condition is complete.
Note:
If, at the beginning of the Start condition, the
SDAx and SCLx pins are already sampled
low, or if during the Start condition, the SCLx
line is sampled low before the SDAx line is
driven low, a bus collision occurs, the Bus
Collision Interrupt Flag, BCLxIF, is set, the
Start condition is aborted and the I2C
module is reset into its Idle state.
19.5.8.1 WCOL Status Flag
If the user writes the SSPxBUF when a Start sequence
is in progress, the WCOL bit is set and the contents of
the buffer are unchanged (the write does not occur).
Note:
Because queueing of events is not
allowed, writing to the lower five bits of
SSPxCON2 is disabled until the Start
condition is complete.
FIGURE 19-21: FIRST START BIT TIMING
Write to SEN bit occurs here
SDAx = 1,
SCLx = 1
Set S bit (SSPxSTAT<3>)
At completion of Start bit,
hardware clears SEN bit
and sets SSPxIF bit
TBRG
TBRG
Write to SSPxBUF occurs here
SDAx
1st bit
TBRG
2nd bit
SCLx
TBRG
S
 2011 Microchip Technology Inc.
DS39931D-page 311