Address Buffers

The I2C module has two address buffer registers, I2CxADB0 and I2CxADB1, which can be used as address receive buffers in Slave mode, address transmit buffers in Master mode, or both address transmit and address receive buffers in 7-bit Multi-Master mode (see table below). The address buffers are enabled/disabled via the Address Buffer Disable (ABD) bit.

When the ABD bit is clear (ABD = 0), the buffers are enabled, which means:

When the ABD bit is set (ABD = 1), the buffers are disabled, which means:

Table 1. Address Buffer Direction
Mode I2CxADB0 I2CxADB1
Slave (7-bit) RX Unused
Slave (10-bit) RX (address low byte) RX (address high byte)
Master (7-bit) Unused TX
Master (10-bit) TX (address low byte) TX (address high byte)
Multi-Master (7-bit) RX TX