
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
SDA = 0, SCL = 1
BCLIF
S
SSPIF
Interrupts cleared
in software
Bus collision occurs, Set BCLIF
SCL = 0 before BRG time-out,
’0’
SDA
SCL
SEN
Set S
Set SEN, enable START
sequence if SDA = 1, SCL = 1
Less than TBRG
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’