Das Micro:bit Oszilloskop     

           
Elektronik-Labor   Projekte   Microbit 



https://youtu.be/Ku2bW6Y8ZJQ

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.

 
Restwelligkeit bei  2 kHz, 0,1 µF und 10 kΩ 


Ein variabler Rechteckgenerator von Jürgen Heisig



Download: microbit-RechteckGen100to20000Step100.hex

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).



Elektronik-Labor   Projekte   Microbit