General Call Address Support

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 I2C 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.