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