srvo

I²C (I2C) bus

also: I2C · IIC · two-wire interface · SMBus

A simple two-wire bus for connecting a processor to many low-speed chips on the same board, such as sensors, small memories and battery gauges.

I²C uses one clock line and one data line shared by many devices, each with its own address. It is the default way to connect sensors, EEPROMs, real-time clocks, battery fuel gauges and I/O expanders. The specification defines speed grades of up to 100 kbit/s (Standard-mode), 400 kbit/s (Fast-mode) and 1 Mbit/s (Fast-mode Plus), plus faster variants that are rarely used.

It is designed for short connections on one board. The bus relies on pull-up resistors and has limited drive strength, so long wires, many devices or noisy environments cause errors. A single misbehaving device can hold the bus low and stall everything on it.

Where it bites: address conflicts between identical chips, pull-up values that don't suit the bus capacitance, and firmware that cannot recover a stuck bus. Off-board cables usually call for a bus buffer or a different interface.

Founder takeaway

Keep I²C on the board, check for address conflicts in the schematic, and make sure the firmware can recover a stuck bus.

  engineer review pending

Ask an engineer