I²C (Inter-Integrated Circuit) bus
I²C (I2C) is a two-wire serial communications bus for connecting integrated circuits and microcontrollers, supporting multi-master systems, simple wiring, and common sensor/peripheral interfaces.
Overview
I²C, often written I2C and pronounced "I-squared-C," is a simple two-wire serial bus used to connect multiple electronic devices such as microcontrollers, sensors and memory chips. It provides a standardized method for short-distance communication between integrated circuits using only two signal lines and a shared reference ground. The bus is widely adopted in embedded systems, consumer electronics, and instrumentation because of its modest pin count and flexible addressing.
Image gallery
4 ImagesTechnical characteristics
The physical interface uses two lines: SDA (data) and SCL (clock). Both are typically implemented as open-drain or open-collector outputs and require pull-up resistors. Key protocol features include start and stop conditions, byte-oriented transfers, an acknowledgement (ACK) bit after each byte, and address frames that identify the target device. Addressing commonly uses 7-bit addresses with an extension to 10-bit addressing when needed. Standard clock rates commonly encountered are 100 kbit/s (standard-mode) and 400 kbit/s (fast-mode); later extensions support 1 Mbit/s and higher for specialized uses.
How it works
Communication begins when a master device issues a start condition, then sends an address and a read/write bit. Slaves matching the address respond with ACK, after which data bytes are exchanged. A repeated start allows the master to change direction or address without releasing the bus. Multiple masters are possible; arbitration resolves simultaneous attempts to control the bus so only one master proceeds. Devices may use clock stretching to hold SCL low when they need more time to process data.
History and standards
I²C was created by Philips Semiconductor in the early 1980s and has since become a de facto industry standard. The specification evolved to cover higher speeds and extensions; several related standards such as SMBus and PMBus borrow heavily from I²C conventions while adding stricter timing or command definitions. Documentation and device support are extensive, which contributes to the bus's popularity.
Uses, examples and comparisons
- Typical peripherals: temperature sensors, real-time clocks, EEPROMs, ADCs/DACs and small displays.
- Useful for board-level communications where pin count and wiring simplicity matter; widely used inside consumer electronics and development boards.
- Compared with other links: I²C uses fewer wires than SPI but is generally slower; unlike UART, it is synchronous and can support addressing and multiple devices on one pair of lines.
For general background on serial communication buses see serial bus references and for information on the devices that commonly connect via I²C see resources on integrated circuits. The protocol's blend of simplicity and flexibility explains its widespread use in embedded systems and electronics design.
Related articles
Author
AlegsaOnline.com I²C (Inter-Integrated Circuit) bus Leandro Alegsa
URL: https://en.alegsaonline.com/art/46400