I2C Tap, SDA Çatışmaları İçin Suç Atamanıza Yardımcı Olur


Hatalı çalışan bir I2C devresinde hata ayıkladıysanız, muhtemelen ne kadar sinir bozucu olabileceğini biliyorsunuzdur. neyse ki [Jim] Hackaday.io’da, proto-boardable devresi var bu yardımcı olabilir!

entegre devre veri yolu (aka I2C), iki kablolu bir arabirimde açık toplayıcı çıkışları kullanır. Açık toplayıcı, I2C veriyoluna bağlı bir cihazın veri yolunu yalnızca toprağa çekebileceği anlamına gelir. Çipler asla kablolarda “YÜKSEK” bir mantık yürütmez. Hiçbir şey hatları alçaltmadığında, zayıf bir direnç hatları VCC’ye çeker. Bu iyi bir şey, çünkü I2C aynı zamanda bir multidrop veriyoludur – bu, aynı anda birçok cihazın veriyoluna bağlanabileceği anlamına gelir. Açık kollektör çıkışları olmadan, bir çip yüksek, diğeri düşük olabilir – bu da kısa devre oluşturarak muhtemelen her iki cihaza da zarar verir.

Tüm bu korumayla bile sorunlar olabilir. I2C iletişim protokolündeki SCL ve SDA hatları çift yönlüdür, yani bir kontrolör veya çevre birimi onu alçaltabilir. Bazen, I2C iletişimlerini izlerken hangi parçanın hattı düşük tuttuğunu bulmanız gerekir. Aynı veri yolunu paylaşan birçok cihazla bu neredeyse imkansız hale gelebilir. Bazı insanların dirençler ve analog örnekleme ile ilgili püf noktaları vardır, ancak denenmiş ve gerçek yöntem, çip pimlerini veriyolundan fiziksel olarak kaldırmanın ve lehimlemenin denenmiş ve gerçek yöntemi genellikle devreye girer.

[Jim’s] devre, SDA sinyalini kontrolör tarafı ve çevre tarafı olarak bölerek hıçkırıklardan ve başıboş gürültüden kimin sorumlu olduğunu netleştirmenize yardımcı olur. Bunu yapmak için 6N137 optoizolatörleri ve LMV393 karşılaştırıcıları kullanıyor. [Jim] bizimle bir NapkinCAD şeması paylaştı, acil ihtiyaç zamanlarında tekrarlanabilmesi gerekiyordu. Bu tasarımla, I2C veriyolunuzu dört ayrı kanala bölebilirsiniz – denetleyici tarafı SDA, çevre birimi tarafı SDA, birleşik SDA ve SCL. 4 Kanal bir kapsam için çok fazla olabilir, ancak günümüzün ucuz mantık analizörleri için bu sorun değil.

Devre, 100KHz hata ayıklama için derecelendirilmiştir, ancak 400KHz (veya daha yüksek) veri yolunuz için çalışmıyorsa, hızı her zaman düşürebilirsiniz. Bu tür bir monitör, kötü niyetli aygıtları evcilleştirmek için kullanışlıdır ve teknik olarak SDA bölme ile sınırlı değildir! I2C ayrıca, prehiperallerin SCL hattını manipüle etmesine izin verilen, saat gerdirme adı verilen bir özelliğe sahiptir. Saat esnetme ile ilgili problemlerde, SCL ve SDA hatlarını değiştirebilirsiniz, bu da kullanmanıza izin verecektir. [Jim’s] SCL’deki devre.

Zor bir I2C durumuyla gerçekten sıkışıp kaldığınızda, böyle bir cihazı monte etmek kesinlikle zor olmazdı. Ne tür? Olası tüm I2C problemlerini uzun bir yazımızda anlattık!


Kaynak : https://hackaday.com/2022/05/02/i2c-tap-helps-assign-blame-for-sda-conflicts/

Yorum yapın