English
Language : 

PIC16F87X Datasheet, PDF (88/218 Pages) Microchip Technology – 28/40-pin 8-Bit CMOS FLASH Microcontrollers
PIC16F87X
9.2.13 ACKNOWLEDGE SEQUENCE
TIMING
An Acknowledge sequence is enabled by setting the
Acknowledge Sequence Enable bit, ACKEN
(SSPCON2<4>). When this bit is set, the SCL pin is
pulled low and the contents of the Acknowledge data bit
is presented on the SDA pin. If the user wishes to gen-
erate an Acknowledge, the ACKDT bit should be
cleared. If not, the user should set the ACKDT bit
before starting an Acknowledge sequence. The baud
rate generator then counts for one rollover period
(TBRG), and the SCL pin is de-asserted high. When the
SCL pin is sampled high (clock arbitration), the baud
rate generator counts for TBRG. The SCL pin is then
pulled low. Following this, the ACKEN bit is automati-
cally cleared, the baud rate generator is turned off,
and the SSP module then goes into IDLE mode
(Figure 9-16).
9.2.13.1 WCOL Status Flag
If the user writes the SSPBUF when an Acknowledge
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:
ACKNOWLEDGE SEQUENCE WAVEFORM
Acknowledge sequence starts here,
Write to SSPCON2
ACKEN = 1, ACKDT = 0
ACKEN automatically cleared
SDA
TBRG
TBRG
D0
ACK
SCL
8
9
SSPIF
Set SSPIF at the end
of receive
Cleared in
software
Note: TBRG = one baud rate generator period.
Cleared in
software
Set SSPIF at the end
of Acknowledge sequence
DS30292C-page 86
 2001 Microchip Technology Inc.