| |
Popis zapojení, funkce a programování paralelního rozhraní Atari Portfolia.Zapojení paralelního rozhraníParalelní
rozhraní Portfolia používá programovatelný integrovaný obvod 82C55, který
je programově kompatibilní s obvodem 8255. Tento obvod obsahuje tři osmibitové
porty, které je možno naprogramovat jako vstupní nebo výstupní. Na každý z těchto
tří portů se přistupuje na samostatné adrese, na čtvrté adrese se nachází
ještě další speciální port, přes který se programuje chování celého
obvodu.
Porty A a B jsou osmibitové, na jejich níže uvedené adresy se posílá (nebo
se z nich čte) požadovaný bajt. Port C je trochu odlišný, na své adrese se
chová také jako osmibitový (v módu 0, viz níže), nebo je možno pracovat s
jeho jednotlivými bity přes řídící port CW.
Na konektor Canon paralelního rozhraní ale nejsou vyvedeny všechny bity z těchto tří portů.
Jednotlivé porty jsou na následujících adresách (hexadecimálně / desítkově) :
8078h (32888) port A, na konektor vyvedeno všech 8 bitů
8079h (32889) port B, na konektor vyvedeny bity 0,1,2,3
807Ah (32890) port C, na konektor vyvedeny bity 0,1,3,4,5
807Bh (32891) řídící port CW
Zapojení konektoru Canon 25 paralelního rozhraní Portfolia
| Pin |
Port a bit |
Směr |
Funkce |
| 1 |
B0 |
OUT |
/STROBE |
| 2 |
A0 |
OUT |
DATA 0 |
| 3 |
A1 |
OUT |
DATA 1 |
| 4 |
A2 |
OUT |
DATA 2 |
| 5 |
A3 |
OUT |
DATA 3 |
| 6 |
A4 |
OUT |
DATA 4 |
| 7 |
A5 |
OUT |
DATA 5 |
| 8 |
A6 |
OUT |
DATA 6 |
| 9 |
A7 |
OUT |
DATA 7 |
| 10 |
C5 |
IN |
/ACKNOWLEDGE |
| 11 |
C4 |
IN |
BUSY |
| 12 |
C0 |
IN |
PAPER EMPTY |
| 13 |
C1 |
IN |
SELECT |
| 14 |
B1 |
OUT |
AUTO LF |
| 15 |
C3 |
IN |
/ERROR |
| 16 |
B2 |
OUT |
/INIT |
| 17 |
B3 |
OUT |
SELECT IN |
| 18 až 25 |
zem |
|
|
| Pin |
číslo vývodu na konektoru Canon |
| Port a bit |
Port A, B nebo C a číslo bitu tohoto portu |
| Směr |
Směr (vstup nebo výstup) při standartním použití pro připojení tiskárny |
| Funkce |
Funkce jednotlivých vývodů pro připojení tiskárny |
Programování rozhraní
Obvod 8255 lze použít ve třech režimech - mód 0, 1 ,2.
Mód 0 - každý port samostatně lze naprogramovat jako vstupní nebo výstupní,
porty A a B celou osmici bitů, port C zvlášť spodní a horní čtveřici bitů.
Mód 1 - pouze porty A a B - lze naprogramovat jako vstupní nebo výstupní
celou osmici bitů portu A a B (každý samostatně), s tím že je k portu A
(nebo B) automaticky přiřazeno několik bitů portu C pro signály řízení přenosu
dat. Zbývající bity portu C lze použít samostatně.
Mód 2 - pouze port A - lze naprogramovat jako obousměrný, s tím že je k němu
automaticky přiřazeno 5 bitů portu C pro signály řízení přenosu dat.
Port B a zbývající bity portu C lze použít v módu 0 nebo 1.
Protože na konektoru nejsou vyvedeny všechny bity všech portů, praktický význam
pro využití paralelního rozhraní Portfolia má jen mód 0.
Teď k vlastnímu programování. Na řídící port (CW, adresa 807Bh) lze posílat dva druhy
řídícího bajtu. Rozlišují se nastavením nejvyššího bitu (D7). Pokud je
nejvyšší bit nastaven na 1, jedná se o programovací bajt pro obvod 8255.
Pokud je nejvyšší bit nastaven na 0, jedná se o nastavování logické úrovně
jednotlivých bitů portu C.
| Programování módu jednotlivých portů |
| bit |
význam |
| D7 |
1 .. programování obvodu 8255 |
| D6 |
0 .. port A do módu podle bitu D5 1 .. port A do módu 2 |
| D5 |
má vliv pouze pokud je bit D6 nastaven na 0 0 .. port A do módu 0 1 .. port A do módu 1 |
| D4 |
0 .. port A v režimu výstupu (v módu 0 nebo 1) 1 .. port A v režimu vstupu (v módu 0 nebo 1) |
| D3 |
0 .. port C v režimu výstupu (pouze bity 4,5,6,7) 1 .. port C v režimu vstupu (pouze bity 4,5,6,7) |
| D2 |
0 .. port B do módu 0 1 .. port B do módu 1 |
| D1 |
0 .. port B v režimu výstupu (v módu 0 nebo 1) 1 .. port B v režimu vstupu (v módu 0 nebo 1) |
| D0 |
0 .. port C v režimu výstupu (pouze bity 0,1,2,3) 1 .. port C v režimu vstupu (pouze bity 0,1,2,3) |
| Nastavování jednotlivých bitů portu C |
| bit |
význam |
| D7 |
0 .. nastavování logické úrovně bitů portu C |
| D6 |
nemá vliv |
| D5 |
nemá vliv |
| D4 |
nemá vliv |
| D3 |
výběr bitu, který se bude nastavovat
| bit |
C0 |
C1 |
C2 |
C3 |
C4 |
C5 |
C6 |
C7 |
| D3 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
| D2 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
| D1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
|
| D2 |
| D1 |
| D0 |
0 .. vybraný bit nastavit do log. 0 1 .. vybraný bit nastavit do log. 1 |
Bity portu C lze samozřejmě nastavovat i všechny najednou, odesláním
osmibitové hodnoty na adresu 807Ah. Nastavování jednotlivých bitů samostatně
může někdy být výhodnější, potom je možno
poslat hodnotu podle předchozí tabulky na adresu 807Bh. V takovém případě lze jednoduše spočítat patřičný
bajt jako dvojnásobek čísla bitu plus jeho požadovaná logická úroveň.
Například chceme nastavit bit 0 do log.0, pošleme na adresu 807Bh hodnotu 0,
nebo pro nastavení bitu 4 do log.1, pošleme hodnotu 9.
Pro usnadnění naprogramování obvodu 8255 uvádím ještě jednu tabulku, ze
které snadno zjistíte, jakou hodnotu poslat na adresu 807Bh pro požadované
nastavení vstupů a výstupů jednotlivých portů v módu 0.
| port A |
port B |
port C0,1,2,3 |
port C4,5,6,7 |
hodnota |
| OUT |
OUT |
OUT |
OUT |
128 |
| OUT |
OUT |
OUT |
IN |
136 |
| OUT |
OUT |
IN |
OUT |
129 |
| OUT |
OUT |
IN |
IN |
137 |
| OUT |
IN |
OUT |
OUT |
130 |
| OUT |
IN |
OUT |
IN |
138 |
| OUT |
IN |
IN |
OUT |
131 |
| OUT |
IN |
IN |
IN |
139 |
| IN |
OUT |
OUT |
OUT |
144 |
| IN |
OUT |
OUT |
IN |
152 |
| IN |
OUT |
IN |
OUT |
145 |
| IN |
OUT |
IN |
IN |
153 |
| IN |
IN |
OUT |
OUT |
146 |
| IN |
IN |
OUT |
IN |
154 |
| IN |
IN |
IN |
OUT |
147 |
| IN |
IN |
IN |
IN |
155 |
Reakce na tento popis.
|
|