What is I2C? How Inter-Integrated Circuits Work

I2C goes by several names such as Inter-Integrated Circuit, I2C, and IIC. I2C are two-wire data transfer bus. Wide variety of computers can take advantage of this bus.

What is I2C?

Inter-Integrated Circuit, known as I2C, I2C, or even IIC, is a two-wire data transfer bus. Philips Semiconductor (now NXP Semiconductors) invented the protocol in 1982, and it received widespread use in applications where low costs and ease-of-implementation take priority over lightning-quick speed.

Since 2006, users do not need to pay licensing fees to implement I2C, though NXP does allocate slave addresses that require payment. Derivatives of this technology are also currently available, including TWI (Two-Wire-Interface) and SMBus (System Management Bus).

I2C Communication

I2C-linked systems communicate using data (SDA) and clock (SCL) connections to transfer information between one or more master and slave node. Here’s a quick guide to how they operate:

1. Pullup resistors pull SDA and SCL lines high. Usually, these resistors are 5V or 3.3V, though you may occasionally see other voltages in use.

2. The transmitting device then pulls the lines to ground to signify data output.

3. If a system requires a new node, you can simply “clip it on” to the existing shared SDA and SCL lines. When you’re dealing with multiple nodes, this method simplifies wiring requirements dramatically.

You can use either a 7-bit system or a 9-bit system to address I2C devices, though the 7-bit systems are much more common. Each node on an I2C setup will need to have its own individual address, which can be either:

- Fixed

- Set via jumpers

- Set via solder connections

I2C Speed and Uses

Address space limits how many nodes can fit on a single bus, and the total bus capacitance must be below 400 picofarads (pF) for proper operation, which limits data transfer to a few meters. Data transmission takes place in 8-bit bytes, and the receiving party generates a ninth bit to acknowledge receipt. In I2C’s original implementation, transfer speed is set at 100 kilobits per second, though other rates up to 5 megabits per second (Ultra-Fast-mode) are also available.

Applications of I2C protocol are broad and employed for various purposes, including:

- Display identification data (EDID) for monitors using HDMI connectors

- Speaker volume control

- Accessing real-time clock modules

A wide variety of computers can take advantage of this bus, including those that run using Windows, Mac, Linux, and more. All major IC manufacturers implement I2C, and dev boards and single-board computers made by Arduino and Raspberry Pi commonly support this protocol for peripheral communication. The applications we’ve listed here are only a few of the possibilities for using I2C-linked systems; manufacturers are constantly developing new modules to take advantage of this technology.

 

Latest News

Sorry, your filter selection returned no results.

We've updated our privacy policy. Please take a moment to review these changes. By clicking I Agree to Arrow Electronics Terms Of Use  and have read and understand the Privacy Policy and Cookie Policy.

Our website places cookies on your device to improve your experience and to improve our site. Read more about the cookies we use and how to disable them here. Cookies and tracking technologies may be used for marketing purposes.
By clicking “Accept”, you are consenting to placement of cookies on your device and to our use of tracking technologies. Click “Read More” below for more information and instructions on how to disable cookies and tracking technologies. While acceptance of cookies and tracking technologies is voluntary, disabling them may result in the website not working properly, and certain advertisements may be less relevant to you.
We respect your privacy. Read our privacy policy here