I²C Pull-Up Direnci Hesaplama
- En küçük direnç
- —
- En büyük direnç
- —
- Yükselme süresi
- —
- Hat düşükken akım
- —
Kullanılan formüller
Rmin = (VDD − 0,4 V) / IOL · Rmax = tr / (0,8473·Cb)
Kısa cevap I2C pull-up direnci kaç olmalı?
I2C pull-up direnci iki sınır arasında seçilir: R_min = (V_DD − 0,4 V) / 3 mA ve R_max = t_r / (0,8473 × C_b). t_r standart modda 1000 ns, hızlı modda 300 ns'dir. 3,3 V ve 100 pF hat kapasitesinde 400 kHz için yaklaşık 1 kΩ – 3,5 kΩ arası, genellikle 2,2 kΩ uygundur.
I²C hattındaki SDA ve SCL uçları açık kollektör (açık drain) çalışır: cihazlar hattı yalnızca toprağa çekebilir, yüksek seviyeye ise hattı pull-up dirençleri çıkarır. "4,7 kΩ koy geç" yaklaşımı çoğu zaman çalışır, ama hat uzadığında, cihaz sayısı arttığında veya 400 kHz'e çıkıldığında haberleşme bozulabilir. Araç, I²C standardındaki (NXP UM10204) yükselme süresi ve akım sınırlarına göre pull-up direncinin alabileceği en küçük ve en büyük değeri hesaplar, aralıktan uygun bir standart değer önerir.
İki sınır
- En küçük direnç (akım sınırı): Hat düşük seviyedeyken sürücü transistör pull-up üzerinden gelen akımı çekmek zorundadır. Standart ve hızlı modda cihazlar en az 3 mA çekebilmeli ve bu akımda hattı 0,4 V'un altına indirebilmelidir: Rmin = (VDD − 0,4) / 3 mA. 3,3 V için ≈ 967 Ω.
- En büyük direnç (hız sınırı): Hattın kapasitesi (Cb) pull-up direnci üzerinden dolar. %30'dan %70'e yükselme süresi 0,8473·R·Cb'dir ve standart modda 1000 ns, hızlı modda 300 ns, hızlı artı modda 120 ns'yi aşmamalıdır: Rmax = tr / (0,8473 × Cb).
Hat kapasitesi nasıl tahmin edilir?
Her cihazın pin kapasitesi genellikle 5 – 10 pF'tır. Kart üzerindeki yollar santimetre başına yaklaşık 1 pF, kablolar metre başına 50 – 100 pF ekler. Tek kart üzerinde üç dört sensörlü tipik bir tasarım 50 – 100 pF civarındadır; standardın izin verdiği üst sınır 400 pF'tır. Osiloskop varsa yükselme kenarının süresini ölçerek gerçek kapasiteyi geri hesaplayabilirsiniz.
Çalışılmış örnek
3,3 V, 400 kHz, 100 pF: Rmin ≈ 967 Ω, Rmax = 300 ns / (0,8473 × 100 pF) ≈ 3,54 kΩ. Yaygın 4,7 kΩ bu durumda hızlı mod için fazla büyüktür; 2,2 kΩ veya 2,7 kΩ güvenli seçimdir. Aynı hat 100 kHz'te çalışsaydı Rmax ≈ 11,8 kΩ olurdu ve 4,7 kΩ rahatça yeterdi.
Sıkça sorulan sorular
Birden fazla modülde pull-up varsa ne olur?
Hazır sensör modüllerinin çoğunda kendi pull-up dirençleri bulunur ve bunlar birbirine paralel bağlanır. Üç modülde 4,7 kΩ varsa eşdeğer ≈ 1,57 kΩ olur; bu Rmin'in altına düşebilir. Gereksiz olanları kaldırın.
Mikrodenetleyicinin dahili pull-up'ı yeterli mi?
Dahili pull-up'lar genellikle 20 – 50 kΩ'dur ve yalnızca çok kısa hatlarda, düşük hızda çalışır. Güvenilir haberleşme için harici direnç kullanın.
3,3 V ve 5 V cihazları aynı hatta kullanabilir miyim?
Pull-up'ları 3,3 V'a bağlamak ve 5 V cihazın 3,3 V'u yüksek seviye olarak tanıdığından emin olmak bir yoldur. Güvenli çözüm, iki MOSFET'li veya entegre bir I²C seviye dönüştürücüdür.
Direnç, kondansatör ve diğer komponentler için ürünlerimize göz atın.
Sensör ve Modüller