SWRU626 December 2025 CC3501E , CC3551E
All bus transactions have a required acknowledge clock cycle that is generated by the controller. During the acknowledge cycle, the transmitter (which can be the Controller or Target) releases the SDA line. To acknowledge [ACK] the transaction, the receiver must pull down SDA during the acknowledge clock cycle. The acknowledge cycle must comply with the data validity requirements.
Target Behavior
When a Target receiver does not acknowledge [NACK] the Target address, SDA must be left high by the Target so that the Controller can generate a STOP condition and abort the current transfer or generate a repeated START condition to start a new transfer. If the Controller device is acting as a receiver during a transfer, it is responsible for acknowledging each transfer made by the Target. Because the Controller controls the number of bytes in the transfer, it signals the end of data to the Target transmitter by not generating an acknowledge on the last data byte. The Target transmitter must then release SDA to allow the Controller to generate the STOP or a repeated START condition.
If the Target is required to provide a manual (software/firmware) ACK or NACK, the I2C Target ACK Control (TACKCTL) register allows the Target to NACK for invalid data or command, or ACK for valid data or command. Refer to section Section 19.3.2.14.5 for more details.
Controller Behavior
If the Controller receives a NACK while transmitting data, the NACK and CTXDONE bit will be set in the RIS registers. If there is still data in the FIFO, the TXEMPTY bit will not be set to inform software that a TX FIFO flush may be required. Controller also has the capability to send a manual (software/firmware) ACK/NACK. Refer to section Section 19.3.2.14.5 for more details. IP doesn’t generate a STOP on every NACK.