Das eBook Angewandte Mikroelektronik wurde von Hans Lohninger zur Unterstützung verschiedener Lehrveranstaltungen geschrieben. Weitere Informationen finden sie hier.


Programmierung des PIO

Nach dem Einschalten der Versorgungsspannung befindet sich der PIO im Reset-Zustand, bei dem alle Leitungen bis auf die Handshake-Leitungen ARDY und BRDY (diese sind auf LOW-Potential) hochohmig sind und der Interruptcontroller ausgeschaltet ist.

Die beiden Ports des PIO können unabhängig voneinander in drei verschiedenen Modi betrieben werden, wobei für Port A ein zusätzlicher bidirektionaler Modus zur Verfügung steht:

 

Modus 0:

Alle Leitungen eines Ports als Ausgang konfiguriert.

Modus 1:

Alle Leitungen eines Ports als Eingang konfiguriert.

Modus 2:

Bidirektionaler Betrieb von Port A.

Modus 3:

Jede Leitung eines Ports kann individuell als Eingang oder als Ausgang konfiguriert werden.

 

Z80-PIO Steuerwörter

Die Programmierung eines jeden PIO-Kanals geschieht in zwei Phasen. Zuerst muss die Betriebsart eingestellt werden und nach der Definition der Betriebsart muss gegebenenfalls noch der Interruptmechanismus initialisiert werden. Zur Einstellung der Betriebsart wird an den Control-Port des PIO (CD-SEL = HIGH) ein Byte mit der in der Abbildung gezeigten Bitbelegung gesendet, wobei die Bits 6 & 7 (M0 und M1) die Betriebsart definieren:

M1=0, M0=0

Modus 0

M1=0, M0=1

Modus 1

M1=1, M0=0

Modus 2 (nur bei Port A gültig !)

M1=1, M0=1

Modus 3

 

Modus 0 Alle Anschlüsse eines Ports werden als Ausgänge geschaltet. Man kann nun durch Schreiben eines Bytes auf den Daten-Port des PIO (CD-SEL = LOW) die einzelnen Leitungen entsprechend der Bits dieses Bytes ansteuern. Nach einem Reset und dem Einstellen von Modus 0 sind alle Leitungen auf LOW-Potential. Die Port-Leitungen können im Modus 0 eine TTL-Unit-Load treiben.
Modus 1 In dieser Betriebsart werden alle Anschlüsse eines Ports als Eingänge verwendet. Die anstehenden Daten werden durch einen LOW-Impuls am jeweiligen Strobe-Eingang im Eingangsregister des PIO-Kanals gespeichert und können durch Lesen des Daten-Ports des PIO (CD-SEL = LOW) abgefragt werden.
Modus 2 Betriebsart 2 bietet einen bidirektionalen Datentransfer am Port A. Der Datentransfer wird mit Hilfe der Handshake-Leitungen ARDY, /ATSB, BRDY und /BSTB bewerkstelligt, wobei die Handshake-Leitungen für Port A zur Steuerung der Ausgabe dienen, die Handshake-Leitungen für Port B zur Steuerung der Eingabe. Port B muss im Modus 3 betrieben werden, wobei alle Datenbits maskiert werden müssen.
Modus 3 Diese Betriebsart erlaubt das beliebige Mischen von Ein- und Ausgängen. Jeder Port-Anschluss des PIO kann beliebig als Ein- oder Ausgang definiert werden. Außerdem kann jeder Eingang auch zur Interrupterzeugung verwendet werden.


Last Update: 2008-05-31