I2C-Protocol-header

I²C (Inter-Integrated Circuit) 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.     

Beispiel_fuer_implentation_I2C_Bus

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.

A2B ist ein Single-Master-, Multiple-Slave-System, bei dem der Transceiver-Chip am Host-Controller der Master ist. Er generiert Clock-, Synchronisations- und Framing-SYNCs für alle Slave-Knoten. Der Master A2B-Chip kann über den Steuerbus (I2C) konfiguriert werden. Eine Erweiterung dieses Steuerbusses ist in den A2B-Datenstrom eingebettet und ermöglicht den direkten Zugriff von Registern und Statusinformationen des Slave-Transceivers sowie I2C-zu-I2C-Kommunikation.

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.

i2c-protocol

I2C communication protocol

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

 

Properties
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.

Overview of the I2C development tools

I2C model comparison

Aardvark-I2C-Host-adapter-small
Aardvark I2C/SPI Adapters

Promira I2C/SPI/eSPI Plattform
Promira I2C Level 1

Promira I2C/SPI/eSPI Plattform
Promira I2C Level 2

beagle i2c/spi protocol analyzer small
Beagle I2C/SPI Protocol Analyzer

Article numberTP240141TP500110TP500110TP320121
Protocols supportedI2CI2CI2CI2C, MDIO,
SPI single I/O
FunctionMaster/Slave Host AdapterMaster/Slave Host AdapterMaster/Slave Host AdapterReal-time Bus Monitor
Master Clock Speed800kHz1MHz3.4MHz24MHz
Slave clock speed800kHz1MHz3.4MHz24MHz
Chip/Slave Select1N/AN/AMonitor 1 slave select
Slave Capability><= 6AdvancedUltraN/A
Voltage Level (V)3.3-5V0.9-3.45V, 5V0.9-3.45V, 5V3.3-5V
Target Power5V, 30mA available2 Independent, 1 Programmable, (0.9-3.45V), 1 Switchable (3.3-5V) 200mA available2 Independent, 1 Programmable, (0.9-3.45V), 1 Switchable (3.3-5V) 200mA available5V, 30mA available
connectionFull Speed ​​USBHigh Speed ​​USB, EthernetHigh Speed ​​USB, EthernetHigh Speed ​​USB