Google News
logo
Embedded C - Interview Questions
What is the difference between the I2c and SPI communication Protocols?
In the embedded system, I2C and SPI both play an important role. Both communication protocols are the example of synchronous communication but still, both have some important differences.
 
The important difference between the I2C and SPI communication protocol.
 
* I2C supports half-duplex while SPI is full-duplex communication.
* I2C is slower as compared to the SPI communication.
* I2C draws more power than SPI.
* I2C is less susceptible to noise than SPI.
* I2C is cheaper to implement than the SPI communication protocol.
* I2C supports arbitration while SPI does not support the arbitration.
* I2C support the clock stretching while SPI does not support the clock stretching.
* I2C can be locked up by one device that fails to release the communication bus.
* I2C has some extra overhead due to start and stop bits.
* I2C is better for long-distance while SPI is better for the short distance.
* In the last I2C developed by NXP while SPI by Motorola.
* I2C requires only two-wire for communication while SPI requires three or four-wire for communication (depends on requirement).
* I2C work on wire and logic and it has a pull-up resistor while there is no requirement of a pull-up resistor in case of the SPI.
* In I2C communication we get the acknowledgment bit after each byte, it is not supported by the SPI communication protocol.
* I2C ensures that data sent is received by the slave device while SPI does not verify that data is received correctly.
* I2C supports multi-master communication while multi-master communication is not supported by the SPI.
* One great difference between I2C and SPI is that I2C supports multiple devices on the same bus without any additional select lines (work based on device address) while SPI requires additional signal (slave select lines) lines to manage multiple devices on the same bus.
 
Advertisement