Der Mikrocontroller des neuen Arduino Due-Boards läuft mit 3,3 V, aber leider laufen die meisten Standard-Arduino-Zusatzschilde (Boards) mit 5 V, daher haben ihre E/A-Signale unterschiedliche Logikpegel.
Die Anzahl der Signale beträgt ungefähr 20 und umfasst:
Jetzt möchte ich eine Zwischenabschirmung (Platine) hinzufügen, um die Kompatibilität zwischen der 3,3-V-Arduino-Due-Platine und allen Signalen einer beliebigen 5-V-Abschirmung zu erleichtern. Diese Zwischenplatine müsste eine Schnittstelle zwischen den 3,3-V-Signalen und den 5-V-Signalen (dh in beide Richtungen) ermöglichen.
Was ist der beste Weg, um eine bidirektionale Ebenenübersetzung für einen Fall wie den obigen zu erstellen? Hier meine ich mit "am besten" einfach unkompliziert, kostengünstig und würde ohne Probleme über die verschiedenen Abschirmungen und Signaltypen hinweg funktionieren.
Basierend auf meinen bisherigen Recherchen zu dieser Art von Ebenenverschiebung scheinen die verfügbaren Optionen zu sein:
Ich habe ein kleines System entworfen, das für Ihre spezielle Anwendung funktionieren könnte. Hier ist das Schema:
Ich habe den Referenzknoten vergessen, er muss an Klemme 2 von BT1 angeschlossen werden. Wie funktioniert das?
Nehmen wir zunächst einmal an, wir können den Strom, der in/von "low" fließt, vernachlässigen.
Wenn in R1 hochgezogen wird (5 V), fließt kein Strom, während die drei Dioden leiten. Unter der Annahme einer Vorwärtsabfallspannung von 0,6 V beträgt die Spannung bei Low 3,2 V, und der Strom, der von High fließt, beträgt ungefähr 320 uA.
Wenn High heruntergezogen wird (0 V), werden alle Dioden gesperrt, sodass die Spannung bei Low von R2 heruntergezogen wird. Der Strom, der so hoch sinken muss, beträgt ungefähr 500 uA.
Nehmen wir nun an, dass High keinen Strom verbraucht.
Wenn Low hochgezogen wird (3,3 V), können die Dioden nicht leiten, da die Spannung bei High mehr als 5 V betragen würde, also wird High von R1 hochgezogen, die Dioden sind ausgeschaltet und Low muss etwa 330 uA liefern.
Wenn Low heruntergezogen wird (0 V), sind die Dioden korrekt polarisiert, R2 hat null Volt, die Spannung bei High beträgt etwa 1,8 V und der durch Low gesenkte Strom beträgt etwa 180 uA.
Wie Sie sehen können, besteht das große Problem darin, dass 1,8 V etwas zu viel sind: Eine CMOS-Schaltung würde wahrscheinlich "niedrig" lesen, während eine TTL wahrscheinlich so "hoch" lesen würde. Ein besserer Ansatz könnte eine 1,5-V-Zenerdiode anstelle der drei kleinen Signaldioden verwenden, wobei die Kathode mit R1 und die Anode mit R2 verbunden ist. Der Widerstand muss wahrscheinlich reduziert werden, um den minimalen Polarisationsstrom der Zenerdiode zu erreichen.
Eine letzte Sache zu den Widerständen ist, dass Sie jeden Wert von 1k bis 100k verwenden können, natürlich entsprechen höhere Widerstandswerte einem geringeren Stromverbrauch, aber auch einem langsameren Einschwingverhalten und umgekehrt.
Sehr einfach, schlagen Sie einfach eine Abschirmung auf und es funktioniert, es ist keine Spannungskorrektur erforderlich. Das Due funktioniert problemlos mit dem Ethernet-Schild und dem WiFi-Schild. Wenn Ihre Stromzufuhr zu den Abschirmungen 3,3 Volt beträgt, haben die Chips auf diesen Abschirmungen keine Spannungsverstärker und geben dann 3,3 Volt aus. Wenn Sie ein Schild mit einem Controller darauf kaufen, überprüfen Sie das Datenblatt des Geräts und prüfen Sie, ob es eine 3,3-Volt-Stromaufnahme haben kann. CMOS High ist 1,5 Volt und darüber, glaube ich. (Es wäre fast unmöglich, bei dieser Spannung zu kommunizieren, ich würde sagen, Ihr sicheres Tief ist 3 Volt.) Wenn es 3,3 Volt liefern kann, schließen Sie es an und überprüfen Sie die Pin-Ausgänge, wenn es alle 3,3 Volt sind, stecken Sie es in den Arduino und Spaß haben :)
Gustavo Litowski
Brettbiss
Joe Baker
Brettbiss
Anindo Ghosh
Gustavo Litowski