I2C  protocol


  • What is I2C ? – I²C (Inter-Integrated Circuit)(alternately spelled I2C or IIC)(most commonly pronounced I-squared-C) is a multimaster serial single-ended computer bus invented by the Philips semiconductor division, today NXP Semiconductors, and used for attaching low-speed peripherals to main system.


  • How I2C protocol work – The I2C protocol requires only 2 signals: clock and data.  Clock is known as SCL or SCK (for Serial Clock), while data is known as SDA (for Serial Data).  What makes I2C unique is the use of special combinations of signal conditions and changes.  Fundamentally, there are just two: Start and Stop.  A ‘START” condition is generated by the Master, followed by 7 bits of address, then a ReadWrite bit.  If a slave device detects an address match, it will send an ACK by driving SDA low during the next clock cycle; if no slave recognizes the address then the SDA line will be left alone to be pulled up high.  Following a successful ACK, data will be either sent to the slave device or read from the slave device (depending on what was indicated by the Read/Write bit).  Therefore, each byte is 9 bits: either 7 address plus one R/W plus one ACK/NAK, or 8 data plus one ACK/NAK.  The last data byte of a transaction should generally be followed by a NAK, to indicate that it is intended to be the final byte.  After this, either a STOP or a ReSTART should be issued by the Master. Bus errors are rarely introduced when using a dedicated I2C peripheral on the Master.

i2c protocol

  •   Feature of  I2C protocol
  •  I2C protocol supports multiple data speeds: standard (100 kbps), fast (400 kbps) and high speed (3.4 Mbps) communications.
  • Built in collision detection
  • 10-bit Addressing
  • Supports both Multi-master and Multi-master with Slave functions.
  • Data broadcast (general call).
  • Since only two wires are required, I2C is well suited for boards with many devices connected on the bus. This helps reduce the cost and complexity of the circuit as additional devices are added to the system.

i2c protcol


  • Applications-       The I2C bus is a great option for applications that require low cost and simple implementation rather than high speed. For example, reading certain memory ICs, accessing DACs and ADCs,reading sensors,access LCDs, transmitting and controlling user directed actions, reading hardware sensors, and communicating with multiple microcontrollers are common uses of the I2C communication protocol.I2C also used for attaching low-speed peripherals to a motherboard, embedded system, cellphone, or other digital electronic devices. Several competitors, such as Siemens AG (later Infineon Technologies AG, now Intel mobile communications), NEC, Texas Instruments, STMicroelectronics (formerly SGS-Thomson), Motorola (later Freescale), and Intersil, have introduced compatible I²C products to the market since the mid-1990s.

 Click Here : Depth understanding of I2C Protocol

coming   soon……


 1.  Program write and read data from EEPROM 24LC04 by I2C Protocol  with arm (lpc2148) and send data to through UART 0.



Content for the tab VIDEO

 Suggested Reading

  1. Real Time Clock of ARM7 ( LPC2148 )
  2. SPI Protocol of ARM7 ( LPC2148 )
  3. RS232 protocol of ARM7 ( LPC2148 )