Mit Opamp oder 555er-CMOS:
Ein einfaches Toggle-Flipflop
zum Ein-/Ausschalten mit einer Taste.
Einleitung
Die Wurzeln dieses Elektronik-Minikurses liegen in den Tiefen des
ELKO-Forums,
ein Elektronik-Forum, das ich immer wieder gerne weiterempfehle. Es gibt
einen "harten Kern" von Mitwirkenden, die sich mit viel Herzblut dafür
einsetzen und der Spass kommt dabei nie zu kurz. Dies lockert die sonst
eher trockene Materie willkommen auf. Auslöser zur Entstehung dieses
Elektronik-Minikurses zum Thema, wie man mit einem 555-Timer-IC ein
Toggle-Flipflop mit prellfreiem Tasten realisiert, ist der
Diskussions-Thread
Problem mit FlipFlop
vom 19.06.2012 von Erhard.
Eine etwas langatmige Diskussion mit vielen Teilnehmern. Aber da zeigte
mitten drin Olit - ein Teilnehmer des "harten Kerns" -
eine pfiffige Schaltung,
wie man einem 555-Timer-IC die Fähigkeit eines Toggle-Flipflops verleiht
und auch gleich ein prellfreies Tasten ohne nennenswerten Zusatz
ermöglicht. Dieser Elektronik-Minikurs erklärt im Detail, wie diese
Schaltung funktioniert. Ergänzende Elektronik universalisiert die ganze
Schaltung noch etwas.
Wir beginnen die Realisierung mit einem einfachen Komparator oder
Operationsverstärker (Opamp) und daraufhin mit dem 555er-Timer-IC. Bei
beiden Anwendungsarten, ob Opamp/Komparator oder 555er-Timer-IC, hat der
Schmitt-Trigger die zentrale Funktion. Das irritiert vielleicht etwas.
Aber es ist so. Erklärt wird dies im Kapitel "Toggeln mit einem
555er-Timer-IC". Selbstverständlich ist es, wie in allen meinen
555er-Elektronik-Minikursen, dass ich die CMOS-Version mit den Timer-ICs
LMC555 und TLC555 der alten bipolaren Version NE555 bevorzuge. Warum
dies so ist, erfährt man hier:
Toggeln mit einem Opamp oder Komparator
Wie aus einem Schmitt-Trigger ein prellfreier Taster und ein
Toggle-Flipflop in einem wird, zeigt Bild 1 an einem Schmitt-Trigger,
der aus einem positiv rückgekoppelten Komparator (Mitkopplung) besteht.
Es ist durchaus möglich anstelle eines 555er-Timer-IC ein beliebiger
Opamp oder Komparator für den fast selben Zweck einzusetzen. Fast
bedeutet die Einschränkung, dass ein Autoreset-Zusatz mit zusätzlichem
Aufwand realisierbar wäre, hier jedoch unberücksichtigt bleibt. Ich
überlasse dies dem interessierten Leser, der gerne selbst daran
herum tüftelt...
Teilbild 1.1 zeigt mit einem einfachen Ein- und Ausschalten mit zwei
Tasten das Grundprinzip. Beim Einschalten der Betriebsspannung ±Ub ist
es zufällig, ob Ua die Spannung von beinahe +Ub oder beinahe -Ub
annimmt. Beinahe bedeutet, dass je nach verwendetem Opamp oder
Komparator +Ub und/oder -Ub nicht exakt erreicht werden können.
Grundsätzlich ist das nur dann möglich, wenn die Ausgangsbeschaltung des
IC rail-to-rail-fähig ist und Ua nicht nennenswert belastet wird.
Die Referenzspannung Ur am nichtinvertierenden Eingang hat anfänglich im
vorliegenden Beispiel eine Spannung von fast +Ub/10, weil Ua auf fast
+Ub liegt (siehe Diagramm) und R1/R2 als 1/10-Spannungsteiler wirkt.
Beim Drücken auf die Taste DT1 wird Ue auf fast +Ub/5 erhöht.
Verantwortlich für diesen Spannungswert ist der Spannungsteiler R3/R4.
Dies hat zur Folge, dass der Schmitt-Trigger kippt und Ua wird beinahe
-Ub. Dies bedeutet, dass bei jedem Tastendruck DT1 oder DT2 Ue etwa
doppelt so gross ist wie Ur, ob im augenblicklich positiven oder
negativen Spannungsbereich. Wie das funktioniert, zeigt das Diagramm
unterhalb der Schaltung.
Praxistipp: Man kann diese praktische und einfache Schaltung
dafür einsetzen mit zwei Drucktasten etwas ein- und auszuschalten. Auf
Ua folgt z.B. eine einfache Transistor-Schaltstufe, die ein Relais
steuert. Anstelle von zwei einzelnen Drucktasten kann man auch einen
zweipoligen Miniatur-Kipptaster benutzen, der eine Mittelstellung hat
und nach beiden Seiten tasten kann.
Der nächste Schritt in Teilbild 1.2 zeigt wie es mit nur einer
Drucktaste DT funktioniert. Der Vorgang entspricht dem der Schaltung in
Teilbild 1.1, mit dem Unterschied, dass nur eine Taste abwechslungsweise
eine Spannung von grösser als +Ub/10 und grösser als -Ub/10 beim
Tastendruck zum invertierenden Eingang überträgt. Dies kann nur
funktionieren, wenn die veränderte invertierte Spannung an Ua vor dem
folgenden Tastendruck gespeichert wird. Dies geschieht durch R4 und C.
Die Prellfreiheit des Tastens ergibt sich durch die Aufladezeit von C
durch R4. Versuche zeigen, dass eine R4*C-Zeitkonstante von wenigen 10
ms genügen kann. Zum sicheren Funktionieren empfiehlt sich eine
R4*C-Zeitkonstante im unteren bis mittleren 100ms-Bereich. Durch das
Experimentieren kann man die R4*C-Zeitkonstante optimieren.
Die Prellfreiheit: R4 muss sehr viel hochohmiger sein als R3, so
dass beim Drücken der Taste DT C über R3 rasch auf eine Spannung sicher
innerhalb der Hysteresespannung entladen wird. Dieser entladene Zustand
bleibt, so lange man die Taste drückt. Nach dem Loslassen der Taste
beginnt die Aufladung von C durch R4. Das geht aber so langsam, dass die
Spannung an C während dem Tastenprellen sicher innerhalb der
Hysteresespannung liegt. Während dem Prellen wird C ständig niederohmig
über R3 entladen. Das Aufladen von C durch R4 kann erst nach dem Ende
des Prellvorganges ungehindert erfolgen. Und erst dieser Vorgang
bereitet den nächsten aktiven Tastendruck vor. Durch Reduzierung von R1
kann man die Hysteresespannung vergrössern und dafür die Zeitkonstante
R4*C entsprechend kleiner wählen. Das Diagramm Ue ist nicht
massstäblich. Die Spannungssitzen müssten etwa fünf mal grösser
gezeichnet sein, als die Hysteresespannung. Wie gross muss man R3
dimensionieren? Man glaubt es kaum, beim Einsatz des handelsüblichen
JFET-Opamp
TL071
funktioniert die Schaltung noch bei R3 = 1 Ohm. Das ergibt eine
Entladezeitkonstante von 1 µs. Möglich ist dies durch die relativ hohe
Slewrate von 13 V/µs des TL071. Der zulässige Bereich von R3 beträgt
mindestens 1:1000, nämlich 10 Ohm bis 10 k-Ohm. Oberhalb von 20 k-Ohm
wird die Schaltung instabil. Sie oszilliert während dem Drücken der
Taste. Mehr dazu gleich beim Thema zu Teilbild 1.4.
Was bietet Teilbild 1.3? Funktionell besteht kein Unterschied zu
Teilbild 1.2. Der einzige Unterschied liegt darin, dass eine
Single-Speisung von +Ub genügt. Dafür braucht es die Spannungsteiler
R2a/R2b und R3a/R3b anstelle der Einzelwiderstände R2 und R3. Anstelle
eines TL071 empfiehlt sich z.B. von der LinCMOS-Familie der
TLC271,
weil seine LOW-Spannungswerte (Ein- und Ausgang) bis auf den GND-Pegel
hinunter gehen. Das selbe gilt allerdings nicht für den HIGH-Pegel am
Ausgang. Dieser liegt unbelastet etwa auf +Ub-1V. Diese Schaltung eignet
sich zum Tasten einer digitalen Logikschaltung, die mit 5 VDC betrieben
wird.
Teilbild 1.4 zeigt einen Sonderfall, wie bereits weiter oben angedeutet.
Es ist aber nichts anderes als der ganz typische Rechteckgenerator, wie
er mit einem Opamp oder Komparator realisiert wird. Der einzige
Unterschied besteht darin, man kann das Oszillieren der Rechteckspannung
mit dem Schalter S ein- und ausschalten. R3 braucht es nur, damit der
invertierende Eingang des Opamp überhaupt definiert ist bei offenem
Schalter S. Definiert ist er mit GND. Beim Ausschalten nimmt Ua zufällig
den Wert von fast +Ub oder fast -Ub an. Selbstverständlich kann man auch
diese Schaltung im Single-Supply-Modus mit nur +Ub realisieren. Man
nehme dazu Teilbild 1.3 als Vorlage...
Toggeln mit einem 555er-Timer-IC
Es wird hier, wie in allen meinen 555er-Elektronik-Minikursen, wie bereits in der Einleitung angedeutet, die CMOS-Version thematisiert. Es ist der LMC555 ursprünglich von National-Semiconductor (von Texas-Instruments übernommen) und der TLC555 von Texas-Instruments. Trotzdem kann man hier ebenso den bipolaren NE555 einsetzen, falls man halt gerade nichts anderes in seiner Bastelkiste findet. Getestet habe ich dies allerdings nicht! Der LMC555 oder TLC555 in seinem kleinen 8-Pin-Gehäuse übernimmt die Funktion des prellfreien Tasters und des Toggle-Flipflop. Mit dem LMC/TLC555 (beide Typen zusammengefasst) funktioniert es deshalb, weil dieses Timer-IC quasi eine Schmitt-Trigger-Funktion, gegeben durch einen Fensterkomparator mit zwei Triggerpegel und einem nachgeschalteten RS-Flipflop, ausübt. Wie der LMC/TLC555 als Schmitt-Trigger nützlich sein kann, liest man ausführlich hier in einem praktischen Einsatz:
- 230-VAC-Netzfrequenzsynchronisation mit
dem CMOS-555-Timer-IC als Schmitt-Trigger
Siehe Kapitel "Das Innenleben des LMC/TLC555" und "Die Philosophie des Schmitt-Triggerns....".
Mit Bild 4 kommen wir zurück zu der in der Einleitung angedeuteten
pfiffigen Schaltung,
erweitert mit einer Autoreset-Funktion (R3 und C1), die beim Einschalten
von +Ub in den ersten etwa 0.5 s den Reset /R2 des IC-internen
RS-Flipflop aktiviert und so den Ausgang Q (Pin 3) auf LOW setzt. Zur
schnellen Entladung von C1 bei einem kurzen Unterbruch von +Ub, dienen
R4 und D1. Das funktioniert allerdings nur dann, wenn der Rest der an
+Ub angeschlossenen Schaltung entsprechend niederohmig ist. Ist dies
nicht der Fall, kann man dies ganz einfach mit eines LED-Anzeige
realisieren, wie dies in Bild 2 oben links zu sehen ist. Rx1 muss man an
+Ub anpassen. Rx2 dient der vollständigen Entladung von C1.
Pin 2 und Pin 6 bilden gemeinsam der Eingang Ue und Q = Pin 3 ist der
Ausgang Ua. Da Ua nach dem Autoreset auf LOW (GND-Pegel) liegt, ist auch
C2 entladen auf dem GND-Pegel. Beim Drücken der Taste wird die halbe
Betriebsspannung +Ub/2 an Ue kurzzeitig ebenfalls auf LOW (GND) gezogen,
bis C2 annähernd +Ub/2 erreicht. C2 wird durch den Spannungsteiler R1/R2
geladen, solange DT gedrückt wird. Dadurch wird die Referenzspannung
Uref1 von 1/3*Ub am nichtinvertierenden Eingang von KB kurzzeitig
unterschritten und das RS-Flipflop wird am /S-Eingang gesetzt. Ua wird
HIGH (ohne externe Last = +Ub). Beim Loslassen der Taste DT geht Ue
wieder auf +Ub/2 und C2 wird über R5 mit einer Zeitkonstante von 0.22 s
bis maximal auf den Wert von +Ub geladen. Beim folgenden Tastendruck
steigt Ue kurzzeitig und somit der invertierende Eingang von KA auf den
Wert der Spannung an C2. Ist diese höher als 2/3*Ub (Uref2), erfolgt am
/R1-Eingang beim RS-FF ein Reset und Ua geht wieder zurück auf LOW
(GND). Jetzt wird C2 durch den Spannungsteiler R1/R2 entladen, solange
DT gedrückt wird. Beim nächsten Tastendruck beginnt das Ganze von Neuem.
Ergänzungen: Beim Tastendruck wird C2 nur bis zu knapp unterhalb oder
knapp oberhalb von +Ub/2 auf- bzw. entladen. Als Spannungsteiler wirkt
hier das Widerstandsverhältnis von R1||R2/R5 während die Taste gedrückt
ist, danach ist R1||R2. Es ist dabei nur wichtig, dass diese
Spannungsänderung an Ue kleiner ist als die Hysteresespannung Uref2
minus Uref1 und das ist 1/3*Ub. Die Prellfreiheit des Tastendrucks
entsteht dadurch, dass durch den Lade- und Entladevorgang von C2 durch
R5 soviel Zeit gegeben ist, dass während dem Prellvorgang die Spannung
an C2 die Werte Uref2 nicht über- und die von Uref1 nicht unterschreiten
kann. So können die Komparatoren KA und KB noch nicht reagieren und Ua
ändert sich noch nicht.
Relaissteuerung ganz kurz: Dieses Thema wird noch separat im
Kapitel "Die Relaisschaltung" unter die Lupe genommen. Hier in
Bild 2 geht es nur darum, wo am LMC/TLC555 die Schaltung aus Transistor
T und Relais REL angeschlossen werden soll. Es bietet sich sehr elegant
Pin 7 mit dem Opendrain-MOSFET an, der in der Lage ist 50 mA (LMC555)
oder sogar 100 mA (TLC555) zu treiben. Warum aber steht neben dieser
Relaisschaltung ein NEIN? Ganz einfach, mit dem AUTORESET startet diese
Schaltung mit eingeschaltetem Relais. Man benötigt deshalb auch an Pin 7
eine zusätzliche Inversionsschaltung mit einem Transistor, wie hier
gezeigt wird.
Erweiterungen in Bild 3: Die Erweiterung der Schaltung in Bild 3
dient dazu, dass eine Tastatursteuerung potenzialbezogen möglich ist.
Die Drucktaste DT1 bezieht sich auf +Ub und DT2 auf GND. Parallel zu DT2
ist noch eine weitere Transistorstufe angegeben, die sich eignet mit
einem externen Rechtecksignal zu steuern. Die maximale Taktfrequenz
liegt, verursacht durch die Zeitkonstante R5*C2, bei weniger als 3 Hz.
Der JFET T1 (BF245A, J111 [siehe Bild 3 unten links!]) ersetzt die
Drucktaste DT in Bild 2. Drain und Source dürfen vertauscht werden, so
wie dies beim Einsatz zum Schalten analoger Signale üblich ist und
hier zum Ausdruck kommt.
Wenn Ua = GND und T1 ist im sperrenden Zustand offen, dann gibt es
trotzdem einen kleinen Strom von Ue mit +Ub/2 durch T1 (Drain-Source)
über R5 zum GND-Pegel an Ua. Die Spannung zwischen Source und GND, bzw.
über R5 entspricht der Gate-Source-Knickspannung des JFET. Beim BF245A
sind es typisch 1.3 V. Beim BF245B sind es typisch 2.7 V. Diese
Spannungen stellen sich automatisch so ein, damit T1 gerade noch sicher
im Sperrbereich arbeitet, damit die Toggle-Funktion nicht gestört wird.
Damit die Schaltung auch sicher bei +Ub = 5VDC arbeitet, sollte man
einen BF245A (J111) einsetzen. Der Strom von Ue über T1 und R5 zu Ua,
wenn dieser auf GND ist, beträgt etwa 6 µA. Der Querstrom von +Ub (12
VDC) über R1 und R2 nach GND beträgt etwa 600 µA. Diese 6 µA reduziert
die Spannung an Ue von +Ub/2 etwa um 1%. Das ist weniger die
Widerstandstoleranz von R1 und R2, die problemlos 5 % haben dürfen. Die
Spannungshysterese an Ue beträgt im Vergleich dazu 1/3*Ub.
Wenn Ua = +Ub (HIGH-Pegel) und T1 ist im sperrenden Zustand offen, dann
wird C2 approximativ auf +Ub geladen. Diese Spannung liegt an der
Source. Ue liegt auf +Ub/2 und damit ebenso die Drain. Dadurch ist das
Gate gegenüber Source derart negativ vorgespannt, dass T1 vollständig
sperrt.
Die Relaisschaltung
Bild 4 thematisiert die Relaisschaltung zu Bild 2 und Bild 3. Die
CMOS-555er-Toggelschaltung ist die von Bild 2, jedoch hier vereinfacht.
Die Autoreset-Schaltung fehlt hier. Teilbild 4.1 zeigt einen
Relaistreiber mit einem NPN-Transistor. Dabei fliesst ein Basisstrom Ib,
wenn Ua=HIGH. Es ist zu beachten, dass ein LMC555 oder TLC555 bei einem
HIGH-Pegel nur ein Ausgangsstrom von maximal 10 mA erlaubt. Dies wäre
also der maximale Basisstrom Ib. Da eine Stromverstärkung von T im
Bereich der Sättigung und einem Kollektorstrom Ic im mittleren
10mA-Bereich nur etwa 20 bis maximal 30 zulässt, sind in der Auswahl der
Relaisspulendaten Grenzen gesetzt.
Moderne DIL-Leistungsrelais (DIL = Dual-in-Line) sind in der Lage 6 A
bei 230 VAC zu schalten, bei einer Spulenleistung von nur 200 mW. Man
findet solche Relais z.B. bei der Firma Distrelec. Bei einer
Spulenspannung von 5 VDC (+Ubx = 5VDC), gibt das ein Spulen- bzw.
Kollektorstrom Ic von 40 mA. Wählt man eine Stromverstärkung von 20,
ergibt dies ein Basisstrom Ib von 2 mA. Entsprechend dimensioniert man
den Widerstand Rb (siehe Formel). Unbelastet entspricht der HIGH-Pegel
dem Wert +Ub. Wenn jedoch ein Strom Ib von 2 mA fliesst, ist das nicht
mehr der Fall. Gemäss Datenblatt reduziert sich
UHIGH (Ua). Bei +Ub = 5 VDC und Ib = 2 mA reduziert
sich UHIGH bis auf 4.4 V.
Ginge es nur um die Relaissteuerung, ist das weiter nicht dramatisch.
Allerdings beeinflusst diese Spannungsreduktion die Toggle-Funktion,
weil R5 und C2 ebenfalls an Ua angeschlossen ist. Daher eignet dafür
besser die MOSFET-Schaltung in Teilbild 4.2. Ua bleibt praktisch
unverändert. Rg beim BS170 hat eine völlig andere Bedeutung als Rb beim
BC546. Rb definiert den Basisstrom Ib. Rg (Gate-Vorwiderstand)
verhindert eigenständiges Oszillieren des MOSFET beim Schaltvorgang. Für
höherfrequente Anwendungen darf Rg durchaus auch niederohmiger sein, wie
dies
hier
in Bild 4 im Kapitel "Die PWM-Schaltung für den Tischventilator"
zum Ausdruck kommt. (Auch eine LMC/TLC555-Anwendung!)
Oder an Stelle des einfachen bipolaren Transistors in Teilbild 4.1 kann
man auch einen Darlington einsetzen. Allerdings erhöht dies die
Sättigungsspannung auf mindestens 0.8 V. Ob das zulässig ist, ist von
der +Ubx-Wahl abhängig. Beträgt diese ebenfalls +5 VDC, würde die
Spannung an der Relaisspule gerade noch knapp etwas mehr als 4 VDC
betragen. Bei Ubx = +12 VDC ist dies gerade noch möglich, weil die
Anzugsspannung des Relaisankers an Stelle von beinahe 20 % nur um etwa 8
% reduziert wird.
Anders sieht die Situation aus, wenn der LMC/TLC555 mit +Ub = 12 VDC
betrieben wird. Da wirkt sich ein Basisstrom Ib von 2 mA nicht
nennenswert aus, weil bei der höheren Betriebsspannung die
CMOS-Ausgangsstufe des LMC/TLC555 niederohmiger ist. Man sollte für
jeden Anwendungsfall das Datenblatt des LMC555 oder TLC555 konsultieren.
Wenn +Ubx ebenfalls 12 VDC beträgt, kann man auch ein Relais für 12 VDC
einsetzen, das mit einem Strom von 17 mA bei 200 mW auskommt. Bei diesem
Kollektorstrom Ic kann man gut eine Sättigungs-Verstärkung 30 wählen und
so genügt einen Basisstrom Ib von nur 0.6 mA. Das geht völlig
problemlos. Ebenso mit einer Verstärkung von 20 und einem Basisstrom von
0.85 mA.
Datenblätter, Application-Notes und Grundlagen
- LMC555-Datenblatt
- TLC555-Datenblatt
- 230-VAC-Netzfrequenzsynchronisation mit dem CMOS-555-Timer-IC als Schmitt-Trigger
- Der analoge Schalter I (der JFET)
- Der 555-CMOS-Timer als Impulsbreitenmodulator zur Steuerung eines kleinen DC-Ventilators (Bild 4)
- Eine pfiffige Schaltung aus dem ELKO-Forum Basis dieses Elektronik-Minikurses