Giriş
Kıyaslayacak olursak genelde alternatifi olarak görülen SPI’a göre yavaştır. Daha az pin kullandığı için avantajlıdır. Düşük hızlarda yönetilecek çevre birimleri için mikrodenetleyicinin pin kullanımını optimize etmek için idealdir.
Örnek bağlantı yapısı aşağıdaki gibidir.
Temeller
Temel yapı olarak birimler arasında I2C hattı SDA ve SCL pinlerinden oluşur. Her iki pin normalde HIGH konumundadır. SDA Data hattının LOW a düşmesi ile haberleşme hattı iletime başlar. Yapılar SCL clock sinyali ile senkron olarak çalışır.
I2C hattı ile birlikte hat üzerindeki çiplerin de -özel bir izolasyon vs. yoksa- ground hatları birleştirilmelidir.
SCL sinyaline göre öncelikle masterdan hatta konuşacağı enterenin adres bilgisi ve yazma/okuma modu hatta basılır. Sonrasında ilgili çiptemn gelecek acknowlage sinyaline göre haberleşme devam ettirilir.Konuşulacak entegrenin I2C protokol yapısına göre haberleşme half duplex olarak devam eder.
I2C hattında hız değerine göre genellikle 2.2KR-10KR aralığında pull-up direnç kullanılır. Bu değere, kullanılan işlemci ve entegrelerin datasheet dokümanlarında verilen bilgilere göre karar verilir.
Kavramlar
- Master: I2C hattını süren ana yapıdır. Genellikle miroişlemci/mikrodenetleyicidir.
- Slave: I2C hattında bulunan slave entegrelerdir. Bir çok alternatif IC vardır. EEPROM, DAC, ADC, sensör, ekran sürücü, motor sürücü gibi çevre birimleri, CAN, Ethernet, Wifi gibi haberleşme arayüzü sağlayan entegreler I2C hattı ile çalıştırılır.
- Başlatma Koşulu: SCL hattı HIGH’dan LOW’a geçmeden önce SDA hattı HIGH’dan LOW’a geçer.
- Durdurma Koşulu: SCL hattı LOW’dan HIGH’a değiştikten sonra SDA hattı LOW’dan HIGH’a geçer.
- Adres Paketi: Her bir SLAVE’e özgü, MASTER ile konuşmak istediğinde SLAVE’i tanımlayan 7 veya 10 bitlik bir veri.
- Okuma / Yazma Biti: MASTER’ın SLAVE’e (LOW) veri gönderip göndermediğini veya ondan veri istediğini (HIGH) belirten tek bir bit.
- ACK / NACK Bit: Mesajdaki her byteı bir onaylama/onaylama biti izler. Bir adres paketi veya veri paketi başarıyla alındıysa, alıcı cihazdan gönderene bir ACK biti döndürülür.
Görsel Kaynakları:
- https://en.wikipedia.org/wiki/I%C2%B2C
- https://www.circuitbasics.com/basics-of-the-i2c-communication-protocol/
Hiç yorum yok:
Yorum Gönder