Inter Integrated Circuit

The I 2 C (Inter Integrated Circuit) bus is a very cheap, yet effective, network used to interconnect peripheral devices within small-scale embedded systems. It is sometimes also known as IIC and has been in existence for more than 20 years. It is the equivalent of SPI, but its operation is somewhat different.

I2C uses two wires to connect multiple devices in a multidrop bus. The bus is bidirectional, low-speed, and synchronous to a common clock. Devices may be attached or detached from the I2C bus without affecting other devices. Several manufacturers, such as Microchip, Philips, Intel, and others produce small microcontrollers with I2C built in. The data rate of I2C is somewhat slower than SPI, at 100kbps in standard mode and 400kbps in fast mode.

The two wires used to interconnect with I2C are SDA (serial data) and SCL (serial clock). Both lines are open-drain.[14] They are connected to a positive supply via a pull-up resistor and therefore remain high when not in use. A device using the I2C bus to communicate drives the lines low or leaves them pulled high as appropriate. Each device connected to the I2C bus has a unique address and can operate as a transmitter (a bus master), a receiver (a bus slave), or both (Figure 9-20). I2C is a multimaster bus , meaning that more than one device may assume the role of bus master.

I2C block diagram

Figure 9-20. I2C block diagram ...

Get Designing Embedded Hardware now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.