Also ich habe hier und in anderen Foren einige Threads gelesen. Ich verstehe, dass es verschiedene Lösungen gibt, um eine Spannung zu verringern oder zu erhöhen. Was ich gefunden habe, sind die Schaltregler der LVC-Serie, die einen konstanten Ausgang liefern, MCP1825 , der um 5 auf 3,3 heruntersteigt (und andere Versionen mit unterschiedlichen Inkrementen), der 74LCX245, der um 2,5 oder 3,3 auf 5 V heruntersteigt, und vielleicht einige andere, die ich vergesse . Dann gibt es fertige Platinen wie die Sparkfun-Konverter oder diesen 8-Pin-auf-8-Pin-Konverter . Aber alle diese sind nur in eine Richtung oder bidirektional durch einen Jumper geschaltet.
Wie würde ich Spannungen in beide Richtungen nach unten oder oben umwandeln, ohne dass eine Pinauswahl erforderlich wäre?
5--3.3
5--2.5
5--1.8
Danke
Sparkfun bietet ein Tutorial zur Sensorschnittstelle/Konvertierung auf Logikebene , das für Sie nützlich sein könnte.
Maxim hat eine Reihe von Logic Level Translators , von denen die meisten bidirektional sind. Die Geschwindigkeiten variieren, die schnellste unterstützt eine maximale Datenrate von 100 MBit/s, was so ziemlich alles abdecken sollte, was Sie jemals auf Hobbyebene tun möchten. Die Spannungen reichen von 0,9 V bis 5,5 V.
Du arbeitest mit einem I2C-Bus, richtig? Ich werde die Leitungen auf der 3,3-V-Seite SDA3 und SCL3 nennen ; die beiden Leitungen auf der 5,0-V-Seite SDA5 und SCL5 .
" MOSFET und zwei Widerstände"
Wie todbot und cyphunk bereits betont haben, macht die im SparkFun-Tutorial „Sensorschnittstelle “ beschriebene Schaltung „MOSFET und zwei Widerstände“ das, was Sie wollen: Der logische Datenfluss ist symmetrisch – Daten fließen in beide Richtungen auf den SDA-Leitungen, von der Low-Seite zur High-Seite und Millisekunden später von der High-Seite zur Low-Seite.
Der Hinweis "funktioniert nicht in die andere Richtung" weist darauf hin, dass die Schaltung physikalisch asymmetrisch ist: Ihr 5,0-V-I²C-Gerät muss an die "hohe Seite" angeschlossen werden, Ihr 3,3-V-Gerät muss an die "niedrige Seite" angeschlossen werden. Da die Schaltung physikalisch asymmetrisch ist, ist es sicherlich nicht offensichtlich, dass sie logisch symmetrisch ist. (Dieses Tutorial ist mit einem AN97055-Anwendungshinweis verknüpft, der eine Schaltung mit "zwei MOSFETs und zwei Widerständen" zeigt, die physikalisch symmetrisch und daher offensichtlich logisch symmetrisch ist).
Die mit „TX“ bezeichneten Leitungen auf den SparkFun-Wandlern – auf die das Originalplakat hingewiesen hat – implementieren diese bidirektionale Schaltung „MOSFET und zwei Widerstände“. Verbinden Sie also SDA3 mit TX_LV, SDA5 mit TX_HV, SCL3 mit TX2_LV und SCL5 mit TX2_HV.
Dann fließen Daten in beide Richtungen: Wenn Ihr Low-Side-Gerät die SDA3- und SCL3-Pins ansteuert, werden die entsprechenden Spannungen an den High-Side-SDA5- und SCL5-Pins angezeigt. Millisekunden später, wenn das High-Side-Gerät die Pins SDA5 und SCL5 treibt, werden die entsprechenden Spannungen an den Pins SDA3 und SCL3 gesehen.
(Widersprüchlich übertragen die mit „RX“ gekennzeichneten Leitungen auf dieser Konverterplatine nur Daten in Richtung von Hochspannung zu Niederspannung.)
Bidirektionaler Optoisolator
Da Sie I²C verwenden, könnten Sie auch an einem bidirektionalen Optoisolator für I²C interessiert sein . Die Zwei-Optoisolator-Schaltung ist teurer und langsamer als die „MOSFET und zwei Widerstände“-Schaltung, aber sie funktioniert, wenn eine Seite Signale hat, die zwischen 0 V und 5,0 V schwanken, und die andere Seite Signale hat, die zwischen 500,0 V und 505,0 V schwingen v.
Die Zwei-Optoisolator-Schaltung ist auch vollständig physikalisch symmetrisch – und daher logisch symmetrisch – es spielt keine Rolle, welche Seite die hohe Seite und welche Seite die niedrige Seite ist.
Auf einem unserer Boards verwenden wir einen TXS0104E , um zwischen 3,3 V und 5 V auf einem I2C-Bus (bidirektional) zu übersetzen.
Cyphunk
davr
Kortuk
Cyphunk