Kap. 7 des Buchs Micro:bit Praktikum (Um
die Fotos des laufenden Oszilloskops für das Buch aufzunehmen
wurde ein Video gedreht, das dann auch gleich auf Youtube gestellt
wurde.)
Das Oszilloskop ist eines der wichtigsten
Messegräte im Elektronik-Labor. Es zeigt den zeitlichen Verlauf einer
Spannung auf einem Bildschirm. Man sieht nicht nur, ob eine Spannung
groß oder klein ist, sondern auch, ob, wie und wie schnell sie sich
ändert. Ein ganz einfaches Oszilloskop ist besser als keins. Und sogar
mit einem nur 5 x 5 LED großen Bildschirm lassen sich Messungen
sinnvoll darstellen.
Oscilloscope.jsz
Das
einfache Oszilloskop führt jeweils fünf Messungen aus und plottet die
Ergebnisse von links nach rechts auf dem Schirm. Da der AD-Wandler
Messwerte bis 1023 liefert , reduziert die Division durch 205 die
Ergebnisse auf den Bereich 0 bis 4. Zusätzlich muss man die Messwerte
umdrehen, weil die Null am Schirm oben liegt. Die einzelnen Messungen
werden in Echtzeit geplottet, also nicht erst zwischengespeichert.
Oscilloscope-converted.jsz
Wenn
man den Eingang 0 mit einem Kabel verbindet und anfasst, wird ein
Störsignal mit der Netzfrequenz gemessen. Die Ursache dafür sind
Netzkabel in der Nähe, deren Spannung kapazitiv auf den eigenen Körper
koppeln. Ohne es zu bemerken kann man eine Wechselspannung von 10 V
oder mehr tragen. Beim Berühren des Eingangs wird diese Spannung etwas
kleiner, weil der Anschluss einen endlichen Innenwiderstand von ca. 10
MΩ hat. Es reicht aber meist immer noch für eine Vollaussteuerung des
Bildschirms.
Meist
sieht man nur einen Teil einer vollständigen Schwingung. Weil immer
wieder andere Bereiche dargestellt werden, bekommt man aber einen guten
Eindruck vom Verlauf.
Dass hier nur eine Schwingung
dargestellt wird, ist übrigens eine Illusion. Eine vollständige
Schwingung eines 50-Hz-Signals dauert 20 ms. Die Messung ist aber
wesentlich langsamer, weil das Programm eine Wartezeit von 100 ms
zwischen den Messungen einfügt. Deshalb werden tatsächlich Punkte aus
den später folgenden Schwingungen aufgezeichnet. Solange ein
periodisches Signal anliegt, bekommt man trotzdem ein vollständiges
Bild. Diese Art der Unterabtastung ist typisch für jedes digitale
Oszilloskop und kann zur Fehlinterpretation von Messergebnissen führen.
Man muss also immer im Auge behalten, wie schnell die Messung
tatsächlich ist.
Eine
Vergleichsmessung mit einem schnellen Oszilloskop zeigt die
Abtastpunkte als keine Spannnungseinbrüche im Signal. An diesen Punkten
übernimmt der AD-Wandler im Micro:bit jeweils eine Probe, indem sein
Sample-and-Hold-Kondensator geladen wird. Mit im Bild sind Störsignale,
die über das offen auf dem Tisch liegende Messkabel einstreuen. Man
erkannt 50-Hz-Signale und sieht die fortschreitenden Abtastpunkte
relativ zum Messsignal. In diesen Fall dauert es etwa 102 ms bis
der nächste Messpunkt erfasst wird. Damit wird jede fünfte
50-Hz-Schingung abgetastet. Mit einer Abtastperiode von genau 100
ms würde man immer dieselbe Phase des Signals erfassen. Die Differenz
von 2 ms bewirkt, dass man insgesamt 10 Messungen braucht um das Signal
vollständig zu erfassen. Die Bildschirmbreite von fünf Punkten reicht
also etwa für eine halbe Schwingung, was man im Bild auch gut erkennen
kann. Aus der Messung des Störsignals beim Berühren eines offenen
Eingangs kann man übrigens wertvolle Schlüsse ziehen, die in andern
Anwendungen nützlich werden können. Speziell geht es darum, wie man ein
Programm schreiben müsste, das auf eine einfache Berührung eines
Eingangs reagiert. Ein solches Programm wurde ja schon in Kap. 3
vorgestellt. Dort sollte eine definierte Spannung am Eingang
unterschritten werden, um eine Berührung zu erkennen. Durch die
Messungen mit dem Oszilloskop ist nun klar, was da passiert. Das
Programm muss einfach nur warten, bis eine negative Halbwelle eines
50-Hz-Signals erscheint und eine ausreichend tiefe Spannung liefert.
Das funktioniert übrigens nur dann zuverlässig, wenn die Platine über
den USB-Anschluss ein Bezugspotential hat. Wenn das System mit
Batterieversorgung potentialfrei betreiben wird, sind die
Störspannungen wesentlich geringer.
Natürlich
können auch Gleichspannung dargestellt werden. Wie erwartet erhält man
horizontale Linien und kann so die Betriebsspannung von 3,3 V oder die
Spannung 0 V am GND-Pin messen.
Das
Oszilloskop-Programm erzeugt zusätzlich noch eine PWM-Ausgabe mit einem
Tastverhältnis von 50% am Anschluss P1. Damit hat man ein
Rechteck-Testsignal, das ebenfalls deutlich dargestellt werden kann.
Die Standardfrequenz für ein PWM-Signal beträgt genau 50 Hz.
Messung am PWM-Ausgang
PWM
bedeutet Pulsweiten-Modulation und besteht aus einem Rechtecksignal mit
kurzen Einschaltimpulsen einstellbarer Länge. Eine angeschlossene LED
zeigt dann einen mittlere Helligkeit, die vom Einschalt-Verhältnis
abhängt. Bei einer Frequenz ab etwa 50 Hz ist kein Flackern mehr
erkennbar. Man kann aber die LED schnell bewegen und erkennt dann die
einzelnen Impulse. Das einfache Oszilloskop zeigt sehr deutlich die
Rechtecksignale am PWM-Ausgang.
Erhöhung der Abtastrate
Versuche
mit dem ersten Oszilloskop haben gezeigt, dass fast allein der
Pause-Befehl innerhalb der Messschleife das Zeitverhalten bestimmt.
Dadurch kommen zusätzlich gewisse Streuungen in den Ablauf, was die
zeitliche Genauigkeit beeinflusst. Man kann die Wartezeit bis auf eine
Millisekunde verringern. Das Scope wird dann tatsächlich schneller,
aber die Messung ist nicht mehr ausreichend gleichförmig.
Ganz
anders sieht es aus, wenn man den Pause-Befehl komplett aus der
Schleife entfernt. Die gesamte Messung mit ihren fünf Messpunkten
dauert dann nur noch etwa 0,4 ms. Damit kann man auch Signale im
Kilohertzbereich untersuchen.
Das veränderte Programm verwendet nun den Eingang 1 und besitzt eine Signalquelle mit 2 kHz am Ausgang 0.
Oscilloscope2.jsz
Alle
Tonausgaben verwenden den Ausgang 0. Deshalb musste der Analogeingang
verlegt werden. Auch der PWM-Ausgang liegt nun am Ausgang 0. Eher
zufällig wurde entdeckt, dass der PWM-Ausgang die Frequenz des zuvor
mit play tone erzeugten Tons übernimmt. Das deutet darauf hin, dass ein
Timer des Controllers verwendet wird. Der Befehl set analog period ist
eigentlich dafür zuständig, die PWM-Ausgabe zu beeinflussen. Allerdings
war er zum gegenwärtigen Stand nicht in der Lage, die PWM-Periode von
20 ms zu verändern. Ersatzweise tut dies aber der Befehl play tone, und
zwar praktischerweise mit der Übergabe einer Frequenz. Der erzeugte Ton
dauert nur solange an, wie man im Befehl angibt. In dieser Zeit
blockiert der Programmablauf, sodass der erzeugte Ton nicht selbst mit
dem Oszilloskop gemessen werden kann. Das PWM-Signal bleibt dagegen
beliebig lange stehen und kann damit untersucht werden.
Achtung,
vermutlich beruht die Beeinflussung der PWM-Frequenz durch die
Tonausgabe auf einem Programmierfehler im System, der jederzeit
repariert werden könnte. Das gleiche Programm, etwas später übersetzt,
könnte sich ganz anders verhalten. Um den gerade aktuellen Stand
festzuhalten, werden daher alle Programm auch als fertig kompilierte
Hex-Files gespeichert und können auf der Webseite des Autors geladen
werden.
Oscilloscope2-converted-2.jsz
Bei
der Untersuchung des 2-kHz-Rechtecksignals erkennt man abgeschrägte
Flanken, obwohl ein schnelleres Oszilloskop steile Flanken abbildet.
Jedes Oszilloskop besitzt eine obere Grenzfrequenz. Schnelle Signale an
der oberen Grenze werden grundsätzlich etwas abgerundet oder
abgeflacht. Dies ist ein weiterer Punkt, den man bei jedem Oszilloskop
beachten muss, um nicht auf Fehlinterpretationen von Messergebnissen
hereinzufallen.
Während
allerdings ein modernes Oszilloskop einen Bandbreite bis 20 MHz oder
mehr besitzt, liegt sie beim AD-Wandler des Mircro:bit eher bei 10 kHz.
Aber immerhin, damit kann man bereits typische NF-Signale zum Beispiel
am Lautsprecher einer Musikanlage messen.
Aber
Achtung, beim Anschluss an externe Signalquellen muss man für einen
Überlastungsschutz sorgen, weil eine zu große Messspannung den Eingang
beschädigen könnte. Im Prinzip reicht dazu ein Schutzwiderstand mit 10
kΩ und ein Koppelkondensator von 100 nF oder mehr, wenn man auch
Signale tiefer Frequenzen untersuchen will. Der Kondensator ist
wichtig, um das Signal in den richtigen Gleichspannungsbereich zwischen
0 V und 3,3 V zu verschieben. Das passiert automatisch, weil im
Mikrocontroller Schutzdioden an jedem Eingang enthalten sind, die
Spannungen unter 0 V oder über 3,3 V abschneiden. Wenn eine
Wechselspannung mit Scheitelwerten von – 1 V und + 1 V gemessen wird,
verschiebt sich das Signal entsprechend noch oben. Das folgende
Bild zeigt ein Oszillogramm eines Musiksignals am Kopfhörerausgang
eines Radios.
Ein Musik-Signal
Glättung eines PWM-Signals
Ein
wichtiges Gerät im Elektronik-Labor ist eine einstellbare
Spanungsquelle bzw. ein einstellbares Netzteil. Manche Geräte liefern
Spannungen von null bis 30 V und Ströme bis 5 A. Oft braucht man aber
sehr viel weniger. Und eine kleine Spannungsquelle von null bis 3,3 V
lässt sich auch mit dem Micro:bit aufbauen. Dazu wird ein PWM-Signal
mit einem Tiefpassfilter aus einem Widerstand und einem Kondensator
geglättet.
Mit
einem Tiefpassfilter mit 10 kΩ und 100 nF zeigt das
Micro:bit-Oszilloskop bereits ein perfekt geglättetes Signal mit einer
geraden Linie in der Mitte des Schirms. Mit höherer Auflösung misst man
dagegen immer noch eine Restwelligkeit mit 0,2 Vss. Verkleinert man den
Widerstand auf 1 kΩ, wird die Welligkeit deutlich größer und ist auch
mit dem einfachen Oszilloskop zu erkennen.
Restwelligkeit bei 2 kHz, 0,1 µF und 1 kΩ
Man
kann hier auch mit unterschiedlichen Frequenzen experimentieren, indem
man die play-tone-Frequenz variiert. Mit nur 50 Hz ist das Signal
schwer zu glätten. Man muss dann schon einen sehr großen Kondensator
wie zum Beispiel 100 µF einsetzen. Um die Wirkung eines Filters
abzuschätzen kann man seine Grenzfrequenz berechnen:
f0 = 1 / (2 * Pi * R * C)
für
10 kΩ und 100 nF ergibt sich eine Grenzfrequenz von 159.2 Hz. Für
einen Elko von 100 µF und einen Widerstand von 1 kΩ kommt man
dagegen schon auf 1,6 Hz, was mehr als 1000-fach unter der
PWM-Frequenz 2 kHz liegt. Damit ist auch die Restwelligkeit mehr
als 1000-fach geringer als die Amplitude des ungefilterten PWM-Signals.
Das reicht dann sogar für anspruchsvolle Messaufgaben.
Den Hinweis zum Einstellen der PWM-Frequenz mit Hilfe einer
Tonausgabe fand ich sehr interessant. Der Bug (wenn es denn einer ist)
ist noch vorhanden. Nach jeder Frequenzänderung muss man den Duty-Cycle
wieder einstellen, oder es funktioniert nicht. Damit lässt sich sehr
komfortabel ein variabler Rechteckgenerator programmieren. Die
Tonausgabe für eine Millisekunde erreichte ich nur über einen Trick:
Umschalten auf JS / ändern / zurück auf Blöcke. Der Generator startet
mit 1 kHz, A - und B - Taste verändern die Frequenz (-/+) um jeweils
100 Hz. Fu = 100 Hz / Fo = 20 kHz. Die Zweckentfremdung
eines Befehls für andere Aufgaben scheint beim Microbit nicht
ungewöhnlich, beim SPI-Interface ist es ja ähnlich.
Auf diese Weise kann man mit dem Microbit max. 250 kHz erreichen.
Darüber stimmen Frequenzangabe und Träger nicht mehr überein. Werte
zwischen 251 khz und 300 kHz erzeugen einen Träger bei 333 kHz, bei
noch höheren Frequenzangaben ist der Träger dann bei 500 kHz. Bei
>500 kHz Frequenzangabe kommt nichts mehr... Eine mögliche
Anwendung: wenn man 100 kHz einstellt, erhält man Eichmarken in 100
kHz-Schritten im gesamten Lang- Mittel- und Kurzwellenbereich
(vermutlich noch darüber hinaus, bei 30 MHz immer noch S6).