25.2.3.4 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 slave addressed by the master device. The exception is the General Call address that can address all devices. When this address is used, all devices should, 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 slave module will automatically ACK the reception of this address regardless of the value stored in SSPxADD. After the slave clocks in an address of all zeros with the R/W bit clear, an interrupt is generated and slave software can read SSPxBUF and respond. Figure 25-15 shows a general call reception sequence.

Figure 25-15. Slave 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 slave 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 slave hardware will stretch the clock after the eighth falling edge of SCL. The slave must then set its Acknowledge Sequence Enable (ACKEN) bit and release the clock with communication progressing as it would normally.