I2C 3.3 - 5.0 V dönüşümü


35

Bir 3.3VI 2 C cihazını 5V Arduino'ya arayüzlemeye çalışıyorum .

SCL hattı ile ilgili herhangi bir sorunum yok. Basit bir voltaj bölücü kullanabilirim ama bu çift yönlü olduğu için SDA hattıyla ilgili bir sorunum var.

Bununla nasıl başa çıkacağımdan emin değilim. Slave giriş tarafında voltaj bölücü olan ve master girişinde fazladan hiçbir şey olmayan bir çift diyot ekledim.

Başka çözümler var mı?


Gelecekteki okuyucular, OP'nin SCL'yi yalnızca bir yönde kullanmasına rağmen, I2C'nin genellikle SCL'nin çift yönlü olmasına izin verdiğini bilmelidir.
Foton

Yanıtlar:


25

Konuyla ilgili iyi bir belge I2C-veri yolu ve iki yönlü bir seviye değiştirici olarak tek bir mosfet kullanan diğer sistemler için İki yönlü seviye değiştiricidir.


Philips devresini seviyorum. Zeki. Eğer I2C çıkışlarının tüm akımları tüm çekmecelerden batırmak zorunda kalmaması bazı durumlarda daha iyi olabilir, ancak aktif bir I2C tekrarlayıcı tasarlamak zordur; Normal mantıkla yapılabileceğini sanmıyorum, çünkü tekrarlayıcı yükselen bir kenarı tespit edebilmeli ve herhangi bir I2C cihazının yapabilmesi için ona tepki verebilmelidir.
supercat

2
Bağlantı öldü!
Zimano

14

Sivu'nun cevabını genişletmek için, bu temelde mantıkla kontrol edilen MOSFET'ler olan “veri yolu anahtarları” için yaygın bir kullanımdır. Ayrık MOSFET'lerin kullanılması bazı dezavantajlara sahiptir (parazitik kapasitans / kapasitif kuplaj bir tanedir) ve iyi bir MOSFET seçmek zor olabilir. Bus anahtarları, yüksek hızlı mantık devrelerinde kullanım için optimize edilmiştir.

Fairchild, TI, IDT ve Pericom dahil olmak üzere birçok üretici bunları üretmektedir. NC7SZ384’e bir bakın .

Diğerlerinin yanı sıra aşağıdaki notlara bakın:


8

Pek çok Arduino'nun 3,3 V'ta çalışabilmesi için desteği var. Aslında hepsi 3.3 V'de çalışabiliyor ve FTDI çip şeması bir örnekte nasıl olduğunu açıklıyor. Teensy USB Arduino'yu yapan Paul, USB kablosunu açıp kablonun V CC hattının yerine 3.3 V voltaj sağlayabileceğimi önermişti . Bunu deneyebilirsin. Ancak başka seçenekler de var.

  1. Arduino için mantık seviyelerini kontrol edin. 5 V kaynaklı bir Atmel'de bile 3.3 V'yi mantık YÜKSEK olarak desteklediklerini düşünüyorum. Bir SparkFun makalesinde şöyle yazıyor : "* 3,3 V dijital çıkış pinini 5 V giriş pinine bağlamak genellikle basittir. Çoğu cihaz, dijital olarak yüksek değer olarak kabul edecekleri minimum gerilime oldukça toleranslıdır. Çoğu Atmel mikrokontrolcüsü, örneğin, 0.6 * V CC'nin üzerinde bir şey kabul ederse , 3.3 V cihazın 3 V (0.6 * 5 V) üstünde bir seviye vermesi gerekir. * "
  2. 3,3 V ve 5 V seçicilere geçiş yapan Arduino klonlarından birini satın alın. Kullandığım RBBB cloan ben 3.3 V besleme kabloları FTDI çip belirledik Ama yanlış hatırlamıyorsam son resmi Arduinos biri de dahil olmak üzere gerçek 3,3 V yapılandırma seçenekleri var diğerleri vardır. Teensy USB'yi Arduino eklentisi ile birlikte kullanabilir ve 3.3 V regülatör kurmak için sitesindeki talimatları takip edebilirsiniz .
  3. USB kablosunu birleştirin ve USB kablosunun V CC hattının yerine bir laboratuvar güç kaynağı kalitesi 3.3 V kaynağı sağlayın . Paul'un önerdiği gibi düşük akımda olmalıdır. Bu nedenle, ya kaliteli bir voltaj kaynağı. İstediğiniz gerilimi elde etmek için birkaç pili seri olarak da takabilirsiniz.
  4. Eğer ilgileniyorsanız, Arduino'nuzun şemasını incelemeyi deneyebilirim ve belki de FTDI yapılandırmasında 3.3 V'a izin verecek bir değişiklik yapmak mümkündür.

Son olarak, bu konuda sizi ilgilendirebilir ve Chiphacker'da voltaj düşüşü için tek yönlü ve çift yönlü çözümler hakkında bir tartışmamız var . Sparkbot’un bahsettiği SparkFun’la ilgili bu yazı, SparkFun’la bağlantılı ihale amaçlı MOSFET makalesiyle ilgili tartışmada olduğu gibi faydalıdır . SparkFun makalesini özetlemek için:

  • Satır içi direnci. Tek yönlü. Yalnızca aşağıya inme - akımı azaltır, IC'lerin G / Ç sıkıştırma diyotları maksimum girişi sınırlayabilir.
  • Seri dirençler. Tek yönlü. Yalnızca aşağı inin, ancak ayrıntılı.
  • Diyot. Tek yönlü. İnmek. Daha güvenli. 5 V blok diyottan yüksek; 3.3 V tarafı daha sonra yüksek bağlar. Ancak diyot yapılandırmasını tersine çevirirseniz, adım adım yükselemez misiniz?
  • MOSFET. Çift yönlü. Aşağı veya yukarı.
  • Yorumlarda: Optik izolasyon örneği: 4N25. Yüksek akım.
  • Yorumlarda: Zener diyot örneği: 1N4728A
  • Yorumlarda: 74HC244 / 125 tek yönlü

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.