I2C protokolü (paralel bağlantı) ve Raspberry Pi

Sokisati

Üye
Katılım
24 Şubat 2024
Mesajlar
39
Bir Teknofest projesi için 4 farklı sensörü (model adları fotoda mevcut) Raspberry Pi'ye bağlamamız gerek. Sorun şu ki, Raspberry Pi Zero 2W'de sadece 2 adet I2C portu var.
Araştırmalarıma göre 1 I2C portuna 127 farklı cihaz (farklı adreslere sahip oldukları sürece) bağlanabilirmiş. Ama bu stack exchange linkinde şöyle bir yorum gördüm:

I2c protocol only supports serial data transfer from one device at a time. Typical multiplexers only shift the main interface to each isolated lane, so they can only support serial/sequential reads.

Cihazların SDA ve SCL portlarını paralel şekilde bağlayıp, pull-up resistor de eklersek seri haberleşmede bir sorun yaşar mıyız?
Eğer sorun olacaksa alternatif olarak 4x1 mux kullanmayı da düşünüyorum. Sonuçta program multithread değil, her sensörden veri okuyacağım zaman S0 ve S1 pinlerine gerekli şekilde voltaj veririm ama mux ile daha önce hiç çalışmadım, pratikte ne olur bilmiyorum. Bu çözümün bir sorunu var mı?

Picture1.jpg
 
Paralel bağlayabilirsin. Sadece ic2 sensörlerin adreslerinin farklı olduğundan emin ol.
 
Son düzenleme:
Paralel bağlamak mümkün. Ama belli bir anda sadece bir cihaz ile haberleşilebilir, stackexchange'den yaptığın alıntı da bunu ifade ediyor.
 
"I2c protocol only supports serial data transfer"

Burada bahsettiği cihazların aynı veri yoluna paralel bağlanamayacağı değil.
 
Paralel bağladığımızda hangi cihaz ile haberleşeceğini programda adres belirterek mi yapacağım?
kodunda i2c read ve i2c write fonksiyonları olacak. genelde de bu fonksiyon parametre olarak
-i2c adresi, veri uzunluğu, gönderilecek veri alır. tabi buarada arada bir de o sensörün sürücü kodları olacak. yani aslında adres kısmını sensör sürücü kodları içinden bulup define etmen gerekiyor.
 
Alttaki linkte, bağlı sensörlerin hex adreslerini öğrenebilirsiniz.


Kod:
i2cdetect -y [i2c_portu(0,1)]

Ek:
 

Forum istatistikleri

Konular
7,233
Mesajlar
122,408
Üyeler
2,922
Son üye
Spacetr

Son kaynaklar

Son profil mesajları

Freemont2.0 herbokolog Freemont2.0 wrote on herbokolog's profile.
nick iniz yakıyor
:D
Freemont2.0 posta Freemont2.0 wrote on posta's profile.
Merhabalar :)
az bilgili çok meraklı
Prooffy semih_s Prooffy wrote on semih_s's profile.
Merhaba, sizden DSO2C10 hakkında bilgi rica ettim. Yanıtlarsanız sevinirim...
Unal taydin Unal wrote on taydin's profile.
Timur Bey, Arduino kontrollü bir akü şarj cihazı yapmaya çalışıyorum. Aklımdaki fikri basit bir çizim olarak konu açmıştım. Özellikle sizin fikirlerinizi çok önemsiyorum.
Back
Top