Skip to main content
What is I2C (Inter-Integrated Circuit)?
  1. Glossary/

What is I2C (Inter-Integrated Circuit)?

7 mins·
Ben Schmidt
Author
I am going to help you build the impossible.

You might hear your engineering team throw around acronyms that sound like alphabet soup when you are building a hardware startup.

One of the most common terms you will encounter in the embedded systems world is I2C.

It stands for Inter-Integrated Circuit.

At its core, I2C is a communication protocol. It allows different chips on a circuit board to talk to one another.

It was invented by Philips Semiconductor, which is now NXP, back in the early 1980s.

The goal was simple. They needed a way to make it easier to connect a central processor to various peripheral chips like sensors or memory without turning the circuit board into a massive tangle of wires.

For a founder, understanding I2C is not about learning to code drivers or read an oscilloscope.

It is about understanding the constraints and opportunities within your hardware design.

It helps you understand why your engineers might choose a specific sensor over another or why a certain feature is creating a bottleneck in data transmission.

The Mechanics of I2C

#

I2C is defined as a synchronous, multi-master, multi-slave, packet-switched, single-ended, serial computer bus.

That is a mouthful.

Let us break that down into plain English.

Synchronous: This means the communication happens in time with a clock signal. One line carries the data, and another line carries a steady pulse that tells the receiving chip exactly when to read that data.

Multi-master, Multi-slave: In many systems, you have one boss and many workers. I2C allows for multiple “boss” chips (masters) to control the line, though usually, there is just one. There can be many “worker” chips (slaves) listening for instructions.

Two Wires Only: This is the main selling point. You only need two wires to connect a whole chain of devices.

These two wires have specific names.

  1. SDA (Serial Data): The line where the actual information travels.
  2. SCL (Serial Clock): The line that keeps everyone in sync.

Because it only uses two wires, it simplifies the physical design of your printed circuit board, or PCB.

Fewer wires mean fewer traces on the board.

Fewer traces mean you can potentially make the board smaller or leave room for other components.

When the master wants to talk to a slave, it sends out a unique address.

Every chip on the I2C bus has a specific address, like a house number.

All the chips listen, but only the one with the matching address responds.

This architecture makes it incredibly easy to add new sensors or components to a design without redesigning the entire communication structure.

Comparing I2C to SPI and UART

#

To understand the value of I2C, you have to look at the alternatives.

The two most common competitors are SPI (Serial Peripheral Interface) and UART (Universal Asynchronous Receiver-Transmitter).

I2C vs. SPI

SPI is generally faster than I2C.

If you are streaming high-quality audio or moving pixel data for a display, your engineers will likely choose SPI.

However, SPI requires more wires.

It needs four distinct lines plus an additional “chip select” line for every single device you add.

If you have ten sensors, SPI becomes a wiring nightmare.

I2C keeps it at two wires regardless of how many sensors you have, up to the address limit.

I2C vs. UART

UART is what people typically think of as a standard serial port.

It is asynchronous, meaning there is no clock line.

The devices just have to agree on a speed beforehand.

UART is typically a one-to-one connection.

You cannot easily daisy-chain ten devices together on a single UART port like you can with I2C.

The Trade-off

I2C reduces physical complexity on boards.
I2C reduces physical complexity on boards.
I2C is the middle ground.

It is not the fastest.

It is not the simplest to program.

But it is the most efficient in terms of physical space and pin count on the microcontroller.

Why This Matters for Your Startup

#

When you are building a physical product, everything comes down to the Bill of Materials (BOM) and the complexity of the PCB.

I2C is ubiquitous in the component supply chain.

Accelerometers, temperature sensors, battery fuel gauges, and touch controllers almost always offer an I2C interface.

This availability gives your startup strategic advantages.

Sourcing Flexibility: Because I2C is a standard, you often have second-source options. If one temperature sensor is out of stock, you might find a similar one from a different vendor that speaks the same language.

Reduced Complexity: Keeping the pin count low on your main processor means you might be able to use a cheaper, smaller microcontroller.

Legacy Support: Since the protocol has been around since the 80s, it is well-understood. There are thousands of software libraries available, which can speed up your firmware development time.

However, it is not without risks.

The speed limit is real.

Standard I2C runs at 100 kHz. Fast mode runs at 400 kHz.

That sounds fast, but in the world of computing, it is a crawl.

If your product relies on real-time, high-frequency data sampling, I2C might be the bottleneck that kills the user experience.

The Hidden Challenges of I2C

#

While I2C is great, it introduces specific problems that you need to be aware of during the development phase.

Address Conflicts

Since every device needs a unique address, you run into trouble if you buy two sensors that have the same hardcoded address.

Manufacturers often let you change the last digit of the address, but not always.

This can force you to add extra hardware just to talk to two identical parts.

Bus Capacitance

This is a physics problem.

The more devices you hang on those two wires, and the longer those wires are, the harder it is for the signal to change from a 0 to a 1 fast enough.

It is like trying to shout down a very long tunnel filled with cotton.

Eventually, the signal gets mushy.

This limits the physical distance between chips. I2C is strictly for on-board communication. You cannot run I2C over a cable across the room without special extenders.

Pull-up Resistors

I2C requires external resistors to pull the lines high voltage when no one is talking.

Getting the value of these resistors wrong can lead to intermittent bugs that are incredibly expensive to diagnose.

Questions to Ask Your Engineering Team

#

As a founder, you do not need to solve the bus capacitance equation.

But you do need to ask the right questions to ensure the product is viable and scalable.

Here are the unknowns you should surface in your next design review:

  1. “Do we have any address conflicts on the bus?” If the answer is yes, ask how they are solving it. Are they adding a multiplexer? That adds cost. Are they buying a more expensive version of the sensor with a different address?

  2. “What is our bus utilization?” Are we saturating the I2C line? If the bus is 90% full just keeping the device idle, you have no room for future features or firmware updates that might need to send more data.

  3. “Are we mixing voltage levels?” Some modern chips run at 1.8 Volts. Older ones run at 3.3 Volts or 5 Volts. Mixing them on the same I2C bus requires level shifters. This adds to the BOM cost and board size.

  4. “How are we handling lockups?” Sometimes a slave device gets confused and holds the line hostage. Does the firmware have a way to reset the bus without forcing the user to pull the battery?

I2C is a workhorse of the electronics industry.

It allows you to build complex, sensor-rich devices without breaking the bank or the laws of physics regarding space on a board.

By understanding the basics of this protocol, you can make better decisions about component selection, feature sets, and the overall architecture of your hardware product.