Ich arbeite an einer Schaltung, die eine Schnittstelle mit einem 3,3-V-Mikrocontroller (ESP8266) beinhaltet, und ich möchte sie mit meinem vorhandenen FTDI programmieren können, der mit 5 V arbeitet. Ich bin neu im Level-Shifting und wenn ich mich umschaue, sehe ich, dass es verschiedene Ansätze gibt. Meine Frage bezieht sich auf einen Schaltplan, den ich für den ESP8266-Breakout von Adafruit gefunden habe, der hier zu sehen ist: https://cdn-learn.adafruit.com/assets/assets/000/024/745/original/adafruit_products_schem.png .
Zur Pegelverschiebung der RST- und RX-Signale von 5 V auf 3,3 V verwenden sie einfach eine Diode, die "rückwärts" orientiert ist, und lassen den internen Pullup den Rest erledigen. Es scheint so zu funktionieren:
Meine Frage ist also, ist dies ein gültiger Ansatz für eine unidirektionale Pegelverschiebung? Gibt es irgendwelche Fallstricke, dies auf diese Weise zu tun? Ich konnte bei meinen Suchen keine anderen Beispiele für diesen Ansatz finden, daher bin ich mir nicht sicher, ob dies nur eine "schnelle und schmutzige" Methode ist oder ob es aus irgendeinem Grund nur in diesem Szenario funktioniert.
Wenn das Signal von links nach rechts wandert, 5 V FTDI-Ausgang zu 3,3 V ESP8266-Eingang, dann wird, wenn der FTDI-Ausgang LOW ist, der Eingang zum Mikro einen Diodenabfall haben, der zur FTDI LOW-Ausgangsspannung hinzugefügt wird. Wenn der FTDI LOW auf ist , dann erwarten Sie vielleicht, einen weiteren hinzuzufügen dazu. Sie müssen Ihre ESP8266-Eingangsspezifikationen überprüfen, um festzustellen, ob der schlimmste Fall vorliegt immer noch als LOW-Eingang qualifiziert. Wenn ich sie anschaue, sehe ich, dass das Maximum ist . Was für viel Komfort zu nah ist. Die Diode selbst kann sich jedoch möglicherweise am unteren Ende befinden. Da ist vielleicht noch ein kleiner Spielraum. Es ist aber nicht viel.
BEARBEITEN: Da Sie in die Richtung des BSS138 gegangen sind, lassen Sie uns einen Schaltplan dafür einfügen und es ein wenig erklären:
Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan
Ich habe hier drei Schaltpläne mit dem BSS138 hinzugefügt und von dem genommen, was Sie auf Google-Bildern finden, aber wo ich die Spannungszuweisungen umgekehrt habe, damit es geht Zu . Ich habe die NMOS-Body-Diode hinzugefügt, weil sie wichtig ist. (Diese Schaltungen sind wirklich so ausgelegt, dass sie von 3,3 V bis 5 V funktionieren!) Das obere Schema ist die modifizierte Version. Die unteren beiden darunter zeigen, was passiert, wenn der FTDI-Fahrer fährt zunächst (links schematisch) und fährt im zweiten Fall (rechts schematisch.) Beachten Sie, dass es ein kleines Problem gibt?
Die meisten 3,3-V-Eingänge (und ich schätze, das trifft auf den ESP8266 zu) haben Schutzdioden, die wie im Diagramm ganz rechts oben gezeigt erscheinen. Eine Lösung wäre also, einen Vorwiderstand vom NMOS-Drain zum Eingangspin zu legen. Dieser Widerstand müsste groß genug sein, um den Strom in die Schutzdioden zu begrenzen, um die Spezifikationen zu erfüllen (die fast immer sind .) In diesem Fall können Sie wählen .
Aber dann ist die Frage ... warum nicht einfach den Widerstand verwenden und sich auf Ihre Schutzdioden verlassen?
Nun, dies geschieht oft beim Abgang Zu . Sie lesen das Datenblatt, finden die Schutzdiodengrenzen heraus (ich konnte sie dort nicht finden) und berechnen dann einen geeigneten Widerstand. In diesem Fall würde ich wahrscheinlich davon ausgehen ist das Beste, was ich bereit wäre zu versuchen, wenn ich keine Daten habe, und mich wahrscheinlich auf einen Testwert von einigen würde um zu sehen, wie gut es funktioniert. In diesem Fall würde ich einfach einen Widerstandswert von versuchen und entscheide dich für a oder ein für den 3,3-V-Eingang zum Mikro, je nachdem, ob die Schutzdioden ihre Arbeit erledigen.
Oder, wenn Sie möchten, könnten Sie sich einen BAV99 besorgen und diesen extern verwenden - mit der Idee, dass Sie sich nicht auf die internen Schutzdioden verlassen wollen. Wenn Sie dies tun, können Sie die letzte Schaltung in der unteren rechten Ecke der obigen Schaltpläne ausprobieren.
John D
jonk
Kohlenstoff
jonk
Kohlenstoff
jonk
Kohlenstoff
jonk