I2C Bus kullanımı
1. Fiziksel I2C Bus:
Bu haberleşme SCL ve SDA adındaki sadece 2 bağlantıdan oluşur. Clock(saat) bağlantısı olan SCL, data(veri) transferi sırasında I2C bus üzerindeki senkronizasyonu sağlar. SDA ise data(veri) bağlantısıdır. SDA ve SCL bağlantıları I2C bus üzerindeki tüm cihazlara bağlanır. Üçüncü bir bağlantı da ground(topraklama) içindir. Ayrıca 5 volt bağlantısı da ek olarak kullanılarak bus yani bağlantı üzerindeki cihazlara güç iletimi sağlanır. Hem SCL hem de SDA bağlantıları "open drain" sürücüdür. Bunun anlamı, bir çip bu çıkışı low(0) durumuna getirebilirken, high durumuna getiremez. Bağlantının high durumuna sürülebilmesi için, SCL ve SDA bağlantıları pull-up dirençleri ile 5 volt'luk bir kaynağa bağlanması gerekir. Bu dirençler her cihaz için ayrı gerekmez, bir set(2 tane->Rp) yeter(Aşağıda görüldüğü gibi). Bu dirençlerin değerleri çok önemli değil ama 1k8 ile 47k değerleri arasındaki direnç değerleri genel olarak kullanılan değerlerdir.
Bu dirençler olmazsa, SDA ve SCL hep low olarak(neredeyse 0 volt) olarak kalacaktır ve haberleşme gerçekleşmeyecektir.
2. Master ve Slaves
Master, haberleşmeyi yöneten cihaza denir ve genelde I2C haberleşmelerinde 1 tane master bulunur. Slave ise haberleşmedeki master cihazın emirleri doğrultusunda master cihaza bilgi sağlayan cihazdır. I2C haberleşmesinde, master haberleşmeyi başlattığı sürece haberleşme gerçekleşir, slave haberleşmede konuşmaya başalayan taraf olamaz. Bunun nedeni, sadece master cihazın SCL clock sinyalini sürebilmesidir. I2C bağlantısında bir yada birden fazla slave cihaz bulunabilir. Mesela bir robotunuz var ve miktrokontrolör ile robot üzerindeki modülleri kullanırken aynı I2C bağlantısı üzerinden pek çok modül ya da sensör ile haberleşme sağlayabilirsiniz.
3. I2C Fiziksel Protokolü
I2C haberleşmesinde, master cihaz yani mikrokontrolör slave cihaz ile konuşmak istediği zaman, I2C bus üzerinden "start" sinyali gönderir. "start" sinyali I2C haberleşmesindeki 2 özel sinyalden biridir. Diğeri de "stop" sinyalidir. Bu sinyallerin özel olma nedeni, bu iki sinyal aralığında SDA bağlantısı üzerindeki sinyal değişimine izin verilir(SCL high iken). "Start" sinyali haberleşmenin başlangıcını gösterirken, "Stop" sinyali haberleşmenin durması anlamına gelir.
Veriler(Data), 8 bitlik setler halinde gönderilir. Bu bitler, MSB(En önemli bit) ile başlayarak SDA bağlantısına yerleştirilir. Her bir 8 bit, slave tarafına ulaştığında slave tarafı master'a doğrulama(ACK) mesajı gönderir. Bundan dolayı, aslında her 8 bitlik bir veri için 9 SCL clock sinyali gerçekleşir.
NOT: http://www.robot-electronics.co.uk/i2c-tutorial sitesinden çevrilmiştir.
DEVAMI GELECEK...
Comments
Post a Comment