I2C is a synchronous serial interface, which means it uses a shared clock signal to synchronize data transfer between devices. The device that controls the clock signal is known as the master; in our case, the developer kit. All other connected peripherals are known as slaves. Each device is connected to the same set of data signals to form a bus.
I2C structure diagram from developers.google.com
Being a serial bus, the components need to wait for their turn to talk. That is also done by the master, which issues commands to the bus and some of those commands may require a response (for example, requests to read values). This is known as half-duplex communication.
I2C devices connect using a three-wire interface consisting of the following pins:
- Shared clock signal (SCL): The clock used to synchronize the data transfer
- Shared data line (SDA): The wire used to actually...