PIC18F2331/2431/4331/4431
When the address byte overflow condition exists, then
the no Acknowledge (ACK) pulse is given. An overflow
condition is defined as either bit BF (SSPSTAT<0>) is
set, or bit SSPOV (SSPCON<6>) is set. This is an error
condition due to the user’s firmware.
19.3.1.2
Reception
When the R/W bit of the address byte is clear and an
address match occurs, the R/W bit of the SSPSTAT
register is cleared. The received address is loaded into
the SSPBUF register.
An SSP interrupt is generated for each data transfer
byte. Flag bit, SSPIF (PIR1<3>), must be cleared in
software. The SSPSTAT register is used to determine
the status of the byte.
FIGURE 19-6:
I2C™ WAVEFORMS FOR RECEPTION (7-BIT ADDRESS)
R/W = 0
Receiving Address
A7 A6 A5 A4 A3 A2 A1
Receiving Data
Receiving Data
ACK
9
ACK
9
ACK
SDA
SCL
D1 D0
D7 D6 D5 D4 D3 D2
D7 D6 D5 D4 D3 D2 D1 D0
3
7
7
1
2
4
8
5
7
8
3
6
9
5
6
1
2
3
6
1
2
4
8
4
5
P
S
Cleared in software
SSPIF (PIR1<3>)
Bus master
terminates
transfer
BF (SSPSTAT<0>)
SSPOV (SSPCON<6>)
SSPBUF register is read
SSPOV bit is set because the SSPBUF register is still full
ACK is not sent
DS39616D-page 214
2010 Microchip Technology Inc.