English
Language : 

PIC16F87X Datasheet, PDF (78/218 Pages) Microchip Technology – 28/40-pin 8-Bit CMOS FLASH Microcontrollers
PIC16F87X
FIGURE 9-7:
I2C WAVEFORMS FOR TRANSMISSION (7-BIT ADDRESS)
SDA
Receiving Address
R/W = 1
ACK
A7 A6 A5 A4 A3 A2 A1
R/W = 0
Transmitting Data Not ACK
D7 D6 D5 D4 D3 D2 D1 D0
SCL
S
1 23456789
12 34 56789
Data in
SCL held low
P
sampled
while CPU
responds to SSPIF
SSPIF
BF (SSPSTAT<0>)
Cleared in software
From SSP Interrupt
SSPBUF is written in software Service Routine
CKP (SSPCON<4>)
Set bit after writing to SSPBUF
(the SSPBUF must be written to,
before the CKP bit can be set)
9.2.2
GENERAL CALL ADDRESS
SUPPORT
The addressing procedure for the I2C bus is such that
the first byte after the START condition usually deter-
mines which device will be the slave addressed by the
master. The exception is the general call address, which
can address all devices. When this address is used, all
devices should, in theory, respond with an acknowledge.
The general call address is one of eight addresses
reserved for specific purposes by the I2C protocol. It
consists of all 0’s with R/W = 0.
The general call address is recognized when the Gen-
eral Call Enable bit (GCEN) is enabled (SSPCON2<7>
is set). Following a START bit detect, 8 bits are shifted
into SSPSR and the address is compared against
SSPADD. It is also compared to the general call
address and fixed in hardware.
If the general call address matches, the SSPSR is
transferred to the SSPBUF, the BF flag is set (eighth
bit), and on the falling edge of the ninth bit (ACK bit),
the SSPIF flag is set.
When the interrupt is serviced, the source for the inter-
rupt can be checked by reading the contents of the
SSPBUF to determine if the address was device spe-
cific, or a general call address.
In 10-bit mode, the SSPADD is required to be updated
for the second half of the address to match, and the UA
bit is set (SSPSTAT<1>). If the general call address is
sampled when GCEN is set, while the slave is config-
ured in 10-bit address mode, then the second half of
the address is not necessary, the UA bit will not be set,
and the slave will begin receiving data after the
Acknowledge (Figure 9-8).
FIGURE 9-8:
SDA
SLAVE MODE GENERAL CALL ADDRESS SEQUENCE (7 OR 10-BIT MODE)
General Call Address
Address is compared to General Call Address
after ACK, set interrupt flag
R/W = 0
Receiving data
ACK
ACK D7 D6 D5 D4 D3 D2 D1 D0
SCL
SSPIF
S
1 2 34 5 6 78 91 2 34 5 6 78 9
BF
(SSPSTAT<0>)
SSPOV
(SSPCON<6>)
GCEN
(SSPCON2<7>)
Cleared in software
SSPBUF is read
’0’
’1’
DS30292C-page 76
 2001 Microchip Technology Inc.