SLVSCO4D July 2015 – February 2019 TPS65917-Q1
The master initiates a data transfer by generating a START condition. The START condition is when a high-to-low transition occurs on the SDA line while SCL is high (see Figure 5-17). All I2C-compatible devices should recognize a START condition.
The master then generates SCL pulses and transmits the 7-bit address and the read or write direction bit (R/W) on the SDA line. During all transmissions, the master ensures that data is valid. A valid data condition requires the SDA line to be stable during the entire high period of the clock pulse (see Figure 5-18). All devices recognize the address sent by the master and compare it to the internal fixed addresses of the respective device. Only the slave device with a matching address generates an acknowledge signal (see Figure 5-19) by pulling the SDA line low during the entire high period of the ninth SCL cycle. When this acknowledge signal is detected, the communication link between the master and the slave device has been established.
The master generates further SCL cycles to either transmit data to the slave (R/W bit 1) or receive data from the slave (R/W bit 0). In either case, the receiver must acknowledge the data sent by the transmitter. An acknowledge signal can be generated by the master or the slave, depending on which device is the receiver. Nine-bit valid data sequences consisting of 8-bit data and 1-bit acknowledge can continue for as long as required.
To signal the end of the data transfer, the master generates a STOP condition by pulling the SDA line from low to high while the SCL line is high (see Figure 5-17). Pulling the line from low to high while SCL is high releases the bus and stops the communication link with the addressed slave. All I2C-compatible devices must recognize the STOP condition. Upon the receipt of a STOP condition, the slave device must wait for a START condition followed by a matching address.
Attempting to read data from the register addresses not listed in this section results in a read out of 0xFF.