34.8.5.1 Principle of Operation
The I2C interface uses two physical lines for communication:
- Serial Data Line (SDA) for data transfer
- Serial Clock Line (SCL) for the bus clock
A transaction starts with the I2C host sending the Start condition, followed by a 7-bit address and a direction bit (read or write to/from the client).
The addressed I2C client will then Acknowledge (ACK) the address, and data packet transactions can begin. Every 9-bit data packet consists of 8 data bits followed by a one-bit reply indicating whether the data was acknowledged or not.
If a data packet is Not Acknowledged (NACK), whether by the I2C client or host, the I2C host takes action by either terminating the transaction by sending the Stop condition, or by sending a repeated start to transfer more data.
The following figure illustrates the possible transaction formats. These symbols will be used in the following descriptions.