29.5.8 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 might, in theory, respond with an acknowledge.

The general call address is a reserved address in the I2C protocol, defined as address 0x00. When the 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 R/W bit clear, an interrupt is generated and client software can read SSPxBUF and respond. The following figure shows a general call reception sequence.

Figure 29-24. 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 ACKEN value and release the clock with communication progressing.