Debuggen mit der RS232 Schnittstelle

Erstellt am 25.03.2002 23:38:01Klicks [4755]

Verwandte Themen und Zusätze: Download zu Debuggen mit der RS232 Schnittstelle |
Bei der Entwicklung von Projekten ist es immer wieder notwendig einzelne Variablen während Laufzeit zu überprüfen. Dieser Artikel zeigt wie mittels eines Modules über die RS232 Schnittstelle Text übertragen werden kann, um so Debuginformationen sichtbar zu machen.

Um die RS232 Schnittstelle des heimischen PC's mit einem Atmel Prozessor zu verbinden sind nicht viele Dinge notwendig. Zum einen braucht man 4x 1 µF Electrolyt Kondensator ( Die mit der Polung ), zum anderen benötigt man einen MAXIM 232 Baustein. Statt des MAX 232 kann auch ein baugleicher Stein verwendet werden. Die Daten, die aus dem Prozessor übertragen werden, können mit Hilfe von Hyperterminal oder einem anderen Terminalprogramm angezeigt werden.

Wie man in der Schematik sehen kann, ist wirklich kein großer Schaltungsaufwand notwendig. Über die Kontakte an "SV1" besorgen wir uns die Versorgungsspannung aus der Prozessorschaltung. Desweiteren bieten die meisten Atmel Prozessoren eine eingebaute RS232 Schnittstelle, deren Pins RX / TX wir mit den PINS 3 und 4 an "SV1" der Schaltung verbinden. Die Ausgänge des MAX 232 werden direkt an den 9 POL Stecker der Platine geführt. Im Stecker selbst wird zusätzlich eine ordentliche RTS/CTS Verdrahtung vorgenommen. RTS / CTS unterstützt zwar der CodeVision Compiler noch nicht, aber man weiß ja nie. Nun kann man mit einem herkömmlichen Seriellkabel die Schaltung mit dem PC verbinden.

Auch das Boardlayout fällt sehr unspektakulär aus. Viel ist nicht dazu zu sagen ;-). Die Platine wird nun mit einem 1-1 Kabel an den PC verbunden, die Kontakte von SV1 mit dem Prozessor, der die Ausgaben machen soll. Mehr ist nicht notwendig. Durch diese Modulare Bauweise, kann die Schnittstelle "mal schnell" an eine Schaltung angeschlossen werden, um Debugausgaben zu ermöglichen. Wird sie nicht mehr benötigt trennen wir das Modul wieder ab. Das Spart kosten und Zeit.

Das einfachste ist nun die Implementierung, die wir wie immer mit CodeVision vornehmen :.

// UART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// UART Receiver: On
// UART Transmitter: On
UCR=0x18;
// UART Baud rate: 19200
UBRR=0x0C;


Dies bischen Code initialisiert die Schnittstelle mit 19200 Baud 8-N-1. Nun kann man mit Hilfe der Befehle

- printf(" Hallo "); - putchar('h');

ganze Zeilen oder einzelne Zeichen ausgeben. Das Beispiel im Downloadbereich ist für ein Atmel 8515 vorgesehen, läßt sich aber auch auf einem 2313 aus den vorigen Beispielen ausprobieren. Lediglich das Include am Anfang des SourceCodes muß ausgetauscht werden. Wer sich mit PIC Prozessoren auskennt, kann dieses Modul ebenso einfach an diese anschließen.

Das Beispielprogramm gibt an Port B einen 8 Bit Wert aus, der ständig hochgezählt wird. Dieser Wert, der mit LED's am PortB sichtbar gemacht werden könnte, wird gleichzeitig über die Serielle Schnittstelle ebenfalls ausgegeben und kann mit dem Hyperterminal angesehen werden. Fertig ist der Debugger. Man kann nun ganz genau sehen wie sich die Variable im Programmverlauf verhält.

Ich wünsche nun viel Spass beim ausprobieren ...


Begleitende Layoutangaben