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.

I²C Technical Function

I²C works as a **master-slave protocol**. The master generates the clock and initiates communication. Each transaction contains:

  1. START Condition: SDA goes LOW while SCL is HIGH.
  2. Address Frame: 7 or 10 bits, followed by a R/W bit.
  3. Acknowledge Bit: Slave pulls SDA LOW to acknowledge receipt.
  4. Data Frames: 8-bit data transfers with ACK/NACK.
  5. STOP Condition: SDA goes HIGH while SCL is HIGH.
The **bus supports multiple masters**, but arbitration is needed to avoid collisions.

I²C Diagram

I2C diagramme