Datenrekorder
und Oszilloskop im TestLab
Elektronik-Labor
Projekte
Mikrocontroller PicoBasic
Das Programm Record.pbas nimmt 256 AD-Samples in 20 ms auf und gibt sie dann rund 100-fach langsamer über den PWM-Ausgang
wieder aus. Gleichzeitig werden die Daten auch über Print-Zeilen an den PC
gesandt.
Der Datenrekorder ist so etwas wie ein Oszilloskop-Ersatz unter beengten
Verhältnissen. Man sieht an der Ausgangs-LED und ihrem Helligkeitsverlauf der
Verlauf der aufgenommenen Schwingung so langsam, dass man mühelos die
Kurvenform und unterschiedliche Frequenzen erkennt.
REM
Record
0x09FE Pdir = 254
0x0A01 Pullup = 1
0x117F PWM2 = 127
0x0200 B = 0
0x03FF C = 255
REM Aufnahme
L1:
0x3C00 A = AD0
0x3B00 [B+] = A
0x1834 Delay µs = 52
0x2505 C*Goto L1:
REM Abspielen
0x03FF C = 255
L2:
0x3A00 A = [B+]
0x4300 PWM1 = A
0x4200 Print A
0x190A Delay ms = 10
0x250A C*Goto L2:
0x03FF C = 255
0x4000 A = Pin0
0x0200 B = 0
0x2205 If A=B Goto L 1:
0x200A Goto L2:
Zusätzlich
wird ein PWM2-Signal mit 50%-Pulsen und genau 1 kHz erzeugt. Es kann verwendet
werden, um die Aufnahme genau auf eine Länge von 20 ms einzustellen. Weil die
Daten auch seriell ausgegeben werden, kann man sie mit dem TestLab-Plotter
genauer ansehen. Hier wurde der
Zweikanal-Plotter verwendet, um eine breitere Linie zu erhalten und zwei ganze
Schwingungen aufzuzeichnen. Aufgenommen wurden zwei volle 50-Hz-Schwingungen
mit ihren typischen Verzerrungen bei kapazitiver Einstreuung.
Was ich im Buch zu erwähnen vergaß: Man kann hier einen Tastschalter
von P0 nach GND anschließen, mit dem neue Messungen ausgelöst werden.
Wer sich das Programm genau ansieht, erkennt den Pullup an P0 und die
Abfrage im der Ausgabeschleife, die zum Anfang führt, wenn P0 als low
gelesen wird.
Einkanal-Oszilloskop
Das Programm Scope1.pbas besitzt eine schnelle
Messschleife, in der die gemessenen Daten im Datenarray gespeichert werden. So
wird die höchste mögliche Abtastfrequenz erreicht. Danach folgt die
Print-Ausgabe der Daten in einer zweiten Schleife.
Hier werden passend zum TestLab-Plotter jeweils genau
250 Daten erfasst und gesendet, wozu die C-Schleife mit C=249 gestartet werden
muss. Danach folgt eine Pause von einer Sekunde, die es vereinfacht, eine neue
Messung aufzuzeichnen und dabei genau den Anfang zu synchronisieren.
REM
Scope1
L1:
0x03F9 C = 249
0x0200 B = 0
L2:
0x3C00 A = AD0
0x3B00 [B+] = A
0x2502 C*Goto L2:
0x03F9 C = 249
0x0200 B = 0
L3:
0x3A00 A = [B+]
0x4200 Print A
0x2507 C*Goto L3:
0x1A01 Delay s = 1
0x2000 Goto L1:
Zum Test der Bandbreite wurde das PWM-Signal gemessen. Im TestLab wurde
dazu die PWM-Frequenz 2 kHz eingestellt und PWM2 etwa auf die halbe
Impulsbreite eingestellt. Das Signal kann problemlos aufgenommen werden. Die
Zeitachse hat etwa 0,5 ms pro Skalenteil
Die Aufnahmeschleife benötigt nur drei Zeilen mit jeweils ca. 5 µs. Daraus
ergibt sich eine Abtastrate von 67 kHz und eine Bandbreite von ca. 20 kHz. Das
ist wesentlich mehr, als mit den Ein- oder Mehrkanal-Oszilloskopen auf der
Basis der direkten Abfragen erreicht wird. Der Zeitvorteil wird hauptsächlich
durch die Trennung von Aufnahme und Übertragung erreicht. Hier sieht man den
Vorteil der Zusammenarbeit von PicoBasic und TestLab.
Elektronik-Labor
Projekte
Mikrocontroller
PicoBasic