3.8. Pegelumsetzung¶
Ein GPIO-Pin der Kamera treibt im High-Zustand etwa 3,3 V. Ein Gerät auf der anderen Seite arbeitet möglicherweise mit 5 V (ältere Mikrocontroller, viele Sensorboards) oder 1,8 V (neuere Sensoren, einige Chip-zu-Chip-Busse). Die beiden direkt zu verbinden ist mal sicher und mal zerstörerisch; die Pegelumsetzung ist die Schaltung, die diese Lücke zuverlässig überbrückt.
3.8.1. Warum eine direkte Ansteuerung über Spannungsgrenzen hinweg einen Pin beschädigen kann¶
Das I/O-Pad jedes Chips besitzt ein Paar eingebauter Schutzdioden: eine vom Pin zur Masse, eine vom Pin zur Versorgungsschiene des Chips. Sie sind dazu da, elektrostatische Entladungen (ESD) abzufangen – eine kurze Hochspannungsspitze durch statische Elektrizität, die einen Pin treffen kann, wenn das Board angefasst wird. Eine Person, die über einen Teppich gelaufen ist, kann mehrere Kilovolt statischer Ladung tragen; das Berühren des falschen Pins überträgt diese Ladung in Nanosekunden auf den Chip. Die obere Schutzdiode wird in Durchlassrichtung vorgespannt und leitet den Impuls sicher in die Versorgungsschiene ab, bevor er die Transistoren im Inneren des Chips erreicht.
Wenn ein 5-V-Signal dauerhaft an einen 3,3-V-Pin angelegt wird, der nicht 5-V-tolerant ist, leitet die obere Schutzdiode für immer. Die Dioden sind für kurze ESD-Impulse ausgelegt, nicht für Dauerstrom; die Versorgungsschiene beginnt über 3,3 V zu steigen, die Diode erhitzt sich, und entweder der Pin oder der On-Chip-Spannungsregler fällt aus.
5-V-tolerante Pins verwenden eine andere Eingangsstufe – die obere Diode führt zu einer höheren Schiene oder fehlt ganz – sodass das Anlegen von 5 V harmlos ist. Ob die Pins eines Boards 5-V-tolerant sind, ist von Board zu Board verschieden; sehen Sie in der Kurzreferenz zur OpenMV Cam nach.
Die andere Richtung hat ihr eigenes Problem. Ein 3,3-V-GPIO, der High treibt, erzeugt ~3,3 V auf der Leitung. Ein 5-V-Empfänger, der 0.7 × Vcc benötigt, um High zu erkennen, hat seinen Schwellenwert bei 3,5 V; 3,3 V werden möglicherweise als Low oder als mehrdeutig gelesen. Selbst ohne Schaden funktioniert das Signal nicht zuverlässig.
Ein Pegelumsetzer löst beide Richtungen.
3.8.2. Der N-MOSFET als Schalter¶
Die folgenden Schaltungen verwenden einen einzelnen N-Kanal-MOSFET. Er hat drei Anschlüsse – Gate, Drain und Source – und verhält sich wie ein elektrisch gesteuerter Schalter.
Das Steuersignal ist die Spannung zwischen Gate und Source, geschrieben als Vgs (Gate-Source-Spannung):
Vgs = (gate voltage) - (source voltage)
Den MOSFET interessiert diese Differenz, nicht die absolute Spannung an einem der beiden Pins allein. Sein Verhalten ergibt sich aus Vgs:
Wenn
Vgsüber der Schwellenspannung des MOSFET liegt (typischerweise um 1 V für ein Kleinsignal-Logikpegel-Bauteil), schaltet der Transistor ein und Strom fließt ungehindert von Drain zu Source.Wenn
Vgsbei oder unter 0 liegt, schaltet der Transistor aus und es fließt nahezu kein Strom von Drain zu Source.
Der Drain-Source-Pfad ist der geschaltete Strompfad; Vgs öffnet oder schließt diesen Schalter.
Ein N-MOSFET besitzt außerdem eine Body-Diode zwischen Drain und Source, die leitet, wenn der Drain um mehr als ~0,6 V unter die Source gezogen wird. Die Diode ist ein Nebeneffekt der Fertigung; der bidirektionale Umsetzer weiter unten nutzt sie gezielt.
3.8.2.1. Verdrahtungsregeln¶
Ein N-MOSFET ist kein symmetrisches Dreiklemmen-Bauteil. Die Body-Diode zeigt von Source (Anode) zu Drain (Kathode), und Vgs steuert den Kanal. Daraus ergeben sich zwei Regeln, die für jede N-MOSFET-Schalterschaltung gelten müssen:
Source kommt an die niedrigere Spannung; Drain an die höhere. Liegt der Drain an der höheren Schiene, ist die Body-Diode in Sperrrichtung vorgespannt und tut nichts. Vertauscht man sie, ist die Body-Diode ständig in Durchlassrichtung vorgespannt: Strom fließt von der nun höheren Source durch die Body-Diode zum nun niedrigeren Drain, unabhängig davon, was das Gate tut. Der MOSFET ist dann kein Schalter mehr – er leitet kontinuierlich, das Signal lässt sich nicht abschalten, und das Bauteil überhitzt und fällt häufig aus.
Das Gate ist an die Spannungsschiene der Source gebunden. Hält man das Gate auf der Schiene, auf der die Source im Ruhezustand liegt, ergibt sich im Leerlauf
Vgs = 0, deutlich unter dem Schwellenwert; der MOSFET bleibt fest ausgeschaltet, bis entweder etwas das Gate über die Source treibt (die Einweg-Schaltung unten) oder die Source unter das Gate zieht (die bidirektionale Schaltung). Lässt man das Gate irgendwo anders floaten, ist der Aus-Zustand nicht mehr definiert – Rauschen, Leckstrom oder Streukapazität könnenVgsüber den Schwellenwert driften lassen und den MOSFET zufällig einschalten.
Das Umkehren einer der beiden Regeln macht aus dem Pegelumsetzer einen verlustbehafteten, unzuverlässigen Pfad. Beide Umsetzerschaltungen unten folgen diesen Regeln: Source auf der niedrigeren Seite, Drain auf der höheren, Gate an die Schiene der Source gebunden oder von ihr getrieben.
3.8.3. Einweg 3,3 V → 5 V¶
Der einfachste Pegelumsetzer schiebt ein Einrichtungssignal vom GPIO der Kamera in einen 5-V-Eingang. Ein einzelner N-MOSFET plus zwei Widerstände erledigt die Aufgabe.
Ein N-MOSFET setzt ein 3,3-V-Signal auf einen 5-V-Ausgang um (und invertiert es).¶
Wenn das GPIO High treibt (3,3 V am Gate), liegt Vgs über dem Schwellenwert und der MOSFET schaltet ein; der Drain wird auf ~0 V heruntergezogen. Wenn das GPIO Low treibt (0 V am Gate), ist der MOSFET aus und der 10-kΩ-Pull-up bringt den Drain auf 5 V.
Der Ausgang ist das Inverse des Eingangs. Die Software kann das Signal zurückdrehen (0 schreiben für „5-V-Ausgang High“) oder zwei Stufen kaskadieren, um bei doppelter Bauteilzahl ein nicht invertiertes Signal zu erhalten.
3.8.4. Bidirektional mit einem N-MOSFET¶
Für eine Leitung, die von beiden Seiten getrieben werden muss – ein gemeinsam genutzter Bus, bei dem jedes Ende die Leitung auf Low ziehen kann – ist die Standardschaltung ein einzelner N-MOSFET pro Leitung, mit je einem Pull-up zur Versorgung jeder Seite.
Ein einzelner N-MOSFET überbrückt eine 3,3-V- und eine 5-V-Leitung; jede Seite hat ihren eigenen Pull-up.¶
Das Gate ist an die 3,3-V-Versorgung gebunden, sodass das Verhalten des MOSFET davon abhängt, welche Seite treibt:
Beide Seiten im Leerlauf. Die Source liegt über den linken Pull-up auf 3,3 V; das Gate liegt auf 3,3 V;
Vgs = 0; der MOSFET ist aus. Die 5-V-Seite floatet über den rechten Pull-up auf 5 V. Beide Seiten lesen High.3,3-V-Seite zieht Low. Die Source fällt auf 0 V;
Vgssteigt über den Schwellenwert; der MOSFET schaltet ein und leitet von Source zu Drain. Die 5-V-Seite wird über den Transistor auf Low gezogen.5-V-Seite zieht Low. Der Drain fällt auf 0 V; die Body-Diode des MOSFET (Drain zu Source) wird in Durchlassrichtung vorgespannt und leitet; die Source (3,3-V-Seite) wird auf etwa 0,6 V heruntergezogen.
Vgsüberschreitet daraufhin den Schwellenwert und der MOSFET schaltet vollständig ein, wodurch beide Seiten auf Low gehen.
Der BSS138 ist der Standard-N-MOSFET für dieses Muster; Kleinsignal-Logikpegel-N-MOSFETs mit ähnlichen Gate-Schwellenspannungen verhalten sich hier alle auf dieselbe Weise.