English
Language : 

PIC18F44J50-I Datasheet, PDF (321/562 Pages) Microchip Technology – 28/44-Pin, Low-Power, High-Performance USB Microcontrollers
PIC18F46J50 FAMILY
19.5.17.3 Bus Collision During a Stop
Condition
Bus collision occurs during a Stop condition if:
a) After the SDAx pin has been deasserted and
allowed to float high, SDAx is sampled low after
the BRG has timed out.
b) After the SCLx pin is deasserted, SCLx is
sampled low before SDAx goes high.
The Stop condition begins with SDAx asserted low.
When SDAx is sampled low, the SCLx pin is allowed to
float. When the pin is sampled high (clock arbitration),
the BRG is loaded with SSPxADD<6:0> and counts
down to 0. After the BRG times out, SDAx is sampled. If
SDAx is sampled low, a bus collision has occurred. This
is due to another master attempting to drive a data ‘0’
(Figure 19-33). If the SCLx pin is sampled low before
SDAx is allowed to float high, a bus collision occurs. This
is another case of another master attempting to drive a
data ‘0’ (Figure 19-34).
FIGURE 19-33:
SDAx
SCLx
PEN
BCLxIF
P
SSPxIF
BUS COLLISION DURING A STOP CONDITION (CASE 1)
TBRG
TBRG
TBRG
SDAx asserted low
SDAx sampled
low after TBRG,
set BCLxIF
‘0’
‘0’
FIGURE 19-34:
SDAx
SCLx
PEN
BCLxIF
P
SSPxIF
BUS COLLISION DURING A STOP CONDITION (CASE 2)
TBRG
TBRG
TBRG
Assert SDAx
SCLx goes low before SDAx goes high,
set BCLxIF
‘0’
‘0’
 2011 Microchip Technology Inc.
DS39931D-page 321