Acknowledge Sequence

The ninth SCL pulse for any transferred byte in I2C is dedicated as an Acknowledge sequence (ACK). It allows receiving devices to respond back to the transmitter by pulling the SDA line low. The transmitter must release control of the line during this time to shift in the response. The Acknowledge (ACK) is an active-low signal, pulling the SDA line low indicates to the transmitter that the device has received the transmitted data and is ready to receive more.

The result of an ACK is placed in the Acknowledge Status (ACKSTAT) bit.

The client software, when the Address Hold Enable (AHEN) and Data Hold Enable (DHEN) bits are set, allows the user to select the ACK value sent back to the transmitter. The Acknowledge Data (ACKDT) bit is set/cleared to determine the response.

The client hardware will generate an ACK response under most circumstances. However, if the BF bit or the Receive Overflow Indicator (SSPOV) bit are set when a byte is received then the ACK will not be sent by the client.

When the module is addressed, after the eighth falling edge of SCL on the bus, the Acknowledge Time Status (ACKTIM) bit is set. The ACKTIM bit indicates the acknowledge time of the active bus. The ACKTIM bit is only active when either the AHEN bit or DHEN bit is enabled.