- SPI protocol requires more hardware(I²C needs 2 lines and that’s it, while SPI formally defines at least 4 Signals).
- SPI procol is faster than I2C, it works in full duplex mode, can transmit upto 10Mbps whereas I2C is limited to 1Mbps in normal mode and 3.4Mbps in fast mode.
- SPI can have only one master whereas I2C supports more than one masters.
- In SPI there is no limitation to the number of bits transmitted in one frame(I2c 8bits).
- SPI is non standard whereas I2C is standard protocol.
Read these two posts for better understanding