Communication - I2C

The general idea in I2C is that the master calls upon a specific slave and either reads data from the slave or writes data to it. The master drives the clock, ensuring that all communication between the master and its slaves is synchronous. Given that there is only one data line (one bit), all data is sent serially. Furthermore, only one entity (a master or a slave) can transmit data at a given time because there is only one data line. Thus, I2C communication is half-duplex.


Like with UART, start and stop conditions are necessary to know when communication has started. The start condition is essential for slaves to know when they may need to respond to the master. The stop condition is needed since I2C can support multiple masters, so other masters need to know when the SDA is available.


The start condition is noted as when the master pulls the SDA low while keeping the clock (SCL) high. This signals to the other slaves that a transmission is about to begin. The stop condition, on the other hand, is noted as when the SDA goes from low to high after the SCL goes through the same transition and stays high.

For more information on I2C, refer to the I2C-SPI section on the embedded systems website. Additionally, Chapter 26 of the MSP432 Technical Reference Manual on eUSCI I2C mode may be useful/helpful.Â