|
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
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.
|
|