10,25 ve 100m gibi çılgınca sondaj uzunlukları mükemmel bir şekilde mümkün ve hızlı bir şekilde bir araya getirmem gerektiğinde yöntemi sık sık kullanıyorum (UART ile I2C değil, ancak yöntem geçerli). Yine de tam olarak en iyi yol değil.
Anahtar, giriş voltajı eşiğinizi bilmektir. Topraklama kablosundaki voltaj düşüşünün bunun çok altında olduğundan emin olun, aksi takdirde yüksek toprak potansiyeline sahip bir verici voltajı yeterince düşük tutamaz. Yer ofsetleri için tolerans eksikliği IMHO, RS485 veya alıcı vericilerin kullanılmasının en büyük nedenidir (CAN üzerinden I2C, birkaç uygulama notunda belirtilmiştir).
İdeal olarak, tüm cihazlar kendi duvar siğillerine ve bataryalarına sahip olacak ve cihazlar arasında topraklama kablosu üzerinden güç gönderilmeyecektir.
Ancak, örneğin CAT5'i ele alalım. CAT5, 52pf / m'den daha yüksek olamaz veya CAT5 değildir.
100m 52pf kablonun kapasitesi 5200pf veya 5.2nf'dir.
5.2n çarpı 20 kohm (çekme) yaklaşık 104 mikrosaniye bir zaman sabiti verir. Bu, hızı yaklaşık 10kHz ya da öylesine sınırlar.
2.2 kohm pulls'ları kullanarak, muhtemelen 100 kHz'e erişebilirsiniz.
Aygıtların SDL ve SCK'da, kullandıkları büyük kapasitif yük nedeniyle, 180 veya 200 ohm gibi bir direnç göstermesi gerektiğini duydum.
Ama dürüst olmak gerekirse, I2C uzun mesafeler boyunca hiç de uygun değildir. Normal UART ile kullanılan CAN alıcı vericileri veya RS485, çok iyi bir hata korumasına, ESD direncine, hıza, mesafeye, vb. Kadar güçlü bir çözümdür, bir yonga veya öylesine bir fiyatla, toprak ofsetleri sizin kadar önemli değil veri ile birlikte güç taşımak için ücretsiz.
Tek dezavantajı, bir alıcı-vericinin 70ma iletim ve 1 veya 2ma sadece dinlemesine ulaşabilmesidir, bu nedenle I2C veya doğrudan TTL UART, aşırı düşük güç durumlarında yararlı olabilir, ancak gerçekte gönderim için ne kadar zaman harcadığınızı düşünün.