I²C Bus



In the early 80s, Philips invented the I2C serial data bus to be able to control several chips in between a TV.  I2C is developed as a Master-Slave bus. A data transfer is always initiated by a master, the slave appealed via an address will respond accordingly. Due to the simple concept and the successful implementation, I2C became a standard. More than 1.000 different IC's from over 50 manufactures nowadays are using the I2C technology.     


How the I2C bus works

The I²C communication protocol uses only two bidirectional open collector or open drain lines, Serial Data Line (SDA) and Serial Clock Line (SCL), which are pulled up with resistors. Typical voltages traditionally used were +5 V or +3.3 V; Recently, however, +2.5 V, +1.8 V and +1.2 V have become more common.



Figure 1: Example of an I2C implementation


Example of an I2C implementation

Regardless of how many slave units are connected to the I2C bus, only two signals are connected to all. As a result, additional overhead arises because an addressing mechanism is required for the master device to communicate with a particular slave device.

Since all communication takes place over two wires, all devices must have a unique address in order to identify them on the bus. Slave devices have a predefined address, but the lower bits of the address can be assigned to allow multiples of the same devices on the bus.

The advent of the Internet of Things ("IOT") in conjunction with the small number of pins in serial I2C communication has led to a revival of I2C usage. Common applications are serial data management, including serial data transfer to / from sensors, programming EEPROMs, and retrieving polling / receiving sensor data.


Theory of operation

I2C has a master / slave protocol. The master initiates communication. The order of events is:

The master device issues a start condition. This condition instructs all slave devices to look for instructions on the serial data line.
The master device sends the address of the target slave device and a read / write flag.
The slave device with the appropriate address replies with a confirmation signal.
Communication between the master and the slave continues on the data bus. Both the master and the slave can receive or send data depending on whether it is a read or a write communication. The transmitter sends 8-bit data to the receiver, which responds with a 1-bit confirmation.
When communication is complete, the master issues a stop condition indicating that everything is done.


Figure 2: I2C communication protocol


I2C communication protocol

Since there are only two wires, this protocol includes the additional overhead of an addressing mechanism and an acknowledgment mechanism


I2C has many important functions that are worth mentioning. It supports multiple data speeds: standard mode (100 kbps), fast mode (400 kbps), fast mode plus, high-speed mode (3.4 Mbit / s) and ultra-fast mode (5.0 Mbit / s) I2C communication.


Other functions are:

Built-in collision detection
10-bit addressing
Multi-master support
Data transmission (general call).


Advantages and disadvantages

Since only two wires are required, I2C is well suited for cards with many devices connected to the bus. This helps reduce the cost and complexity of the circuit when additional devices are added to the system.

Due to the presence of only two wires, the handling of the addressing and confirmation effort is additionally complex. This can be inefficient in simple configurations and a direct connection interface like SPI can be preferred.


Totalphase I2C Products


Total Phase
Aardvark Promira I2C-Level 1 Promira I2C-Level 2 Beagle I2C/SPI
Aardvark I2C/SPI Host Adapter  Promira I2C-Level 1 Promira I2C-Level 2 Beagle I2C/SPI 
Part Number TP240141 Promira Serial I2C Platform TP500110 TP320121
SPI-Single I/O
Function Master/Slave Host Adapter Master/Slave Host Adapter Master/Slave Host Adapter Real-time Bus Monitor
Master Clock Speed 800 kHz 1 MHz 3.4 MHz 24 MHz
Slave Clock Speed 800 kHz 1 MHz 3.4 MHz 24 MHz
Chip/Slave Select 1 N/A N/A Monitor 1 slave select
Slave Capability < = 6 Advanced Ultra N/A
Voltage Levels (V) 1 3.3-5V 0.9-3.45 V, 5 V 0.9-3.45 V, 5 V 3.3-5V
Target Power 5 V, 30mA available 2 Independent, 1 Programmable, (0.9-3.45 V), 1 Switchable (3.3-5V) 200mA available 5 V, 30mA available
Connection Full Speed USB High Speed USB, Ethernet High Speed USB, Ethernet High Speed USB
1 Compatible with 5V

Display per page
Sort by

Beagle I2C/SPI Protocol Analyzer

Product no.: TP320121

The versatile Beagle I2C/SPI Protocol Analyzer is the ideal tool for the embedded engineer who is developing an I2C, SPI, or MDIO based product.

395.00 *
Product data sheet
In Stock, Delivery within 1-2 working days

I3C Protocol Exerciser and Analyzer (Lite version)

Product no.: PGY-I3C-EX-PD-Lite (v1.1)

The PGY-I3C-EX-PD combines host adapter and protocol analyzer in one device. Thanks to its backward compatibility, it is suitable for I3C and I2C applications.

Product data sheet

Promira Serial I2C/ SPI/ eSPI Platform

Product no.: TP500110

Promira is a universal hardware platform usable for a variety of applications, like I2C, SPI and eSPI.

from 1,060.00 *
Product data sheet
In Stock, Delivery within 1-2 working days

Total Phase Aardvark I2C/SPI Host Adapter

Product no.: TP240141

Erase, program, verify Memory Devices - The Aardvark I2C/SPI Host Adapter is a fast and powerful I2C bus and SPI bus host adapter through USB. Official Distributor of Total Phase.

330.00 *
In Stock, Delivery within 1-2 working days

Total Phase I2C Development Kit

Product no.: TP120112

Total Phase I2C Development Kit consists of an Aaardvark, a beagle, 2 x 10-pin split cables, 1 x I2C / SPI activity board and 2 two 1.83 cm USB A to B cables.

749.00 *
In Stock, Delivery within 1-2 working days

Plus Vat for enduser and companies located in Germany