General Call Addressing Support

The I2C Specification reserves the address 0x00 as the General Call address. The General Call address is used to address all slave modules connected to the bus at the same time. When a master issues a General Call, all slave devices should, in theory, respond with an ACK. The General Call Enable (GCEN) bit determines whether slave hardware will respond to a General Call address. When GCEN is set (GCEN = 1), slave hardware will respond to a General Call with an ACK, and when GCEN is clear (GCEN = 0), the General Call is ignored, and the slave responds with a NACK.
When the module receives a General Call, the ADRIF bit is set and the address is stored in I2CxADB0. If the ADRIE bit is set, the module will generate an interrupt and stretch the clock after the 8th falling edge of SCL. This allows the slave to determine the acknowledgement response to return to the master (see figure below).
Important: When using the General Call addressing feature, loading the I2CxADR0/1/2/3 registers with the 0x00 address is not recommended. Additionally, slave hardware only supports General Call addressing in 7-bit Addressing modes.
Figure 1. General Call Addressing