The addressing procedure for the I2C bus is such that the first byte after the Start condition usually determines
which device will be the client addressed by the host device. The exception is the General
Call address that can address all devices. When this address is used, all devices must, in
theory, respond with an ACK.
The general call address is a reserved address in the I
2C protocol, defined as address 0x00. When the General Call
Enable (
GCEN) bit is set, the client module will automatically
ACK the reception of this address regardless of the
value stored in
SSPxADD. After the client clocks in an address of all zeros with the
WR/ bit clear, an interrupt is generated and
client software can read
SSPxBUF and respond.
Figure 1
shows a General Call reception sequence.
Figure 1. Client Mode General Call Address
Sequence
In 10-bit Address mode, the
UA bit
will not be set on the reception of the general call address. The client will prepare to
receive the second byte as data, just as it would in 7-bit mode.
If the AHEN
bit is set, just as with any other address reception, the client hardware will stretch the
clock after the eighth falling edge of SCL. The client must then set its Acknowledge
Sequence Enable (ACKEN) bit and release the clock.