15.02.2013 Aufrufe

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

MEHR ANZEIGEN
WENIGER ANZEIGEN
  • 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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!