Datasheet

2001 Microchip Technology Inc. DS30292C-page 91
PIC16F87X
FIGURE 9-21: BUS COLLISION DURING START CONDITION (SCL = 0)
FIGURE 9-22: BRG RESET DUE TO SDA COLLISION DURING START CONDITION
SDA
SCL
SEN
Bus collision occurs, Set BCLIF
SCL = 0 before SDA = 0,
Set SEN, enable START
sequence if SDA = 1, SCL = 1
TBRG
TBRG
SDA = 0, SCL = 1
BCLIF
S
SSPIF
Interrupts cleared
in software
Bus collision occurs, Set BCLIF
SCL = 0 before BRG time-out,
0
0
0
0
SDA
SCL
SEN
Set S
Set SEN, enable START
sequence if SDA = 1, SCL = 1
Less than T
BRG
TBRG
SDA = 0, SCL = 1
BCLIF
S
SSPIF
s
Interrupts cleared
in software
Set SSPIF
SDA = 0, SCL = 1
SDA pulled low by other master.
Reset BRG and assert SDA.
SCL pulled low after BRG
Time-out
Set SSPIF
0