I2C ile SPI iletişim arasındaki farklar?

Başlatan ziyaretci, 02 Aralık 2012, 02:26:57

ziyaretci

Merhaba,

I2C ile SPI iletişimlerinin arasındaki farklar veya avantaj,dezavantajlar nelerdir? 

Tecrübelerinizi paylaşır mısınız?

z

Avantaj dezavantaj yok. Bazı çipler birini  baziları da diğerini kullanıyor.

Firmalardan birisi birinin patentini alıyor bu durumda diğer firmalarda  altta kalmamak adına benzer bir başka yöntem geliştiriyor o da onun patentini alıyor.
Sonra hepbirlikte birbirlerine patent ödeye ödeye bu iletişimi kullanan çipler üretiyorlar.

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Mucit23


camby

Nette SPI ve I2C karşılaştırmalarını okumuştum , bolca kaynak var bu konuda . Bir tanesi güzeldi ancak şimdi bulamadım.

Yazının sonunda sonuç olarak şunları söylüyordu I2C az yol az hız , SPI daha çok yol daha fazla hız.

74595 gibi shift register entegresi kullandıysanız mantığını zaten biliyorsunuz demektir , her clock ile beraber bir data sinyali yolla.

Çevre birimlerinin genelde SPI ara yüzü olanları da oluyor I2C arayüzü olanları da oluyor. Ve ben hep SPI olanları seçiyorum. Pin sayısı derdim yok o yüzden maksimum hızda haberleşmek istiyorum. Hatta hala I2C kullanma fırsatım bile olmadı.

SPI'da da hız sınırı nerdeyse yok , yollayabildiğiniz max. clock hızı kadar. Tabi karşı tarafın da buna yetişebilmesi lazım.

Örneğin şimdi baktım STM32F407'de SPI hızı 37.5 Mbit/S .

gumush

i2c'de bus uzerindeki cihaza  ait bir adres var. Ayni pin uzerinden farkli adresleri olan 127 urunu baglayabilirsiniz.
Hikmet Gumus  izmir

ziyaretci

 Böyle bir soru sormamın nedeni SPI iletişimde pin sayısı artması idi, kendimce I2C iletişimi seçmiştim ama bilgilerinizi dikkate alacağım.

gumush

Cok tecrube yada deneyimim yok ama bende i2c tercih ediyorum.
Hikmet Gumus  izmir

ziyaretci

Alıntı yapılan: gumush - 02 Aralık 2012, 11:57:16
Cok tecrube yada deneyimim yok ama bende i2c tercih ediyorum.


Daha az kablo için olsa gerek yanlış mıyım benimde tercihimin sebebi buydu?

Murat Mert

S.A.
IC2 de 2 hat ile çalışırsın ama her slave için adresleme ve cevap alma rutini oluşturacaksın
SPI de ise her slave için CS için bir pin kullanacaksın. Yazılım ve kesmeler için SPI kolay. Ama SPI dede 3 pin ile adresleyerek slavelerleiletişim kurabilirsin ama SPI pin kullanmak daha güvenli.
mert07

skara1214

genelde kişisel bir tercih söz konusu olmuyor entegrede ne varsa onu kullanıyorsun ama daha güvenilir sonuç veren i2c çünkü ack bitleri adresleme v.s güvenilirlik sağlıyor spi da hız sağlıyor
Herkes ölür ama herkes gerçekten yaşamaz

JOKERAS

Selam,
I2C,SPI bu iki protokol oldukça  farklı bir yapıda...
Her iki yapının birbirine üstünlükleri,dezavantajları var.
SPI hız olarak çok hızlıdır ama her slave cihazı seçmek için ayrı bir hat olmak zorunda.
SPI full duplex çalışır bu durumda data gönderme ve alma aynı zaman dilminde yapılır,
bu çok büyük bir avantaj sağlar.
Master SDO --->,  Master SDI <---, Master SCL--->, Master SSn--->,
toplam 4 hat + slave n.Mesela SD-MMC vs kartlar bu protokolde data tranceiver yaparlar.
Avantajı yüksek hız ve full duplex çalışabilmesi,dezavantajı her slave için ayrı bir slave seçme hattı'nın
gerekli oluşudur,yazılımsal veya donanımsal çalışması oldukça basittir.
I2C bus sadece iki hat ile half duplex çalışır,SPI'a göre hızı çok düşüktür bildiğim kadarı ile şu an için max hız
2mbit.I2C Master SDA <--->, Master SCL ---> half duplex çalıştığı için aynı anda data gönderip data alamaz.
Data alma ve gönderme aynı hat'tan yani SDA'dan yapılır,bu durum zaten düşük olan bus hızı ile birleşince
dezavantaj artar.Bana göre I2C'nin  en güzel özelliği sadece iki hat kullanıyor olması ve çok güvenli olması.
I2C protokolü SPI protokolüne göre daha zordur.Kısaca özetlemek gerekirse SPI protokolü donanıma daha yakın,I2C protokolü yazılıma daha yakın çalışır.Bence yüksek hız gerektirmeyen durumlar için I2C kullanın,çok güzel bir protokol.

eistain_54

i2s hakkında bilgisi olan var mı acaba?Ses için kullanıldığı kesin ama tam olarak anlayamadım olayını.Bilgi verebilecek var mı?
Her gün 24 altın verilirken bunun için kime şükredersin ey ademoğlu!?!

skara1214

ses için kullanıldığı gibi birşey yok siz sürekli i2c ye denk gelmişsinizdir.
bilgi için;
http://en.wikipedia.org/wiki/I2c
Herkes ölür ama herkes gerçekten yaşamaz

z

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

X-Fi

#14
I2C protekol yapısı gereği kısadevreye bağışıklığı vardır arıza çıkartmaz I2C uçları kısadevre edip ayırıp tekrar kullanabilirsiniz ancak SPI uçları kısadevre edemezsiniz board dışı uzun hat haberleşilecek ise SPI riskli olur zaten böyle durumlarda rs485 önerilir. Uygulamaya göre tercih değişiyor.
http://www.coskunergan.dev/    (Yürümekle varılmaz, lakin varanlar yürüyenlerdir.)