Das Magazin für Funk Elektronik · Computer - FTP Directory Listing
Das Magazin für Funk Elektronik · Computer - FTP Directory Listing
Das Magazin für Funk Elektronik · Computer - FTP Directory Listing
- Keine Tags gefunden...
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Praktische <strong>Elektronik</strong><br />
Der PIC16C5x<br />
als Ersatz von UART-Schaltkreisen<br />
Dr.-Ing. KLAUS SANDER; FRED ZIEBELL<br />
Der AY-3-1015 hatte sich jahrelang als Schaltkreis zur seriellen Datenübertragung<br />
behauptet. Sein gewaltiger Vorteil war, daß Daten von<br />
beliebigen Quellen seriell übertragen werden können, ohne daß ein zusätzlicher<br />
Mikrocontroller erforderlich war. Da dieser Schaltkreis nicht<br />
mehr produziert wird, wurde mit dem PIC-Controller eine preiswerte<br />
Alternative gefunden, die hier vorgestellt werden soll.<br />
Der AY-3-1015 und seine Nachfolger<br />
waren bereits mehrfach Gegenstand von<br />
Beiträgen im FUNKAMATEUR. Sicherlich<br />
gab es <strong>für</strong> diese Schaltkreise keine<br />
Alternative, wenn es darum ging, parallel<br />
beim Sender vorliegende Daten mit minimalem<br />
Hardwareaufwand seriell zum Empfänger<br />
zu übertragen und dort parallel zur<br />
weiteren Verarbeitung bereitzustellen. Der<br />
größte Vorteil dieser Schaltkreise war es,<br />
daß kein zusätzlicher Mikrocontroller<br />
nötig war. Nun hat sich die Situation etwas<br />
geändert. Diese einfachen UARTs werden<br />
nicht mehr produziert. Sicherlich ist es<br />
richtig, daß die Weiterentwicklung der<br />
Technik komplexere <strong>Funk</strong>tionen am Ort<br />
der Datenbereitstellung erfordert.<br />
Manchmal kann es aber trotzdem sinnvoll<br />
sein, wenn die Datenübertragung mit absolut<br />
minimalem Aufwand erfolgt. Um die<br />
Information von acht Tastern zu übertragen,<br />
kann man entweder acht Leitungen<br />
benutzen oder auf jeder Seite nur einer<br />
Leitung einen UART verwenden.<br />
■ UART-IC per PIC realisiert<br />
Was nun? Auch kein Problem. Die preiswertesten<br />
Mikrocontroller sind die der PIC-<br />
Serie von Microchip. Ihr Vorteil ist es, daß<br />
1188 • FA 11/95<br />
sie keine externen Speicher <strong>für</strong> das Programm<br />
benötigen. Bei den OTP-Versionen<br />
wird das Programm einfach in den PIC<br />
„gebrannt“, und man hat ein neues Bauelement,<br />
welches den Anwender kaum noch<br />
etwas von einem Mikrocontroller spüren<br />
läßt. Sie sollten sich daraufhin einmal<br />
manche andere Schaltung angucken, vielleicht<br />
erkennen Sie an der externen Beschaltung<br />
der Pins einen PIC wieder. Maus-<br />
Controller und einige Lade-ICs <strong>für</strong> NiCd-<br />
Akkus waren vor ihrer Programmierung<br />
auch „nur“ PIC’s. Erst mit der Software<br />
und einem anderen Namen sind sie zu<br />
einem Spezial-IC geworden.<br />
Nach diesen Gedanken ist es sicher kein<br />
Problem mehr, einen UART-IC selbst „herzustellen“.<br />
Entscheidend ist die Software.<br />
Die Lösung finden wir im Programm-<br />
<strong>Listing</strong>.<br />
Bei der Konzeption stand im Vordergrund,<br />
daß die Übertragung in der Regel unidirektional<br />
erfolgt. Eine Rückleitung ist<br />
selten notwendig. Mit dieser Einschränkung<br />
kann man mit den preiswertesten<br />
PIC-Controllern, den 16C54, auskommen.<br />
Diese haben ein Port B mit 8 Bit und ein<br />
Port A mit 4 Bit. Beide Ports lassen sich<br />
als Ein- oder Ausgänge nutzen.<br />
Bild 1: Beispiel <strong>für</strong> die Verwendung des PIC 16C54 als asynchroner serieller Senderschaltkreis<br />
Die Festlegung erfolgt durch die zugehörigen<br />
Tristate-Register. Port B können<br />
wir somit als Ein- oder Ausgänge <strong>für</strong> die<br />
parallelen Daten verwenden. Von Port A<br />
nutzen wir eine Leitung als seriellen Einoder<br />
Ausgang. Und da es gleichzeitig in<br />
beiden Richtungen nicht funktioniert, verwenden<br />
wir von Port A eine Leitung zur<br />
Richtungsumschaltung. Diese Leitung legt<br />
also fest, ob der Schaltkreis ein serieller<br />
Sender oder Empfänger sein soll.<br />
Zusätzlich benötigen wir noch Handshake-<br />
Leitungen, mit denen wir mitteilen, daß die<br />
anliegenden Daten gültig sind oder der<br />
Schaltkreis gerade mit der seriellen Übertragung<br />
beschäftigt ist. Damit haben wir<br />
nun alle zwölf Ein- und Ausgänge belegt.<br />
Was gegenüber dem AY-3-1015 oder seinen<br />
Nachfolgern fehlt, ist eine Möglichkeit<br />
zur Änderung der Übertragungsgeschwindigkeit.<br />
Aber auch das dürfte durch Programmierung<br />
anderer Werte kein Problem<br />
sein.<br />
Die prinzipielle Schaltung der PICs zeigen<br />
die Bilder 1 und 2. Beide Schaltungen sind<br />
nahezu identisch. Der Unterschied liegt in<br />
der geänderten Beschaltung von RA1,<br />
welches die Richtung festlegt, und dem<br />
seriellen Anschluß RA0. Dieser führt einmal<br />
auf den Eingang des RS-232-Treibers/Empfängers<br />
und im anderen Fall auf<br />
den Ausgang.<br />
■ Serielle Sender und Empfänger<br />
Ist RA1 auf Low, wird unser PIC zum<br />
seriellen Sender. Parallel an Port B anliegende<br />
Daten werden dann über RA0<br />
gesendet. Den Start teilen wir über den als<br />
Eingang verwendeten Anschluß RA2 mit.<br />
Dieser liegt immer auf High. Erst wenn<br />
ein gültiges Byte an Port B anliegt, geben<br />
wir auf RA2 einen kurzen Impuls <strong>für</strong> die<br />
Dauer von etwa einer halben Bitlänge. Die