I2C minimum saat hızı ve güvenilirliği


12

I2C tarafından belirlenen minimum saat hızı var mı? En yaygın olarak kullanılan saat hızının 100kHz olduğunu ve bazı cihazlar tarafından desteklenen 400kHz'lik "hızlı" bir mod olduğunu ve diğer cihazlar tarafından desteklenen daha hızlı ancak bir mod olduğunu düşünüyorum (sanırım 1MHz?). SCK sinyali master tarafından üretildiğinden, bunlardan herhangi birinden çok daha yavaş bir hızda çalışabileceğini düşünüyorum - pratikte bir alt sınır var mı? Bağımlı cihazlar saat hızını ne ölçüde önemsiyor (örneğin kısa zaman aşımına sahip olmaları yaygın mıdır)? Sormamın nedeni, I2C EEPROM'larını bir üretim test cihazı kurulumunda güvenilir bir şekilde programlamak için I2C'yi daha uzun bir mesafede (örneğin 20 feet) çalıştırabilir miyim diye merak ediyorum. Standart veri hızlarında bu mesafe üzerinde güvenilir bir şekilde çalışmadığını varsayıyorum.


Yüksek Hız modu, maks. 100 pF veri yolu kapasitansı.
stevenvh

Yanıtlar:


16

Hayır, minimum frekans yoktur, minimum saat frekansı 0 veya DC'dir. Spesifikasyona bakınız , sayfa 48.

Ancak yükselme ve düşme zamanlarına dikkat etmelisiniz. Bunlar maksimum 1000 ns ve 300 ns'dir. Ve biraz kapasitansa sahip daha uzun bir kablo, frekanstan bağımsız olarak kenarları etkileyecektir.

Yükselme süresini belirleyecek çekme dirençleri ile birlikte bu kapasitanstır. Düşme zamanı sorun değildir, çünkü çizgiyi aşağı çeken FET çok düşük bir dirence sahiptir ve daha sonra düşme süresi sabitinin de çok düşük olması gerekir. Yani yükseliş zamanımız kaldı. 200 pF kabloda 1000 ns artış süresi elde etmek için çekme dirençleriniz 2,2 kΩ'dan büyük olmamalıdır. (son değerin% 90'ına yükselme süresi.)

resim açıklamasını buraya girin

Grafik, 1000 ns yükselen kenarlar elde etmek için kablo kapasitansına (pF cinsinden) karşı maksimum çekme direncini (Ω cinsinden) gösterir. I2C cihazlarının 3 mA'dan fazla batması gerekmediğine dikkat edin, bu nedenle 3.3 V'ta veri yolu kapasitansı yaklaşık 395 pF'den yüksek olmamalıdır, aksi takdirde çekme direncinin 1100 Ω'dan daha küçük olması ve daha fazla izin vermesi gerekir 3 mA'dan daha fazla. Bu yeşilimsi kesik çizgiler. 5 V'luk çalışma için izin verilen kapasite, 1667 Ω pull-up değeri (mor kesik çizgiler) için 260 pF'dir.


I2C cihazının maksimum 3mA batırabileceğini kim söylüyor? I2C aygıtlarımda IOL = 20mA için VOL = 0,4 V var. Bu, daha fazla akım batırabileceği ve böylece çekme dirençlerinin daha küçük olabileceği anlamına gelir. Bu, daha fazla kapasitenin ele alınmasına neden olur. @stevenvh
Kono

Bir örnek Arduino köleleri. VOL = 0,4-0,5V'den önce 10mA'ya kadar batabilirler. Bu, çok daha yüksek yüklü otobüsleri çalıştırabilecekleri anlamına gelir.
Kono

I2C cihazlarının çoğu gerçekten sadece 3mA batabilir, ancak bugünlerde daha fazla lavabo kapasitesine sahip çok daha fazla cihaz var. Şanslı!
Kono

4

I2C'yi 100Hz'de sorunsuz çalıştırdım. @Stevenvh dediği gibi, sadece maksimum hız ve hat kapasitans için endişelen.


2
Tek adımlı i2c'm var. Bu, bulduğunuz her cihazın bu şekilde yapılacağını garanti etmez, ancak teknik olarak "DC'ye kadar" çalışmasını engelleyecek hiçbir şey yoktur.
gbarry

4

Hat uzunluğu sorunlarını dikkatli sürücü seçimi ve empedans eşleşmesi ile çözebilmelisiniz.

Uzun çalışmanın ürünün değil kurulumun bir parçası olduğunu varsayarsak başka bir seçenek de, test kayışının konnektörüne yerleştirilmiş bir mikro denetleyiciyle konuşmak için RS422 (veya pratik olarak RS232 bile) gibi mesafeyi iyi işleyen bir şey kullanmak olabilir, bu da i2c'yi hedefe oldukça kısa bir mesafede konuşur.

Veya bunu, zeka olmadan, Schmidt tetik alıcıları ile hedefe i2c sinyalizasyonuna giden ve ondan gelen diferansiyel sinyal protokolünü köprüleyen küçük bir kart kullanarak yapabilirsiniz.

Çalışmalarınız, sinyal yayılım sürelerinin (eksik yerleşim sorunları), eski veriler hala uçuş halindeyken otobüsü döndürmekten kaçınmak için özellikle düşük saat oranları gerektirecek kadar uzun değildir.

Tabii ki az önce programladığınız verilerin bir geri okuma doğrulamasını yapmak isteyeceksiniz.

Sadece karşılaştırma amacıyla, IIRC VGA monitörlerde, stok 3 veya 4 ayak kablosuna 6 metrelik bir uzatma kablosu eklerseniz muhtemelen hala çalışan bir i2c (veya i2c benzeri) kimlik okuması bulunur.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.