Overview of I2C

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 communicate the data
  • Common ground reference (GND): This pin is missing on the Rainbow HAT section of I2C, basically because you can use any ground pin that is already connected -for example, to power the components- so that ground connection is shared

Note that I2C can have multiple slaves, so they need a way to know which one is the master talking to. That is done using the addressing structure that is part of the I2C protocol.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.221.245.196