SLVA704A June   2015  – October 2026 INA209 , INA219 , INA220 , INA220-Q1 , INA223 , INA226 , INA226-Q1 , INA230 , INA231 , INA3221 , INA3221-Q1 , LM8323 , LM8325-1 , LM8327 , LM8328 , LM8330 , LM8333 , LM8335 , OPT3001 , OPT3001-Q1 , OPT3002 , OPT3004 , OPT3006 , OPT3007 , P82B715 , P82B96 , PCA6107 , PCA9306 , PCA9306-Q1 , PCA9515A , PCA9515B , PCA9518 , PCA9534 , PCA9534A , PCA9535 , PCA9536 , PCA9538 , PCA9539 , PCA9543A , PCA9544A , PCA9545A , PCA9546A , PCA9548A , PCA9554 , PCA9554A , PCA9555 , PCA9557 , PCF8574 , PCF8574A , PCF8575 , PCF8575C , TCA4311A , TCA5405 , TCA6408A , TCA6416A , TCA6418E , TCA6424A , TCA6507 , TCA8418 , TCA8418E , TCA8424 , TCA9406 , TCA9509 , TCA9517 , TCA9517A , TCA9534 , TCA9534A , TCA9535 , TCA9538 , TCA9539 , TCA9539-Q1 , TCA9543A , TCA9544A , TCA9545A , TCA9546A , TCA9548A , TCA9554 , TCA9554A , TCA9555 , TCA9617A , TCA9617B , TCA9800 , TCA9801 , TCA9802 , TCA9803

 

  1.   1
  2.   Abstract
  3.   Trademarks
  4. 1Electrical Characteristics
    1. 1.1 Open-Drain for Bidirectional Communication
      1. 1.1.1 Open-Drain Pulling Low
      2. 1.1.2 Open-Drain Releasing Bus
  5. 2I2C Interface
    1. 2.1 General I2C Operation
      1. 2.1.1 START and STOP Conditions
      2. 2.1.2 Repeated START Condition
    2. 2.2 Data Validity and Byte Format
    3. 2.3 Acknowledge (ACK) and Not Acknowledge (NACK)
  6. 3I2C Data
    1. 3.1 Writing to a Target On The I2C Bus
    2. 3.2 Reading From a Target On The I2C Bus
  7. 4Revision History

Abstract

The I2C bus is a very popular and powerful bus used for communication between a controller (or multiple controllers) and a single or multiple target devices. The figure below illustrates how many different peripherals may share a bus which is connected to a processor through only 2 wires, which is one of the largest benefits that the I2C bus can give when compared to other interfaces.

This application note is aimed at helping users understand how the I2C bus works.

The figure below shows a typical I2C bus for an embedded system, where multiple target devices are used. The microcontroller represents the I2C controller, and controls the IO expanders, various sensors, EEPROM, ADCs/DACs, and much more. All of which are controlled with only 2 pins from the controller.

 Example I2C
                        Bus Example I2C Bus