Cover image for I2C

I2C

IĀ²C, pronounced ā€œI-squared-Cā€, stands for Inter-Integrated Circuit. Invented by Philips (now NXP Semiconductors) in the early 1980s, itā€™s a bi-directional, two-wire (usually) serial communication protocol primarily used to link a microcontroller to peripheral devices or other microcontrollers.

Robot Tips I2C How it works

2 September 2023 by Kevin McAleer | Share this article on


IĀ²C, pronounced ā€œI-squared-Cā€, stands for Inter-Integrated Circuit. Invented by Philips (now NXP Semiconductors) in the early 1980s, itā€™s a bi-directional, two-wire (usually) serial communication protocol primarily used to link a microcontroller to peripheral devices or other microcontrollers.

Understanding IĀ²C (Inter-Integrated Circuit): How It Works

The realm of embedded electronics often revolves around communication. Among the myriad of communication protocols available, IĀ²C stands out due to its simplicity and efficiency. In this article, weā€™ll dive deep into the world of IĀ²C, unraveling its intricate workings for those who want to master its use.


The Basics: Master and Slave

In the IĀ²C world, there are two primary roles:

  • Master: Initiates and controls the data transfer.
  • Slave: Responds to the master. Each slave on the bus has a unique address.

Multiple masters and slaves can be connected on the same bus, but only one master can take control at a time.


The Two Wires: SDA and SCL

The elegance of IĀ²C is encapsulated by its two-wire system:

  • SDA (Serial Data Line): Where the data is transmitted and received.
  • SCL (Serial Clock Line): The clock signal generated by the master to synchronize data transfer.

Start and Stop Conditions

Communication in IĀ²C begins with a start condition (a high-to-low transition on the SDA line while SCL remains high) and ends with a stop condition (a low-to-high transition on the SDA line while SCL remains high).


Data Transfer and Acknowledgment

After the start condition, the master sends the address of the targeted slave and a read/write bit. The addressed slave then sends an acknowledgment bit (ACK) to confirm receipt.

Each byte of data is followed by an ACK bit. If a slave doesnā€™t acknowledge, itā€™s a sign of an issue in communication, and the master can opt to retry or abort the transaction.


Clock Stretching

One interesting feature of IĀ²C is clock stretching. A slave can hold the SCL line low after receiving or sending a byte, signaling the master to wait. This mechanism ensures that a slower slave can keep up with a faster master.


Advantages and Limitations

Advantages:

  • Simple hardware interface.
  • Supports multiple masters and slaves.
  • Built-in error checking with ACK/NACK.
  • Lower pin count compared to parallel interfaces.

Limitations:

  • Slower data rate compared to SPI.
  • Address conflicts if two slaves have the same address.
  • Limited to short-distance communication.

Conclusion

IĀ²C is a robust and efficient communication protocol that has found its way into numerous applications, from simple sensors to complex systems. Its simplicity and the capability to address multiple devices with just two wires make it a go-to choice for many designers. While it has its limitations, understanding its intricacies ensures that one can leverage its strengths to the fullest.


Did you find this content useful?


If you found this high quality content useful please consider supporting my work, so I can continue to create more content for you.

I give away all my content for free: Weekly video content on YouTube, 3d Printable designs, Programs and Code, Reviews and Project write-ups, but 98% of visitors don't give back, they simply read/watch, download and go. If everyone who reads or watches my content, who likes it, helps fund it just a little, my future would be more secure for years to come. A price of a cup of coffee is all I ask.

There are a couple of ways you can support my work financially:


If you can't afford to provide any financial support, you can also help me grow my influence by doing the following:


Thank you again for your support and helping me grow my hobby into a business I can sustain.
- Kevin McAleer