NAND mit LED funktioniert nicht

Ich habe versucht, diese kleine Schaltung zu erstellen, aber es funktioniert nicht. Die Wahrheitstabelle sollte die eines NAND-Gatters sein, aber stattdessen bekomme ich Folgendes:

A|B|Q
0 0 1
1 0
1 0 1
0 1 1 0

Ich habe die Schaltung in falstad.com/circuit/circuitjs.html aufgestellt, getestet und es kam dasselbe heraus! Warum passiert das? Ich verstehe nicht. Ich hänge die Textdatei für die Schaltung und ein Bild unten an.

Schaltkreis

CircuitJS-Datei: http://pastebin.com/Cy7xWG1t

@MichaelGeorge, ich glaube nicht, dass du die Frage gelesen hast. Die Wahrheitstabelle ist korrekt. Es beschreibt das Verhalten dieser Schaltung.

Antworten (3)

Das Problem mit Ihrer Schaltung ist, dass der Basis-Emitter-Übergang eines Bipolartransistors wie eine Diode wirkt. Wenn also Schalter A ausgeschaltet und Schalter B eingeschaltet ist, haben Sie effektiv Folgendes: -

schematisch

Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan

Die offensichtliche Lösung besteht darin, den Wert von R2 zu erhöhen und zu verhindern, dass Q3 durch Strom eingeschaltet wird, der in die Basis von Q2 eingespeist wird. Wenn Sie jedoch den Widerstand zu groß machen, fällt die Spannung zu stark ab und die Spannung an R3 ist möglicherweise zu niedrig, um Q3 einzuschalten, wenn Schalter A und B beide eingeschaltet sind.

Ein guter Transistor sollte eine Stromverstärkung von 100 oder mehr haben, sodass er nur ~ 10 uA Basisstrom benötigt, um 1 mA vom Kollektor zum Emitter zu schalten (5 V über einen 5-k-Lastwiderstand zu erzeugen). Eine Änderung des Werts von R2 auf 100 kΩ würde den Spannungsabfall darüber auf 1 V bei 10 uA begrenzen. Der Basis-Emitter von Q2 fällt ebenfalls um ~0,6 V ab, wodurch 3,4 V über R3 verbleiben, immer noch genug Spannung, um Q3 einzuschalten.

Wenn Schalter A ausgeschaltet ist, ist der Kollektor von Q2 effektiv getrennt, sodass er den Strom nicht verstärken kann, und die Spannung an R3 fällt auf 0,21 V, da R2 den Strom auf (5 V – 0,6 V)/(100 k + 5,1 k) = 42 uA begrenzt. Q3 benötigt zum Einschalten mindestens 0,6 V, damit es ausgeschaltet bleibt - genau das, was Sie brauchen!

Gut entdeckt und erklärt, was zeigt, dass BJTs nicht einfach die FETs in den traditionellen Logikschaltungen ersetzen können.

Überprüfen Sie Ihre Logik mit dem Schaltplan.

Nur der untere des Paares (B) wird benötigt, um den Emitter hochzuziehen. Verwenden von Vbe (B) als Diode, um den Ausgang niedrig einzuschalten.

Sehen Sie dann, wo die Änderung erforderlich ist, um beide Ströme der Eingänge A und B zu steuern. (Hinweis auf falschen Knoten und R-Position)

Versuchen Sie stattdessen Folgendes:

schematisch

Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan

(habe ich auch vermutet v C C = + 5 v als Spannungsquelle hier.)

Ich weiß wirklich nicht, warum Lehrmaterialien diese gepaarten BJTs weiterhin für NAND- und NOR-Gatter verwenden. Sie müssen entweder noch komplexer sein, um die Dinge richtig zu lehren, oder einfacher (wie oben). Aber stattdessen scheinen sich einige einzubilden, dass sie etwas Nützliches lehren, indem sie eine schlechte analoge Schaltung für den digitalen Gebrauch bereitstellen.

Lassen Sie uns die Schaltung in dem Fall untersuchen, der für Sie nicht funktioniert:

