English
Language : 

PIC16F1847_13 Datasheet, PDF (278/440 Pages) Microchip Technology – 18/20/28-Pin Flash Microcontrollers with XLP Technology
PIC16(L)F1847
25.6.13.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 (Case 1).
b) After the SCLx pin is deasserted, SCLx is
sampled low before SDAx goes high (Case 2).
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 Baud Rate Generator is loaded with SSPxADD 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 25-38). 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 25-39).
FIGURE 25-38:
BUS COLLISION DURING A STOP CONDITION (CASE 1)
TBRG
TBRG
TBRG
SDAx
SCLx
SDAx asserted low
SDAx sampled
low after TBRG,
set BCLxIF
PEN
BCLxIF
P
’0’
SSPxIF
’0’
FIGURE 25-39: BUS COLLISION DURING A STOP CONDITION (CASE 2)
TBRG
TBRG
TBRG
SDAx
SCLx
Assert SDAx
SCLx goes low before SDAx goes high,
set BCLxIF
PEN
BCLxIF
P
’0’
SSPxIF
’0’
DS40001453D-page 278
Preliminary
 2011-2013 Microchip Technology Inc.