1986-BHV-04 S.13-15 ## Parallel-I/O-Adapter mit dem PPI8255 Helmut Bernhardt TRS-80, GENIE und Komtek haben weder für IEC-Bus, RS232C noch sonst irgendwelche standartisierten Schnittstellen Anschlüsse vorbereitet. Das einzige (außer Stecker für Drucker und Floppy), was man vorfindet, ist der herausgeführte Systembus. Leider gibt es keinerlei Interfaces, die auf den Systembus aufgesteckt werden und dann Standard-Schnittstellen bereitstellen. Es ist auch nicht zu erwarten, daß irgendein Hersteller für unsere wenig bedeutenden Geräte sowas je anbieten wird. Wir müssen uns da schon selber helfen. Andererseits ist der Systembus für Bastler viel inreressanter als ein IEC-Bus oder User-Port. Es stehen dabei alle Möglichkeiten offen, irgendwelche Schnittstellen selbst zu bauen und über den Systembusstecker anzuschließen. Man ist nicht auf die vom Hersteller vorgegebenen Möglichkeiten beschränkt. Eine einfache Parallel-I/O-Schnittstelle mit 24 Leitungen läßt sich mit dem 8255 aufbauen. Neben dem 8255 werden noch 2 weitere ICs zur Portdecodierung benötigt. Die in Abb.1 vorgeschlagene Schaltung benutzt die Portadressen 98H-9BH. Sie ist so einfach, daß sich die Herstellung eines Layouts nicht lohnt. Die Schaltung läßt sich auf einem 5 cm * 8 cm Stück Lochrasterplatine aufbauen. Der Anschluß an den Systembus des Computers ist in Tabelle 1 wiedergegeben. Für den TRS-80 ergeben sich dabei gewisse Schwierigkeiten. Die Versorgungsspannung von +5V liegt nicht auf dem Systembus-Stecker. Sie muß an geeigneter Stelle auf dem CPU-Board entnommen werden. Außerdem ist das Signal IORQ* nicht vorhanden. Anstelle von IORQ* muss dann auch an Pin 11 des 74LS02 das Signal A2 gelegt werden. Anstelle der nicht verfügbaren Signale RD* und WR* werden die Signale IN* und OUT* an die Pins 5 und 36 des 8255 gelegt. Der 8255 hat gegenüber dem für den Z80 üblichen PIO-Baustein den Nachteil, daß er keinen IM2-Interrupt liefern kann und daß die Leitungen eines Ports nicht unabhängig voneinander als Input oder Output definiert werden können. Dafür stehen aber in der einfachsten Betriebsart (Mode 0) drei 8-Bit-Ports zur Verfügung. Beim Port C lassen sich zusätzlich noch oberes und unteres Nibble unabhängig voneinander als Input oder Output festlegen. Ein echtes Handshaking ist mit einzelnen Leitungen des Port C für die Ports A und B ebenfalls möglich, wenn die Betriebsarten Mode 1 oder Mode 2 programmiert werden. Dann muß noch ein zusätzliches IC 74LS05 eingesetzt weden, das die Interrupt-Ausgänge des 8255, PC0 und PC3 invertiert und auf Open-Collector Ausgänge bringt. Außerdem kann darüber auch ein externes, low aktives Strobe-Signal an den INT-Eingangder CPU geführt werden, wenn das Handshaking nicht durch den 8255 erledigt werden soll.
Tabelle 1: Anschuß an den Systembus
| Pin des Systembus-Steckers
Signal | GENIE | Komtek | TRS-80
D0 | 15 | 46 | 30
D1 | 14 | 41 | 22
D2 | 12 | 40 | 32
D3 | 16 | 39 | 26
D4 | 20 | 42 | 18
D5 | 11 | 37 | 28
D6 | 18 | 44 | 24
D7 | 17 | 43 | 20
A0 | 10 | 34 | 25
A1 | 7 | 32 | 27
A2 | 9 | 30 | 40
A3 | 8 | 28 | 34
A4 | 6 | 26 | 31
A5 | 5 | 24 | 35
A6 | 4 | 22 | 38
A7 | 3 | 20 | 36
IORQ* | 38 | 35 | 40 #2 (A2)
RD* | 41 | 38 | 19 #2 (IN*)
WR* | 40 | 36 | 12 #2 (OUT*)
RESET* | 46 #1 | 33 #1 | 2 (SYSRES*)
INT* | 31 | 10 | 21
+5V | 19 | 17,18 | 39 #3
GND | 1,2, | 1,2, | 8,29,37
| 49,50 | 49,50 |
|  | Tabelle 2: Pinbelegung des 40poligen I/O-Steckers
Signal | Pin | Pin | Signal
PA4 | 39 | 40 | PA3
PA5 | 37 | 38 | PA2
PA6 | 35 | 36 | PA1
PA7 | 33 | 34 | PA0
GND | 31 | 32 | GND
- | 29 | 30 | -
- | 27 | 28 | -
- | 25 | 26 | -
- | 23 | 24 | -
- | 21 | 22 | ext.STROBE*
- | 19 | 20 | -
PC7 | 17 | 18 | PC0
PC6 | 15 | 16 | PC1
PC5 | 13 | 14 | PC2
PC4 | 11 | 12 | PC3
+5V | 9 | 10 | +5V
PB7 | 7 | 8 | -
PB6 | 5 | 6 | PB1
PB5 | 3 | 4 | PB2
PB4 | 1 | 2 | PB3
Anmerkungen zu Tabelle 1
#1 | anstelle von RESET* sollte ein durch AND-Verknüpfung aus RESET* und NMI* gebildetes SYSRES* benutzt werden
#2 | anstelle der nicht vorhandenen Signale IORQ*, RD* und WR* müssen A2, IN* und OUT* benutzt werden
#3 | Die Versorgungsspannung ist nur am Expansion-Interface und nicht am Grundgerät zu entnehmen; bei Anschluß an das Grundgerät kann sie an geeigneter Stelle auf dem CPU-Board abgenommen werden oder auch vom angeschlossenen Peripheriegerät geliefert werden, zu dem auch Masse-Verbindung bestehen muß
Abb.1: Schaltung und Verdrahtung des I/O-Boards