schematisch

Simulieren Sie diese Schaltung

Beachten Sie, dass der Emitter von Q 1 ist bei ungefähr 0 v . Das liegt daran, dass es keine negative Spannung sein kann, da es dafür keine Quelle gibt. (Es wird höher sein, wie wir in Kürze sehen werden.) Da es fast keinen Strom gibt Q 1 's Basis ist der Emitter ungefähr derselbe wie die Basis (was natürlich der Fall ist 0 v .) Das bedeutet aber auch das Q 2 's Kollektor sitzt in der Nähe 0 v , zu. Und diese Vorwärtsspannung v B C 2 (von Q 2 .) So Q 2 ist ungefähr so ​​vollständig gesättigt, wie es nur möglich ist. (Dadurch wird der Emitter von platziert Q 1 bei der gleichen Spannung wie der Kollektor von Q 2 , die kurz unten berechnet werden, wenn ich berechne Q 2 's Emitterspannung.) Grob gesagt fließt also fast der gesamte Basisstrom ein Q 2 wird Kollektorstrom für Q 2 . Und das bedeutet, dass der Emitterstrom ungefähr so ​​​​ist:

ICH E 2 = v C C v B E 2 R 2 + R 3

Vorausgesetzt v B E 2 = 700 mV , ich komme herum 303 μ A . Das versenken R 3 , bekomme ich eine Ausgangsspannung von ca 1,55 v .

(Angesichts dieses Kollektor- / Emitterstrompegels würde ich ungefähr erwarten 60 mV weniger bzw v B E 2 = 640 mV , in einem kleinen Signalgerät. Das würde den Emitterstrom auf etwa erhöhen 307 μ A und die resultierende Ausgangsspannung zu 1.57 v . Eine kleine Anpassung.)

Wenn man das rundet, gibt die Schaltung herum aus 1.6 v auf der Q Ausgang, was natürlich ausreicht, um Ihren Ausgangstransistor zu aktivieren und damit die LED auszuschalten. (Dies wird auch sein, was einen sehr geringen Betrag ausmacht v C E 2 Spannungsdifferenz, die Kollektorspannung von Q 2 und damit die Emitterspannung von Q 1 .)

Wenn Sie die analoge Elektronik ignorieren und sich die Transistoren nur als eine Art digitales EIN / AUS-Gerät vorstellen, ist die Schaltung wahrscheinlich sinnvoll. Aber so zu denken ist reine Fantasie und nicht Realität.

Korrekt funktionierende digitale Schaltungen entstehen aus dem Verständnis der analogen Realität. Sie können Konzepte bis zu einem gewissen Punkt vereinfachen. Aber nicht über diesen Punkt hinaus, wo die Vereinfachung zu einer groben Verzerrung führt.

Ich verstehe diesen Teil nicht: "Beachten Sie, dass der Emitter von Q1 bei etwa 0 V liegt ... er kann nicht höher sein als die Basis". Warum kann Ihrer Meinung nach die Emitterspannung nicht höher sein als die Basisspannung? Und wohin kann der Ic-Strom in Ihrem Bild gehen? LTspice gibt in diesem Fall etwa 1,3 Volt am Emitter von Q1 aus, daher denke ich, dass 0 V falsch sind.
@KenShirriff Danke, dass du diesen Fehler erkannt hast. Es kann höher sein (und wird es sein). Ich habe nicht genau nachgedacht, als ich das geschrieben habe, und eigentlich etwas anderes gemeint. Ich werde meine Aussage korrigieren und den Grund angeben, warum Sie bekommen, was Sie bekommen haben.
@jonk Das hat viele Dinge geklärt. Ursprünglich wollte ich mehrere Logikgatter so verketten und einen einfachen binären Addierer erstellen, aber ich glaube nicht, dass das mit meinem Wissen im Moment möglich ist. Was würdest du vorschlagen zu lernen, wenn ich solche Sachen lernen möchte?
@Moomba Um zu beginnen, siehe meine Antwort hier: electronic.stackexchange.com/questions/265567/…