
2002 Microchip Technology Inc.
Advance Information
DS41120B-page 85
PIC16C717/770/771
FIGURE 9-15:
BAUD RATE GENERATOR TIMING WITH CLOCK ARBITRATION
9.2.10
I2C MASTER MODE START
CONDITION TIMING
To initiate a START condition, the user sets the START
condition enable bit, SEN (SSPCON2<0>). If the SDA
and SCL pins are sampled high, indicating that the bus
is available, the baud rate generator is loaded with the
contents of SSPADD<6:0> and starts its count. If SCL
and SDA are both sampled high when the baud rate
generator times out (TBRG) indicating the bus is still
available, the SDA pin is driven low. The SDA transition
from high to low while SCL is high is the START condi-
tion. This causes the S bit (SSPSTAT<3>) to be set.
When the S bit is set, the baud rate generator is
reloaded with the contents of SSPADD<6:0> and
resumes its count. When the baud rate generator times
out (TBRG) the START condition is complete, concur-
rent with the following events:
The SEN bit (SSPCON2<0>) is automatically
cleared by hardware,
The baud rate generator is suspended leaving the
SDA line held low.
The SSPIF flag is set.
9.2.10.1
WCOL STATUS FLAG
If the user writes the SSPBUF when a START
sequence is in progress, the WCOL is set and the con-
tents of the buffer are unchanged (the write doesn’t
occur).
FIGURE 9-16:
FIRST START BIT TIMING
SDA
SCL
SCL de-asserted but slave holds
DX-1
DX
BRG
SCL is sampled high, reload takes
place, and BRG starts its count.
03h
02h
01h
00h (hold off)
03h
02h
reload
BRG
value
SCL low (clock arbitration)
SCL allowed to transition high
BRG decrements
(on Q2 and Q4 cycles)
Note:
If at the beginning of START condition, the
SDA and SCL pins are already sampled
low, or if during the START condition, the
SCL line is sampled low before the SDA
line is driven low, a bus collision occurs.
Thus, the Bus Collision Interrupt Flag
(BCLIF) is set, the START condition is
aborted, and the I2C module is RESET into
its IDLE state.
Note:
Because
queueing
of
events
is
not
allowed, writing to the lower five bits of
SSPCON2 is disabled until the START
condition is complete.
SDA
SCL
S
TBRG
1st Bit
2nd Bit
TBRG
SDA = 1,
At completion of START bit,
SCL = 1
Write to SSPBUF occurs here
TBRG
Hardware clears SEN bit
TBRG
Write to SEN bit occurs here.
Set S bit (SSPSTAT<3>)
and sets SSPIF bit