Bugünkü yazımda daha önce detaylı olarak incelediğimiz I2C ve SPI Seri Haberleşme protokollerinin arasındaki farkları sizlerle paylaşacağım. Elektronik tasarım yaparken, hangi seri haberleşme protokollerinin projenizde kullanmanızın faydalı olacağını göz önünde bulundurmanızda sizlere fayda sağlayacaktır.

  1. I2C çoklu-master ve çoklu-slave olabilir, yani I2C veriyoluna bağlı birden fazla master ve slave olabilir. SPI çok tasarruflu olmasına rağmen çoklu-master seri protokolü yapısı bulunmaz, yani SPI veriyoluna bağlı tek bir master olabilir.
  2. I2C, yarı çift yönlü iletişim protokolüdür. SPI, tam dubleks bir iletişim protokolüdür.
  3. I2C, saat uzatma (clock stretching) özelliğine sahiptir, yani eğer slave hızlı veriyi yeterince hızlı gönderemezse, iletişimi durdurmak için saati bastırır. Saat uzatma özelliği SPI’da bulunmaz.
  4. I2C iletişim için sadece iki tel kullanılır, veriler için bir tel kullanılır ve ikinci tel saat için kullanılır. SPI iletişim için üç veya dört tele ihtiyaç duyar (gereksinime göre değişir), MOSI, MISO, SCL ve Çip seçme pimi.
  5. I2C, SPI’dan daha yavaştır. I2C’ye kıyasla SPI daha hızlıdır.
  6. I2C, SPI’dan daha fazla güç tüketmektedir. SPI, I2C’ye kıyasla daha az güç tüketir.
  7. I2C, SPI’dan daha az gürültüye duyarlıdır. SPI, gürültüye I2C’den daha çok duyarlıdır.
  8. I2C, SPI iletişim protokolünden daha ucuzdur. SPI, I2C ile kıyaslandığında maliyetlidir.
  9. I2C, kablo ve lojik üzerinde çalışır ve bir pull-up direncine sahiptir. SPI’da pull-up direnci bulunmaz.
  10. I2C iletişiminde her bayttan sonra onay biti alırız. Onay biti, SPI iletişim protokolü tarafından desteklenmiyor.
  11. I2C, gönderilen verinin slave cihazı tarafından alınmasını sağlar. SPI, verilerin doğru şekilde alındığını doğrulamaz.
  12. I2C çoklu master iletişimi destekler. SPI, çoklu master iletişimini desteklemiyor.
  13. I2C bir çoklu-master iletişim protokolüdür, bu yüzden hakem özelliğine sahiptir. SPI çoklu-master iletişim protokolü değildir, bu yüzden hakem özelliklerini içermez.
  14. I2C adres bazlı veriyolu protokolüdür, iletişim için slave’in adresini göndermeniz gerekir. SPI durumunda, iletişim için slave select pinini kullanarak slave’i seçmeniz gerekir.
  15. I2C, başlatma ve durdurma bitlerinden dolayı ek bir ekstra yüke sahiptir. SPI bir başlangıç ​​ve durdurma bitlerine sahip değildir.
  16. I2C, herhangi bir ek seçim hattı olmaksızın aynı veri yolunda birden fazla cihazı destekler (cihaz adresi temelinde çalışır). SPI, aynı veri yolunda birden fazla cihazı yönetmek için ek sinyal (Slave-Select hattı) gerektirir.
  17.  I2C uzun mesafe haberleşmeler için daha kullanışlıdır. SPI kısa mesafe haberleşmelerde daha iyidir.
  18. I2C, NXP (Eski ismiyle Philips) tarafından geliştirilmiştir. SPI, Motorola tarafından geliştirilmiştir.