Ist mein MOSFET-basierter bidirektionaler Level-Shifter verrückt?

In einem Moment der Billigkeit beschloss ich, keinen 5-V-auf-3,3-V-Level-Shifter bei Sparkfun zu bestellen, sondern ihn selbst zusammenzubauen. Der ursprüngliche Schaltplan verwendete einen BSS138 -MOSFET, aber da ich das Oberflächenlöten ungefähr so ​​sehr mag wie die Wurzelkanalbehandlung, entschied ich mich für einen ähnlich aussehenden MOSFET, der durchsteckbar und bei meinem bevorzugten Lieferanten leicht erhältlich ist.

Die Ergebnisse waren suboptimal. Beim Ziehen der 5-V-Leitung auf Masse war alles in Ordnung - die 3,3-V-Seite ging auf 0,07 V. Aber als man die 3,3 V auf Masse zog, zeigte die 5-V-Linie etwa 4,14 V (ansonsten lag sie etwas über 5,1 V). Bei genauerer Lektüre der betreffenden Datenblätter sowie der Original-Philips-Anwendungshinweise zu diesem Thema kam ich zu dem Schluss, dass die Gate-Schwellenspannung das Problem war.

Durch Ändern des Schaltplans und Binden des Gates des MOSFET an 5 V anstelle von 3,3 V scheinen beide Seiten gut zu funktionieren. Das Ziehen einer Seite nach unten bewirkt, dass die andere Seite nach unten geht. Ich bin jedoch überhaupt nicht davon überzeugt, dass dies wirklich eine vernünftige Sache ist. Mein Verständnis des ursprünglichen Schaltplans ist nicht tief genug, um sich eine vernünftige Meinung zu bilden.

Wird dieser modifizierte Schaltplan funktionieren oder sind die aktuellen guten Ergebnisse, die ich sehe, nur ein Zufall oder ein Vorläufer für etwas, das magischen Rauch freisetzt?

Antworten (1)

Kurze Antwort

  • In dieser Schaltung ist Vth (die Gate-Source-Spannung, bei der der MOSFET gerade eingeschaltet wird) entscheidend. Vth sollte wesentlich niedriger sein als Vh-Vl = 5 V - 3,3 V = 1,7 V.

    Der BSS138 hat eine Vth von 0,8 / 1,3 / 1,5 min/typisch/max.
    Obwohl es hier als 1,7 > 1,5 theoretisch "gut genug" wäre, ist dieser Spielraum unangenehm klein.

    Leider ist die von Ihnen gewählte Alternative noch schlechter als die BSS138.
    Der FQN1N60C hat eine Vth von 2/-/4 V. Das heißt, im besten Fall ist eine Vth von 2 V höher als die erforderlichen 1,7 V, und er kann eine Vth von bis zu 4 V haben, was in dieser Anwendung weit über 1,7 V liegt .

    Ein akzeptabler (nur) TO92-MOSFET, der bei Digikey auf Lager ist, ist der Zetex / Diodes Inc ZVNL110a .
    Dieser hat Vth von 0,75/-/1,5 Volt. Dies entspricht in etwa dem BSS138.


Länger:

  • Der BSS138 ist ein relativ großer Schrott. Es hat seinen Platz, aber es ist über seine sicheren Fähigkeiten in dieser Schaltung hinaus gedehnt. Leider ist die von Ihnen gewählte Alternative, ein FQN1N60C, noch schlechter.

  • Ihre Erhöhung der Spannung LV auf eine Spannung, die HV entspricht, überwindet den hohen Vth-Wert des FQN1N60C.

Der Grund, warum Ihre ursprüngliche Schaltung schlecht funktioniert, liegt darin, dass der FQN1N60C ein sehr trauriges Exemplar der MOSFET-Kunst ist, und der Grund, warum Ihre überarbeitete Schaltung gut funktioniert, liegt auch darin, dass der FQN1N60C ein sehr trauriges Exemplar der MOSFET-Kunst ist. Ein MOSFET mit niedrigem Vth würde in der ursprünglichen Schaltung ordnungsgemäß funktionieren und in der überarbeiteten Schaltung versagen.

Dies liegt daran, dass die Vth des FQN1N60C in der ursprünglichen Schaltung zu hoch für die verfügbare Vth ist und sich nicht richtig einschaltet. Ein MOSFET mit ausreichend niedrigem Vth würde sich mit der verfügbaren Spannung richtig einschalten. In der überarbeiteten Schaltung hat man dem FQN1N60C im betriebenen Zustand genügend Gate-Spannung zur Verfügung gestellt, aber nicht so viel, dass er ungewollt betrieben wird. Wenn Sie einen MOSFET mit niedrigem Vth verwenden, würde er durch die verfügbare Schicksalsspannung eingeschaltet, wenn er ausgeschaltet sein sollte, und die Schaltung würde ausfallen.

