Wie entmuxt man einen Tri-State-Pin?

Ich möchte einen einzelnen Pin (Tri-State-Puffer, 3,3-V-Logik, falls dies wichtig ist) verwenden, um zwei P-Kanal-MOSFETs als High-Side-Schalter anzusteuern. Es wird immer nur einer von ihnen eingeschaltet sein. Wenn sich der Pin im hochohmigen Zustand (hi-Z) befindet, möchte ich, dass beide ausgeschaltet sind.

Die Lösung, die ich mir ausgedacht habe, besteht darin, den Hi-Z-Zustand hochzuziehen (auf 0,2 * Vcc, siehe Kommentare) und zwei Komparatoren (Typ mit offenem Kollektor) zu verwenden, um die FETs anzusteuern, wenn sich der Pin entweder im Lo- oder im High-Zustand befindet:

schematisch

Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan

Ich frage mich: Gibt es dafür einen besseren, einfacheren oder eleganteren Ansatz? Ist diese Lösung für schnelles Umschalten geeignet?

Ehrlich gesagt ist die Absicht dieser Schaltung klar und die Anzahl der Teile ist nicht schrecklich. Ich würde es behalten, es sei denn, Sie haben eine Platzbeschränkung auf der Leiterplatte, die eine Reduzierung erfordert. Selbst dann würde ich nur versuchen, kleinere Teile auszuwählen.
Tri-State-Erkennung kann von Interesse sein.
@Jens Wenn ein E / A-Pin an einer MCU bei mittlerer Spannung schwebend gelassen wird, können Sie den Pin aufgrund einer übermäßigen Stromaufnahme im Eingangspuffer beschädigen. Siehe ti.com/lit/an/scba004d/scba004d.pdf . Sie müssen sicherstellen, dass die Vorspannungswiderstände die ungetriebene Pin-Spannung über VIH belassen (normalerweise entweder 2,0 V oder 0,7 * VCC).
@ user96037 Guter Punkt. Meine MCU hat VIH (min) = 0,75 VCC und VIL (max) = 0,25 VCC. Ein 4: 1- oder 1: 4-Teiler / Halten des Pins bei 0,2 VCC oder 0,8 VCC sollte also den übermäßigen Strom im Pin vermeiden, und die Komparatoren können einen 1: 4: 1-Teiler für das Fenster verwenden.

Antworten (2)

Hmm, vielleicht ist das per sagen nicht eleganter...

Dies kann gelöst werden, indem ein Inverter auf PMOS-Basis und ein Inverter auf NMOS-Basis hergestellt werden. Ein NMOS-basierter Inverter wird eine Spannung um die Schwellenspannung für den NMOS invertieren, diese Spannung wird für den PMOS-basierten Inverter unterschiedlich sein. Wenn sowohl NMOS- als auch PMOS-Transistoren Schwellenwerte haben, die weniger als die Hälfte von VDD betragen, erhalten Sie einen Spannungsbereich dazwischen, in dem beide invertieren. Das bedeutet in den folgenden Fällen, dass keiner der Ausgänge eingeschaltet ist.

Hier ist eine Lösung, die nur 4 Transistoren benötigt:

Geben Sie hier die Bildbeschreibung ein

Hier ist der Link , wenn Sie damit interagieren möchten. Seine Ausgänge sind nicht zwei P-MOS-Transistoren, aber dies kann durch Hinzufügen eines fünften Transistors gelöst werden.

Der Grund, warum ich mich entschieden habe, diesen Schaltplan zu teilen, ist, dass Ihre Konstruktion möglicherweise nur begrenzt Platz bietet, dann könnte dies eine gute Lösung sein.


Der obere Graph ist die Spannung an den Gates der Transistoren ganz links.
Der mittlere Graph ist die Spannung über der oberen Last.
Das untere Diagramm ist die Spannung über der unteren Last.

Ein Schaltplan mit 5 Transistoren, der so funktioniert, wie Sie es beschrieben haben, würde folgendermaßen aussehen:

Geben Sie hier die Bildbeschreibung ein

Hier ist der Link für diesen Schaltplan.


Der obere Graph ist die Spannung an den Gates der Transistoren ganz links.
Der mittlere Graph ist die Spannung über der oberen Last.
Das untere Diagramm ist die Spannung über der unteren Last.


Hier ist der "ish"-Teil von oben:

Bleh, habe gerade festgestellt, dass dies nur funktioniert, wenn sich Ihr Ausgangspin innerhalb der Ausgangsspannungsstufe VDD befindet. Dieses Design funktioniert also nicht mit 12 V, da Ihr Pin wahrscheinlich nur zwischen 0 und 3,3 / 5 V liegt. Na ja.


Bearbeiten

