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.
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
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.
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
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.
Total Phase Products |
Aardvark | Promira I2C-Level 1 | Promira I2C-Level 2 | Beagle I2C/SPI | |||||||
![]() |
![]() |
![]() |
![]() |
||||||||
Part Number | TP240141 | Promira Serial I2C Platform TP500110 | TP320121 | ||||||||
Protocols Supported |
I2C | I2C | I2C | I2C, MDIO, 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 |
Beagle I2C/SPI Protocol AnalyzerProduct no.: TP320121The versatile Beagle I2C/SPI Protocol Analyzer is the ideal tool for the embedded engineer who is developing an I2C, SPI, or MDIO based product. |
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. |
Promira Serial I2C/ SPI/ eSPI PlatformProduct no.: TP500110Promira is a universal hardware platform usable for a variety of applications, like I2C, SPI and eSPI. |
Total Phase Aardvark I2C/SPI Host AdapterProduct no.: TP240141Erase, 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. |
Total Phase I2C Development KitProduct no.: TP120112Total 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. |
Plus Vat for enduser and companies located in Germany