Die Schaltung ist äußerst clever, ABER ihre Cleverness hängt davon ab, dass der MOSFET genügend Gate-Spannung hat, um ihn zu treiben, wenn TX_LV niedrig ist, aber nicht genug Spannung, um ihn zu treiben, wenn TC_LV hoch ist. Normalerweise ist LV = T_LV, wenn TX_LV hoch ist, sodass der MOSFET keine Gate-Spannung sieht. Indem Sie LV auf HV erhöhen, stellen Sie eine Gate-Spannung von (HV-LV) bereit, wenn TX_LV hoch ist. Da HV-LV = 5-3,3 = 1,7 V ist, löst der FQN1N60C keine Fehlauslösung aus, da seine praktische Vth > 1,7 V beträgt.

Unten ist das ursprüngliche Schaltbild des Pegelumsetzers.

Der BSS138 ist ein N-Kanal-MOSFET - er leitet also, wenn sein Gate relativ zur Source positiv ist, sein Drain ist normalerweise höher als seine Source, und die interne Body-Diode sperrt, wenn Vds + ve ist, und leitet, wenn Vds negativ ist .

Geben Sie hier die Bildbeschreibung ein

Normalbetrieb
Mit TXLV und TXHV hoch, Gate ist auf LV (ursprünglich 3V3, Source ist auf TX_LV = 3,3, also Vgs = 0, also ist FET ausgeschaltet.
Source ist auf TX_LV, das von R3 dorthin gezogen wird.

Logische 0 von links nach rechts senden.
Ziehen Sie TX_LV auf Low. Quelle = 0 V, Tor = 3 V3. Also Vgs = 3V3. Da dies > Vth ist, wird BSS138 eingeschaltet. Da Source = 0 V und FET eingeschaltet ist, wird TX_HV ebenfalls auf Low gezogen. Das war einfach :-).

Logische 0 von rechts nach links senden.
Ziehen Sie TX_HV auf Low. Drain = 0. Gate ist 3V3 über harte Verbindung.
Source = 3V3 (aber siehe unten) Also: Vgs = 0. FET ist aus. Vds = - 3V3.
ABER der BSS138 hat eine interne Diode S nach D. Diese Diode leitet jetzt und zieht TX_LV auf einen Diodenabfall über TX_HV.
Auch einfach.

JETZT BSS138 durch FQN1N60C ersetzen.
Vth des MOSFET ist> bis >> 1,7 V Spielraum zwischen 5 V und 3 V3.
Beim Senden von logisch 0 von LINKS NACH RECHTS ergibt die Erdungsquelle Vgs = 3V3 = < 4V im schlimmsten Fall. Wenn der wahre Vth irgendwo bei 1,7 V liegt, funktioniert die Schaltung irgendwie.

Das Erhöhen von LV auf 5 V funktioniert wie jetzt Vgs = 5 V.
ABER wenn TX_LV hoch ist, gibt es immer noch 5-3,3 = 1,7 V Ansteuerung zum MOSFET, obwohl es 0 V sein sollte und vorher war.

Wenn Sie jetzt den MOSFET ersetzen, der eine Vth < 1,7 V hat, wird er immer eingeschaltet sein. dh ein MOSFET mit besserer Qualität arbeitet schlechter (oder überhaupt nicht). Die "Heilung" besteht darin, zunächst einen MOSFET mit Vth < bis << 1,7 V zu verwenden.

