Microchip Technology MCU PIC PIC18F87K22-I/PTRSL TQFP-80 MCP PIC18F87K22-I/PTRSL Data Sheet

Product codes
PIC18F87K22-I/PTRSL
Page of 550
PIC18F87K22 FAMILY
DS39960D-page 310
 2009-2011 Microchip Technology Inc.
21.4.5
GENERAL CALL ADDRESS 
SUPPORT
The addressing procedure for the I
2
C bus is such that
the first byte after the Start condition usually
determines 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 I
2
C protocol. It
consists of all ‘0’s with R/W = 0.
The general call address is recognized when the
General Call Enable bit, GCEN, is enabled
(SSPxCON2<7> set). Following a Start bit detect, eight
bits are shifted into the SSPxSR and the address is
compared against the SSPxADD. It is also compared to
the general call address and fixed in hardware. 
If the general call address matches, the SSPxSR is
transferred to the SSPxBUF, the BF flag bit is set
(eighth bit), and on the falling edge of the ninth bit (ACK
bit), the SSPxIF interrupt flag bit is set.
When the interrupt is serviced, the source for the
interrupt can be checked by reading the contents of the
SSPxBUF. The value can be used to determine if the
address was device-specific or a general call address.
In 10-Bit Addressing mode, the SSPxADD is required
to be updated for the second half of the address to
match and the UA bit is set (SSPxSTAT<1>). If the gen-
eral call address is sampled when the GCEN bit is set,
while the slave is configured in 10-Bit Addressing
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 21-17:
SLAVE MODE GENERAL CALL ADDRESS SEQUENCE 
(7 OR 10-BIT ADDRESSING MODE)          
SDAx
SCLx
S
SSPxIF
BF (SSPxSTAT<0>)
SSPOV (SSPxCON1<6>)
Cleared in Software
SSPxBUF is Read
R/W = 0
ACK
General Call Address
Address is Compared to General Call Address
GCEN (SSPxCON2<7>)
Receiving Data
ACK
1
2
3
4
5
6
7
8
9
1
2
3
4
5
6
7
8
9
D7
D6
D5
D4
D3
D2
D1
D0
After ACK, Set Interrupt
‘0’
‘1’