Header Ads

What is difference between I2C and SPI protocol

As an embedded Engineer, I came across this question many times. I have seen it is required to have a small descriptive answer to differentiate both. This is for the people who all are preparing for your interviews.


  • I2C is developed by Philips while SPI is developed by Motorola. 
  • I2C is half duplex communication whereas SPI is full duplex communication. 
  • SPI will latch the data either on rising or falling edge depending on a mode.

Maximum Speed of Communication:

In case of I2Ccommunication speed is limited to 100/400kbps in 7-bit mode max 400kbps. I2C has two modes of operation i) 7 bit and ii) 10 bit. You can achieve the speed of more than 1MPBS with SPI communication

Required Pins:

I2C is two wire communications it require only two lines (SDA & SCL) Where as SPI require slave select for the each device you connect with it. So it is ways to connect more than one device to the controller without much change in hardware.

Arbitration:

Multi-master communication is possible in case of I2C. It has zero wins mechanism for bus management.

Software Re-usability:

Once you implement the basic communication module of I2C, It is easy to add and edit the change in code compare to SPI communication.

Noise sensitive:

Noise sensitivity of I2C is high compared to SPI.