What is I2C communication? How do we understand the concepts, working, and application of I2C communication? These are some of the common questions that we get to hear and will answer these in this article.
What is I2C communication?
I2C stands for inter-integrated circuits. This is a communication protocol developed by Philips that is used for data transfer using simple connections. Owing to this advantage, they are widely used in communication between common electronic components such as sensors, display, microcontrollers, etc.
In this communication protocol, data bits are transferred at certain intervals of time and hence is synchronous in nature.
Brief history
In the year 1982, the first model of I2C was developed by Philips for its chips. This was limited to 100kHz communication and only provided only 7-bit addresses. Later, a publication with a 400kHz fast-mode type was added and published.
Additionally, Intel published a variant SMBus, in order to maximize predictability as well as speeds. These have lost operational costs as well as maximized interoperability.
Working
In this type of communication, data is transferred as messages which as broken up into frames. There includes an address frame that stores the slave's binary address. The message starts stops, read/write, and acknowledgments bits between data frames.
Start: The SDA switches from HIGH to LOW even before the SCL switch does it. Once this is done, all the devices (even if they are in sleep mode) are active and wait for address bits.
Stop: The SCL switches from LOW to HIGH even before SCL does it.
Address Frame: This is a 7-bit sequence which helps to transfer the data between the master and the slave.
Read/Write: This bit is used to specify the direction of data transfer. If the master needs to send data to the slave, this bit is saved to '0'. In the reverse case, the bit is set to '1'.
ACK/NACK: This is the short-form of Acknowledged/not Acknowledged. The default value of this bit is '1' and is set to '0' if the physical address of the slave and master coincide with each other.
Data Frame: If the ACk is detected with data, then the slave is all good to go for the first data frame to be sent. The data frame consists of 8 bits and sends the MSB first. This is immediately acknowledged using ACK/NACK bit to show the scenario.
Once all the data frames are sent, a stop condition is sent by the master so the transmission is completed. This transmits SDA from low to high and the process is completed successfully.
Similar to SPI communication, this also has varied possibilities for masters and slaves. Let us check out these: one master, one slave and one master, multiple slaves.
Multiple masters and multiple slaves.
Applications:
Due to its low cost, simplicity it is considered as a great option despite lower speeds. Some of the common real-life applications include:
Some of these are mainly used to access certain memory ICs.
These can be really beneficial while accessing DACs and ADCs.
Controlling and transmitting user-directed actions could be facilitated easily using I2C.
They could be taken advantage of while reading hardware.
Communication with multiple micro-controller
Advantages
There is only a need for two wires.
It provides support for multiple masters and multiple slaves.
Using the acknowledge bits, confirmation can be easily done
Compared to UARTs, the hardware is lesser.
Very popular and widely used protocol.
Disadvantages
Slower data transfer rate.
Data Frame size is limited to 8 bits.
Hardware is more complicated to be implemented compared to that of SPI.
See Also:
Order Electronics Projects
Want us to guide you through your project or make the project for you? Click on the button below or reach out to us via Call/WhatsApp at (+91) - 7600948607
You can -
Order Basic Electronics Projects
Order Embedded Systems Projects
Order IoT Projects
Order FPGA Projects
Order VLSI Projects
Order Image Processing Projects
Order Matlab Projects
Order TinkerCAD Projects
Order Proteus Projects
Click on the button below to fill out the project inquiry form -
Create Various Projects
Check out our Free Arduino Projects Playlist - Arduino Projects
Check out our Free Raspberry Pi Projects Playlist - Raspberry Pi Projects
Check out our Free TinkerCAD Projects Playlist - TinkerCAD Projects
Check out our Free IoT Projects Playlist - IoT Projects
Check out our Free Home Automation Projects Playlist - Home Automation Projects
Check out our Free NodeMCu Projects Playlist - NodeMCu Projects
Follow us -
Please do follow us i.e. #learnelectronicsindia to get daily updates about new blogs, videos, courses, products, offers, competitions, quizzes, and Internship Opportunities.
Learn Electronics India's blog on I2C Communication is a treasure trove of knowledge. I appreciate the effort taken to include real-world examples, making it easier to grasp the concepts. It's a must-read for electronics enthusiasts.
Clear and concise. LearnElectronics India's expertise shines through.