I²C Overview & History
I²C (Inter-Integrated Circuit) is a synchronous, multi-master, multi-slave, packet-switched, single-ended, serial communication bus invented by Philips Semiconductor (now NXP) in 1982.
It is widely used for connecting low-speed peripherals like sensors, EEPROMs, RTCs, and microcontrollers.
- Bus Lines: Two wires – SDA (data) and SCL (clock)
- Speed: Standard: 100 kHz, Fast: 400 kHz, Fast Plus: 1 MHz, High Speed: 3.4 MHz
- Addressing: 7-bit or 10-bit addresses for slave devices
- Topology: Multi-master and multi-slave possible
I²C Technical Function
I²C works as a **master-slave protocol**. The master generates the clock and initiates communication. Each transaction contains:
- START Condition: SDA goes LOW while SCL is HIGH.
- Address Frame: 7 or 10 bits, followed by a R/W bit.
- Acknowledge Bit: Slave pulls SDA LOW to acknowledge receipt.
- Data Frames: 8-bit data transfers with ACK/NACK.
- STOP Condition: SDA goes HIGH while SCL is HIGH.
The **bus supports multiple masters**, but arbitration is needed to avoid collisions.