COM-Schnittstellen und Triggeroszilloskop 

Elektronik-Labor  Mikrocontroller  PicoBasic  TestLab       



Mit dem TestLab sollten serielle Signale einer RS232-Schnittstele untersucht werden. Weil hier Signalpegel von -10 V und +10 V verwendet werden, musste zwischen dem Ausgang TXD und den analogen Eingang A0 ein Schutzwiderstad von 10 k eingefügt werden. Zum Senden der Signale wurde mein Teminal.exe eingesetzt. Die glücklicherweise an meinem PC noch vorhandene RS232 belegt COM1. Es wurde die kleinste mögliche Übertragungsgeschwindigkeit von 50 Baud eingestellt. Die Parameter sind COM1:50,N,8,1, also kein Paritätsbit, acht Datenbits und ein Stoppbit.



TXD und RXD wurden verbunden, sodass alle gesendeten Zeichen auch wieder empfangen werden. Gesendet wurde ein großes U. Im Byte-Empfangsfenster sieht man, dass das U als ASCII-Zeichen 85 übertragen wird.



Im TestLab-Oszilloskop konnte die Übertragung aufgezeichnet werden. Man sieht fünf Impulse mit jeweils 20 ms. Der erste ist das Stoppbit. Es folgen die acht Datenbits 01010101 = 85 = U. Die Bits werden hier invertiert übertragen, und das Bit 0 kommt zuerst. Die Aufnahme ist nicht ganz einfach, weil man das Zeichen genau im richtigen Augenblick absenden muss. Zur Vereinfachung wurde ein kleines Trigger-Oszilloskop programmiert.

              Rem Trigger+
0x0280  B = 128
              L1:
0x3C00  A = AD0
0x2401  If A<B Goto L1:
0x0200  B = 0
0x03FF  C = 255
              L2:
0x3C00  A = AD0
0x3B00  [B+] = A
0x1901  Delay ms = 1
0x2505  C*Goto L2:
              L3:
0x0200  B = 0
0x03F9  C = 249
              L4:
0x3A00  A = [B+]
0x4200  Print A
0x1901  Delay ms = 1
0x250B  C*Goto L4:
              L5:
0x1A01  Delay s = 1
0x0280  B = 128
0x3C00  A = AD0
0x230F  If A>B Goto L5:
0x2001  Goto L1:




Zum Test wurde der Eingang berührt und damit ein 50-Hz-Signal eingekoppelt. Man sieht deutlich, dass die Messung bei einer positiven Flanke knapp über der Mitte der y-Achse beginnt. Das seriell gesendete U sieht nun so aus, und man erkennt, dass jedes Bit bei 50 Baud genau die Zeit braucht wie eine volle 50-Hz-Schwingung.



So sieht ein Byte 0 aus, die Bits werden offensichtlich invertiert:



Ein Byte 255 sendet entsprechend nur noch das Startbit:



Nun kann man bequem alle Daten und Parameter der seriellen Übertragung austesten. Bis 300 Baud lassen sich die Zeichen noch gut abbilden.

Die echte RS232 wird nicht mehr oft verwendet. Stattdessen kommen meist USB/Seriell-Wandler zum Einsatz, die direkt an einen Mikrocontroller angeschlossen werden. In diesem Fall werden die Bits nicht invertiert. Der Ruhezustand ist dann high und liegt bei + 5 V oder +3,3 V. Für die Darstellung wird  deshalb eine Triggerung auf die negative Flanke gebraucht.

              Rem Trigger-
0x0280  B = 128
              L1:
0x3C00  A = AD0
0x2301  If A>B Goto L1:
0x0200  B = 0
0x03FF  C = 255
              L2:
0x3C00  A = AD0
0x3B00  [B+] = A
0x1901  Delay ms = 1
0x2505  C*Goto L2:
              L3:
0x0200  B = 0
0x03F9  C = 249
              L4:
0x3A00  A = [B+]
0x4200  Print A
0x1901  Delay ms = 1
0x250B  C*Goto L4:
              L5:
0x1A01  Delay s = 1
0x0280  B = 128
0x3C00  A = AD0
0x240F  If A<B Goto L5:
0x2001  Goto L1:

Hier sieht man ein mit einem FT232 bei 300 Baud empfangenes kleines u. Der Ruhepegel liegt nahe 5 V, und das Startbit ist ein Nullpegel. Der verwendete USB-Chip kommt nicht herunter bis 50 Baud. Die Grenze kann von Chip zu Chip unterschiedlich sein.




Siehe auch: Die RS232-Schnittstelle


Elektronik-Labor  Mikrocontroller  PicoBasic  TestLab