Validating and using the I2C protocol
Vera Apoorvaa, Cypress
EDN (July 15, 2014)
I2C is a two wire, clock synchronized protocol with a bi directional data line and a uni directional clock line. Its simplicity lies in its use of only two lines for communication and its complexity lies in the fact that these lines are shared among all the devices on the bus. The I2C bus can have several masters and slaves connected on the same two lines and bus arbitration is employed to handle bus contentions. The scope of this article is to bring out some common I2C issues that come up while validating and using the I2C protocol.
Bus Contention and Arbitration – An Overview
When a master sends data on the bus, it also repeatedly probes the bus to ensure the data it sent out is actually driven on the bus. When two masters drive data simultaneously on the bus (let us assume a simple case wherein both masters are operating at the same bit rate), all goes well until the data bits driven by both masters are the same. When the data bit they drive differ, that is, say master A drives a dominant bit (read ‘0’ for an open drain drive low bus) and master B drives a recessive bit (read ‘1’ for an open drain drive low bus), the resultant bus state is dominant (‘0’). Master B senses it has lost arbitration and backs away from sending the rest of the message bits. Master A completes its transaction with no intervention. In fact, master A has no clue that master B has been contending for the bus (figure 1). In summary, all devices on the bus are capable of driving data on the bus and are listening to the bus. Hence, it is important that all devices function in compliance and misbehaving devices be identified and isolated.
To read the full article, click here
Related Semiconductor IP
- Intel 18A 1.2V/1.5V I2C
- Intel 16 1.8V I2C with 3.3V Fail-safe & Fail-tolerant
- GF 22FDX 1.8V/3.3V I2C with 5V Fail-Safe and Fail-Tolerant Library
- GF 22FDX 1.8V/3.3V I2C with 5V Fail-Safe and Fail-Tolerant Library
- GF 22FDX 1.8V/3.3V I2C with 5V Fail-safe & Fail-tolerant Auto Grade 1 Library
Related Articles
- NoCs and the transition to multi-die systems using chiplets
- Efficient I2C Bus debug using Mixed Signal Oscilloscopes
- The complete series of high-end DDR IP solutions of Innosilicon is industry-leading and across major foundry processes
- How to Elevate RRAM and MRAM Design Experience to the Next Level
Latest Articles
- Design and Development of a Neuromorphic Silicon Suite: PVT Sensing, Stochastic LIF Inference, On-Chip STDP Learning, and Crossbar Programming
- LLM4RTL: Tool-Assisted LLM for RTL Generation
- Towards Delta Aware Training: Efficient DNN Weight Storage for Resource-Constrained FPGAs
- CHERI-D: Secure and efficient inline object ID for CHERI temporal memory safety
- AIA: A 16nm Multicore SoC for Approximate Inference Acceleration Exploiting Non-normalized Knuth-Yao Sampling and Inter-Core Register Sharing