Bastlení
Atari Portfolio
zpět na předchozí stranu

Paralelní port Portfolia,
popis a programování

 
 
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.