Hier ist ein Schema ... das tut, was Sie wollen, aber ehrlich gesagt ist es nur chaotischer als Ihre Lösung. Es sei denn, Sie erstellen mit diesen Transistoren und internen Widerständen / Stromquellen Ihren eigenen benutzerdefinierten ASIC.

Geben Sie hier die Bildbeschreibung ein

Hier ist der Link für dieses Schema


Der obere Graph ist die Spannung an den Gates der Transistoren ganz links.
Der mittlere Graph ist die Spannung über der oberen Last.
Das untere Diagramm ist die Spannung über der unteren Last.

Bei dieser Lösung arbeitet er mit 3,3 V und nutzt die Logik-Inverter auch als Level-Shifter.

Aber wenn ich Sie wäre, würde ich mit der Lösung gehen, die Sie selbst gefunden haben. Aber mit LM393 statt LM319, weil ich ein Geizhals bin und LM393 etwas weniger Platzbedarf hat (weniger Pins).

Aber wenn Sie hohe Geschwindigkeit brauchen, dann ist LM319 natürlich der richtige Job für Sie, oder meine Transistor- / Widerstandslösung mit 1 kΩ anstelle der 10k/100k, die sie jetzt haben.

Danke für den Vorschlag. Ich mag die Symmetrie: Die Vgs-Schwellenwerte der beiden linken Transistoren 'hardcodieren' das Komparatorfenster und die mittleren Transistoren ersetzen die Open-Collector-Ausgänge :) Es ist wahrscheinlich erwähnenswert, dass die Vgs-Schwellenwerte der linken Transistoren absolut gesehen die maximalen Vgs-Schwellenwerte sein müssen niedriger als die minimale Vcc/2 des Eingangs!
Ich weiß nicht, ob das echt ist ... Simulation - was denkst du?
@Jens " Wenn sowohl NMOS- als auch PMOS-Transistoren Schwellenwerte haben, die weniger als die Hälfte von VDD betragen, erhalten Sie einen Spannungsbereich dazwischen, in dem beide invertieren. ". Meh, ich war schlampig und sagte Vcc/2. Nun ja. Diese Simulation ist überhaupt nicht dumm, ich würde es auf jeden Fall auf einem Brotbrett ausprobieren, wenn ich Sie wäre. - Das ist wahrscheinlich die " schlimmste " Frage, die ich je beantwortet habe. Am schlimmsten in dem Sinne, dass die Person, die die Frage stellte, zwei Antworten hatte, die besser waren als meine.

Inspiriert von Harrys Antwort ist hier eine Lösung, die 3 Widerstände und einen BJT-Transistor benötigt (plus die üblichen zwei N-Kanal-MOSFETs und Pull-ups, um die P-Kanal-MOSFETS anzusteuern). Eingangs- und Ausgangsspannungen sind unabhängig, z. B. können Sie 12 V von einer 3,3-V-MCU oder 5 V von einer 5-V-Logik steuern:

schematisch

Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan

Der obige Simulationslink funktioniert nicht, klicken Sie stattdessen hier

Anmerkungen:

  1. Im Hi-Z-Zustand ziehen R1/R2 die Eingangsspannung hoch und müssen so eingestellt werden, dass „Test“ ist

    (a) ausreichend niedriger als die Gate-Schwellenspannung von M1, um sie gesperrt zu halten. Für 2N7000 sollte dies weniger als 0,8 V betragen; Und

    (b) niedriger als die maximale VIL des Pins, um übermäßige Ströme in der Steuerung zu verhindern. Für ESP8266 ist dies 0,25 * Vcc oder weniger als 0,825 V bei Betrieb mit 3,3 V.

  2. Im HIGH-Zustand muss die Ausgangsspannung des Pins ausreichend höher sein als die Gate-Schwelle von M1. Bei einem 2N7000 sollten das mindestens 3V sein. Etwas niedrigere Spannungen werden wahrscheinlich auch funktionieren.

  3. Die geschaltete Spannung (hier: 12V) muss ausreichen, um M3/M4 vollständig einzuschalten. Für den FQP27P06 benötigen Sie etwa 8 V. Wählen Sie MOSFETs mit Logikpegel, wenn Sie niedrigere Spannungen schalten müssen.

  4. Für Q1 reicht so ziemlich jedes NPN (z. B. 2N3904 oder BC547). Klimmzüge R3..R5 können 10K betragen, weniger, wenn Sie bei höheren Frequenzen schalten müssen.


Entfernen Sie für einen Low-Side-Schalter M3 / R3 und M4 / R4 und schließen Sie Ihre Last direkt an M1 und M2 an, und rüsten Sie sie wahrscheinlich auf etwas Geeigneteres auf:

schematisch

Simulieren Sie diese Schaltung

Der obige Simulationslink funktioniert nicht, klicken Sie stattdessen hier .