Bidirektionale Pegelumschaltung 5V <-> 3,3V

Ich möchte ein 3,3-V-Gerät mit einem 5-V-Gerät verbinden. Dies erfordert das Verschieben der Logikpegel zwischen den beiden Geräten.

Dies in eine Richtung zu tun ist eine triviale Angelegenheit, aber ich muss es in beide Richtungen tun (Lesen und Schreiben - es ist ein Datenbus).

Ich weiß, dass es Busfahrer gibt, die das können, aber ich bin ein Geizhals, also versuche ich zu sehen, ob ich es mit den diskreten Mitteln tun kann, die ich zur Verfügung habe.

Ich bin auf diese Schaltung gekommen:

Geben Sie hier die Bildbeschreibung ein

Ich weiß nicht, ob es tatsächlich das tut, was ich will, aber aus dem Lesen anderer Quellen (einschließlich Ist es möglich, TTL-Eingänge von einem 3,3-V-Mikrocontroller und bidirektionalem Step-up und Step-down (3,3 V <-> 5 usw.) ) [Letzteres erwähnt ein Sparkfun-Tutorial, das nicht mehr existiert]) es könnte.

Mein Gedanke ist, dass Daten von 5 V bis 3,3 V durch D2 und den Vorwiderstand R2 gehen, um die Spannung zu senken. Daten von 3,3 V bis 5 V gehen durch D1 und werden von R1 hochgezogen.

Würde das funktionieren? Ist es komplettes Kauderwelsch?

Aktualisieren

Ok, wir sind uns also einig, dass Circuit totales Kauderwelsch ist.

Ich habe einige Anpassungen vorgenommen und bin auf folgendes gekommen:

Geben Sie hier die Bildbeschreibung ein

Wenn ich mit meinem Oszilloskop herumspiele, bekomme ich Pegel von etwa 1 V bis 4 V auf der +5-V-Seite und 0 V bis 3 V auf der 3,3-V-Seite. Beide Seiten sind standardmäßig auf High-Pegel und das Verbinden mit Masse auf einer Seite verursacht einen Low-Pegel auf der anderen Seite.

Die Widerstände haben alle 10 kΩ, und ich habe beide Enden durch 100 kΩ-Widerstände geführt, um eine Art Last zu simulieren. Die Dioden sind alle Schottky.

Gedanken?

Wie zwingt die 3,3-V-Seite die 5-V-Seite nach unten und umgekehrt?
Das Sparkfun-Tutorial ist jetzt unter sparkfun.com/tutorials/65 verfügbar
1V ist zu hoch für einen niedrigen Pegel, wenn Sie TTL-Pegel benötigen; niedrig ist maximal 0,8 V.
@Brian - Ich habe ein Rollback durchgeführt, weil der ursprüngliche Schaltplan relevant ist, auch wenn er falsch ist. Antworten beziehen sich darauf, sodass Sie nicht wissen, wovon sie sprechen, und es gibt auch etwas, das aus einer falschen Schaltung gelernt werden kann. warum es zum Beispiel nicht funktioniert.
Haben Sie FETs auf Logikebene zur Verfügung? Ich bin überrascht, dass Sie keine Form der Übersetzung auf aktiver Ebene verwenden.
@Kevin nein, ich habe keine FETs mit Logikpegel zur Verfügung :(

Antworten (3)

Ich denke, die einfachste Schaltung, die das tut, was Sie wollen, würde einen N-Kanal-MOSFET wie den bss138 und zwei Pull-ups verwenden, die auf folgende Weise angeschlossen sind:

5-3,3 V Pegelwandler

Sagen Sie mir, wenn es Ihren Bedürfnissen nicht entspricht und warum.

Trotzdem muss ich Ihnen empfehlen, einen Blick auf die Pegelwandler der MAX3000-Serie zu werfen. Ich habe sie schon einmal verwendet und sie sind großartige bidirektionale Konverter, die "einfach funktionieren" (in Apple-Begriffen).

Ich hoffe es hilft.

Bearbeiten: Es scheint, als ob das Bild bei einigen Browsern fehlerhaft erscheint, Sie können es hier sehen

Fehlerhaftes Bild - Bitte laden Sie das Bild erneut hoch.
Ich habe ein paar MAX3000-Serien als Muster bestellt, aber sie müssen vom Geschäftsführer genehmigt werden, bevor sie gesendet werden können ... : L Die einzigen FETs, die ich habe, sind MOSFET-Leistungs-FETs - auch : L
Die MOSFET-Technik wird in dieser Appnote erklärt (ich verweise auch in meiner Antwort darauf).
@Matt-Jenkins Ja, Muster zu erhalten oder sogar zu versuchen, elektronische Komponenten zu kaufen, ist in letzter Zeit ein wildes Abenteuer. Wir haben viele Probleme bei der Arbeit, weil wir viele ON-Halbleiter- und Nippon-Chemicon-Teile verwenden ... sie scheinen in der Nähe von Fukushima hergestellt zu werden ...

Ich wähle Kauderwelsch :-).
Sie werden nicht viel Spannungsabfall über R2 bekommen, da es kaum Strom gibt und daher die Diode auch nicht viel Spannung abfallen lässt. Wenn Ihr 3,3-V-Gerät nicht 5-V-E/A-kompatibel ist, können Sie es auf diese Weise braten.
Auch wenn das 3,3-V-Gerät einen niedrigen Pegel ausgibt, können wir D1 ignorieren, und der Pegel am 5-V-Eingang wird durch R1, D2 und R2 bestimmt. R1 + R2 heben den niedrigen Pegel auf einen bestimmten Pegel an, und die Diode fügt weitere 0,7 V hinzu, sodass der auf der 5-V-Seite gesehene Pegel möglicherweise überhaupt nicht niedrig ist.

