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:


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