Datenrekorder und Oszilloskop im TestLab     

Elektronik-Labor  Projekte  Mikrocontroller  PicoBasic         



Aus RPi Pico Test-Labor und PicoBasic, Kap. 7

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