Zurück zum Zeichenbrett?

Bearbeiten
Sehen Sie sich diese NXP-Appnote an . Sehr elegante Lösung, ohne speziellen Level-Shifter-IC.

Hmmm ... Ich erlebe so etwas auf dem Steckbrett. Mein 5-V-Seitentief endet bei etwa 3 V.
@Matt - welche Werte haben die Widerstände?
noch undefiniert ;)
Siehe meine Bearbeitung....

Dieser Stromkreis ist unterbrochen. Betrachten Sie zum Beispiel den Fall, dass die linke Seite 5 V und die rechte Seite eine hohe Impedanz ansteuert. Die rechte Seite geht auf 5 V minus dem Diodenabfall. Es ist auch für andere Fälle kaputt. Gehen Sie alle 4 möglichen Fälle durch, Sie werden sehen, dass das Ergebnis nicht das ist, was Sie beabsichtigt haben.

Sie verschwenden Zeit damit, Spiele mit Level-Shifting zu spielen. Wenn Sie es wirklich selbst machen wollen, sollten Sie nicht mit Strandsand beginnen und Ihr eigenes Silizium veredeln? Im besten Fall erhalten Sie etwas, das größer und klobiger ist als ein absichtlicher Level-Shift-IC.

Single-Line-Pegelumsetzer werden in SOT-23-Gehäusen geliefert und enthalten eine Richtungsleitung und daraus resultierende hochohmige Zustände je nach Richtung. Wenn Sie mehrere parallele Leitungen mit demselben Richtungssignal übersetzen müssen, ist die integrierte Lösung sogar noch kleiner pro Leitung.

Der beste Weg, damit umzugehen, besteht jedoch darin, das System so zu konzipieren, dass es so wenige Pegelverschiebungen wie möglich benötigt. Manchmal ist das unmöglich oder unpraktisch, aber ein ganzer Bus, der Pegelverschiebungen erfordert, ist ein bisschen wie eine rote Fahne. Beachten Sie auch, dass 5-V-Eingänge mit TTL-Pegeln (wie zum Beispiel 74HCTxxx-Chips) direkt von 3,3-V-Ausgängen funktionieren, da 3,3 V über der garantierten hohen Eingangsschwelle liegen.

Hinzugefügt:

Ich sehe, Sie haben eine überarbeitete Schaltung gepostet, aber es gibt immer noch Probleme. Wenn die 5-V-Seite niedrig ist, kann sie die 3,3-V-Seite nur auf 2 Diodenabfälle über Masse bringen. Das ist für einige Logiktypen zu hoch. Beispielsweise haben viele PIC-Mikrocontroller Schmitt-Trigger-Eingänge, die von 0,2 Vdd bis 0,8 Vdd arbeiten. 0,2 Vdd wären nur 660 mV bei einer 3,3-V-Versorgung, sodass zwei Diodenabfälle zu hoch sind, um ein logisches Low zu garantieren.

Das wird albern. Selbst wenn Ihre Schaltung funktionieren würde, würde dies nur zeigen, dass Sie mit genügend Kaugummi, Klebeband und 6 Teilen etwas herstellen können, das nicht ganz so gut ist wie ein einzelner billiger IC in einem SOT-23-Paket.

Würde meine bearbeitete Schaltung das Hochimpedanzproblem lösen?
Stevens bereitgestellter App-Hinweis ( nxp.com/documents/application_note/AN10441.pdf ) macht einen wunderbaren Job, indem er Strandsand und Kaugummi vorteilhaft nutzt. 2 Leitungen in einem SOT23-6 mit einem Dual-FET.
Hey, wer macht sich über Kaugummi und Klebeband lustig?
@Mac: Gut. In diesem Fall sind Level Shifter billig, verfügbar und funktionieren besser als das, was die meisten Leute alleine zusammenschustern können. Halten Sie Kaugummi, Klebeband und Büroklammern bereit, wenn Sie eine Atombombe oder so etwas improvisieren müssen.