Das ist die zweite supertolle Antwort, die Sie mir in den letzten Tagen gegeben haben. Vielen Dank für Ihre Hilfe!
@Russel - Seltsam, dass Sie die Klassifizierung von FETs auf "Logikebene" in dieser Antwort nirgendwo erwähnt haben ...
@Kevin Vermeer - Ich habe einen kurzen Moment darüber nachgedacht. Wenn ich es verwendet hätte, wäre es gewesen zu sagen, dass es ein sehr subjektiver Begriff ist – nicht ganz Marketing-Jargon, aber näher daran, als es angenehm ist. Und in diesem Fall sind zwei "logische Ebenen" beteiligt. Der BSS138 soll "logischer Pegel" sein und ist bei 5 V erträglich und bei 3 V für Ströme in der Nähe seines Nennmaximums erträglich. Der Grund, warum es in dieser Anwendung funktioniert, ist, dass Vth typischerweise typisch und nicht im schlimmsten Fall ist und weil die Ströme klein sind. Stattdessen war ich genau darüber, was Vths erwartet und akzeptabel waren.
Ich glaube nicht, dass vh-vl > vth wichtig ist. Ich denke, was nur zählt, ist Vl > vth (beachten Sie, dass dies auch die Schlussfolgerung Ihrer Analyse ist, wenn ich es richtig lese)
Hat jemand versucht, eine 5-V-20-MHz-Rechteckwelle zu pulsieren und eine vernünftige 3-V-RECHTECKwelle herauszubekommen?
Sehr gute Antwort und Erklärung! Gute Arbeit !! Nun, zumindest in diesem speziellen Fall denke ich auch, dass das Wichtigste das ist: Vl > vth. Ich habe sogar den 2N7000-Typ verwendet und hervorragende Arbeit geleistet, indem ich mein Arduino Uno mit dem MMA8432Q-Beschleunigungsmesser verbunden habe.
@naz Diese Schaltung funktioniert nur für sehr niedrige Frequenzen. 20 MHz sind zu viel.
Ich bemühe mich im Allgemeinen, der Versuchung zu widerstehen, Menschen online (oder anderswo) als „Idioten“ zu bezeichnen, obwohl der Begriff eine gute formale Bedeutung* hat und gelegentlich zutreffend ist. Irgendwie wurden dieser Antwort diese Woche 2 Punkte abgezogen und sie hat 1 Ablehnung. Der Verlust von "Rep" ist natürlich völlig unwichtig, aber es ist traurig zu glauben, dass es einen Idioten auf dieser Liste gibt, der diese Antwort angesichts aller verfügbaren Informationen wirklich für "nicht nützlich" hält. Eine Frage hätte dem Zweifler vielleicht mehr geholfen. | *Idiot = IQ 50-75. Passt in einigen Fällen, wenn nicht in allen Lebensbereichen, wie in diesem Fall, in den Diskussionsbereich.
Sie irren sich in Bezug auf Vh-Vl>Vth. Es ist tatsächlich Vl-Vdiode, die > Vth sein muss. Siehe hier für das Funktionsprinzip.
@rustyx 7+ Jahre alt :-). Es ist komplex. Das Problem ist, dass ich die Bedingungen, unter denen verschiedene Situationen zutreffen, nicht pedantisch genug dargelegt habe. Ich denke, dass die Erklärung durch Hinzufügen geeigneterer qualifizierender Wörter klarer sein kann. || Das Funktionsprinzip, das ich erklärt habe und das in Ihrer Referenz angegeben wurde, erscheint zu 100% identisch (natürlich nicht in den genauen Worten, aber im Mechanismus) - wie ich erwartet hatte. Wenn Sie einen wesentlichen Unterschied sehen, den ich übersehen habe, würde ich mich freuen, davon zu hören. ...
| Wenn Sie mit Vh, Vl & Vdiode meinen: Vin_left hoch & niedrig und Vdiode_fwd_leitend, dann müssen Sie Ihr entsprechendes Argument buchstabieren.
@rustyx ein paar Stunden weiter. zu " ... Sie irren sich in Bezug auf Vh-Vl> Vth ..." -> Nr. Erweitern: ' Für den Betrieb von links nach rechts nehmen Sie an, dass Vh = Eingang hoch = ~ LV (3V3 hier) ist. Angenommen Eingang niedrig = VI. Vl KANN ungefähr null sein, KANN aber höher sein. Gate ist bei LV - hier = 3v3. Wenn die Quelle bei Vh liegt, ist vgs = LV-VH. Dieser ist entweder 0 oder sehr niedrig. FET ist aus. | Wenn Vin = Vl = niedrig ist, sieht der FET Vgs = LV-Vl. = Vh-Vl. Wenn Vh-Vl < Vth ist, schaltet sich der FET nicht ein. Wenn Vh-Vl >> Vth ist, schaltet sich FEt vollständig ein und kein Problem. Wenn Vh-Vl nur geringfügig höher als Vth ist, ist FET irgendwie eingeschaltet und cct funktioniert irgendwie. Daher meine Aussage.
@RussellMcMahon Ihre Antwort ist sehr detailliert und leicht verständlich. Es gibt eine Sache, die ich mich frage. Was bestimmt die maximal mögliche HV? AdaFruit verkauft ein Modul, das auf diesem Design basiert, und es sagt, dass HV maximal 10 V beträgt. Ich habe das BSS138-Datenblatt gelesen und konnte nicht feststellen, was ein Herunterschalten von 12 oder sogar 24 V verhindern würde. Kannst du bitte erklären?