89_90.pdf

(371 KB) Pobierz
Karta MultiIO - dodatkowe porty PAR i SER do Amigi
P R O J E K T Y C Z Y T E L N I K Ó W
Dział „Projekty Czytelników” zawiera opisy projektów nadesłanych do redakcji EP przez Czytelników. Redakcja nie bierze
odpowiedzialności za prawidłowe działanie opisywanych układów, gdyż nie testujemy ich laboratoryjnie, chociaż
sprawdzamy poprawność konstrukcji.
Prosimy o nadsyłanie własnych projektów z modelami (do zwrotu). Do artykułu należy dołączyć podpisane oświadczenie,
że artykuł jest własnym opracowaniem autora i nie był dotychczas nigdzie publikowany . Honorarium za publikację
w tym dziale wynosi 250,− zł (brutto) za 1 stronę w EP. Przysyłanych tekstów nie zwracamy. Redakcja zastrzega sobie
prawo do dokonywania skrótów.
Karta MultiIO − dodatkowe porty PAR
i SER do Amigi
AmigÍ standardowo
wyposaøono w†jeden port
rÛwnoleg³y i†jeden port
szeregowy. Tak wiÍc przy
pod³¹czaniu drukarki
i†programatora (np. AVT-
996) czy modemu
i†emulatora AVT-870
napotykamy na problemy.
Jedynym wyjúciem jest
prze³¹czanie wtyczek.
Dodatkowy port PAR
i†SER, zwany dalej kart¹
MultiIO rozwi¹øe ten
problem.
Schemat elektryczny inter-
fejsu pokazano na rys. 1 . Na-
piÍcie zasilania z†portu Clock
po przejúciu przez bezpiecz-
nik polimerowy i†odfiltrowa-
niu za pomoc¹ kondensatorÛw
C1...C5 i†C13 zasila uk³ady na
karcie portÛw. Magistrala da-
nych i†adresowa z†magistrali
procesora dostÍpnej na porcie
Clock steruje bezpoúrednio
uk³adami UART typu 16C550,
CIA typu 8520, oraz GAL-em.
Na magistrali danych z³¹cza
Clock dostÍpne s¹ tylko czte-
ry linie adresowe A2...A5.
Problem dekodowania adre-
sÛw rozwi¹zuje wspomniany
uk³ad GAL koordynuj¹cy pra-
cÍ kart do³¹czonych do Ami-
gi. Przed dostÍpem do uk³adu
na jakiejkolwiek karcie trzeba
go zaadresowaÊ. GAL po wy-
kryciu adresu przeznaczonego
dla niego ($d8002d) i†niskim
stanie na WR wpisuje dan¹
z†linii D16...D18 do wewnÍt-
rznego rejestru. Odczyt z†pod
tego adresu spowoduje poja-
wienie siÍ ostatnio zapisanej
tam informacji na wyjúciach
trÛjstanowych Q16...Q18. Pod-
czas tych operacji stroby
CS_PAR i†CS_SER s¹ nieak-
tywne. Jeúli do portu Clock
jest pod³¹czonych wiÍcej kart,
kaødy z†uk³adÛw GAL zapa-
miÍta wys³an¹ dan¹ w†swoim
rejestrze. Od tego momentu
strob na linii CS_SER lub
CS_PAR pojawi siÍ tylko wte-
dy, gdy wartoúÊ wpisana do
GAL-a bÍdzie siÍ zgadza³a
z†adresem przypisanym na
sta³e do GAL-a. W†dalszym
tekúcie wartoúÊ wpisana do re-
jestrÛw uk³adu GAL bÍdzie
nazywana s ubadresem . Jak
z†tego wynika, kaøda karta ma
inaczej zaprogramowanego
GAL-a. Rejestr GAL znajduje
siÍ pod adresem $D8002D.
Podczas zapisu pod ten adres
pojawia siÍ wysoki poziom lo-
giczny na wyprowadzeniu 22
uk³adu GAL, a†co za tym idzie
na wejúciu Clock GAL-a. Po-
woduje to przepisanie danych
z†szyny adresowej do wewnÍt-
rznego rejestru typu D†umiesz-
czonego w†strukturze GAL-a.
WartoúÊ rejestru moøna takøe
odczytaÊ. Podczas odczytu ad-
resu $D8002D pojawia siÍ nis-
ki poziom na wyjúciu 15 uk³a-
du GAL, a†co za tym idzie na
wejúciu OE steruj¹cym bufora-
mi trÛjstanowymi uk³adu GAL.
Za spraw¹ sygna³u OE bufory
zostan¹ otwarte i†zawartoúÊ re-
jestru GAL-a pojawi siÍ na ma-
gistrali adresowej. W†danej tej
istotne s¹ tylko bity 0...3 po-
zosta³e naleøy zignorowaÊ.
Uk³ad GAL generuje jeszcze
sygna³ zegarowy E†oznaczany
czÍsto jako O2 dla uk³adu
8520. Jak wiadomo, sygna³ ten
jest charakterystyczny dla uk³a-
dÛw Motoroli, ale niestety nie
dostÍpny na z³¹czu Clock . Da
siÍ go jednak odtworzyÊ na
podstawie sygna³Ûw WR i†RD.
Sygna³ E†przyjmuje poziom
wysoki, gdy ktÛryú ze sygna-
³Ûw (RD lub WR) przyjmie po-
ziom niski ( rys. 2 ). Taki spo-
sÛb odtworzenia sygna³u E†ma
t¹ wadÍ, øe nie jest on gene-
rowany, gdy nie komunikuje-
my siÍ z†uk³adem, a†przez to
nie dzia³aj¹ poprawnie we-
wnÍtrzne timery i†nie da siÍ
ich wykorzystaÊ. Warto wspo-
mnieÊ, øe pod adresem
$D8002D znajduje siÍ jeden
z†rejestrÛw uk³adu CIA, a†kon-
kretnie rejestr TODHR. Ze
wzglÍdu na to, øe na wejúcie
TICK nie jest podany øaden
sygna³ rejestr ten jest nieak-
tywny. Po wybraniu tego adre-
su nie jest generowany strob
do uk³adu CIA dziÍki czemu
odczyt rejestru uk³adu GAL nie
jest zak³Ûcony.
Bramy uk³adu CIA s¹ po-
³¹czone do z³¹cza portu rÛw-
noleg³ego. Spostrzegawczy
czytelnicy zauwaø¹, øe linie
portu PB i†trzy linie portu PA
s¹ po³¹czone z†portem rÛwno-
leg³ym dok³adnie tak jak
w†Amidze. DziÍki temu ³atwo
zaadaptowaÊ istniej¹ce oprog-
ramowanie tak, aby obs³ugi-
wa³o nowe porty. W†tym celu
wystarczy zmieniÊ adresy por-
tÛw. Pozosta³e linie po³¹czono
z†stykami 14...17 portu, dziÍki
Projekt
112
czemu moøemy pracowaÊ
w†trybach ECP/EPP. Linia
PA7 steruje za³¹czaniem na-
piÍcia +5V na styku 14 portu,
dziÍki czemu bÍd¹ dzia³a³y
samplery i†inne urz¹dzenia
wykorzystuj¹ce zasilanie z†te-
goø styku.
Ze wzglÍdu na sw¹ specy-
fikÍ sygna³ zeruj¹cy dla uk³a-
du UART naleøa³o zanegowaÊ.
Niestety nie starczy³o wypro-
wadzeÒ uk³adu GAL i†naleøa-
³o zastosowaÊ dodatkowy tran-
zystor. Z†podobnych powodÛw
uøyto tranzystora to sterowa-
nia lini¹ zg³oszenia przerwa-
nia. Dane w†standardzie TTL
s¹ konwertowane do ±10 V
w†uk³adzie MAX241E. Uk³ad
ten ma budowÍ podobn¹ do
MAX232 tyle, øe zawiera wiÍ-
cej konwerterÛw i†wbudowane
zabezpieczenie przed ESD.
Autor artykułu
udostępnił bezpłatnie
w Internecie (pod
adresem:
www.home.mck.pl/~r−
mik/pio.htm ) szereg
dodatkowych
informacji oraz
oprogramowanie
niezbędne do
uruchomienia karty
prezentowanej
w artykule.
Oprogramowanie
publikujemy także na
CD−EP8/2003B.
Montaø i†uruchomienie
Schemat montaøowy p³yt-
ki pokazano na rys. 3 . Montaø
przeprowadzamy w†nietypo-
wy sposÛb. Najpierw wluto-
wujemy uk³ad US4 ktÛry jest
wykonany w†technologii
SMD. ProponujÍ najpierw
przylutowaÊ jedn¹ skrajn¹
nÛøkÍ. Po poprawnym u³oøe-
niu uk³adu na polach lutow-
niczych lutujemy pozosta³e
wyprowadzenia. NastÍpnie
wlutowujemy rezystory, pod-
stawki pod uk³ady, z³¹cze
CON1, tranzystory, kondensa-
tory na koÒcu kwarc i†z³¹cza
DB. Montaøu z³¹cz IDC trzeba
poúwiÍciÊ nieco wiÍcej uwa-
gi. Jest to spowodowane tym,
øe zdobycie z³¹cz IDC22-2.0
jest beznadziejnie trudne. Po-
s³uøymy siÍ wiÍc z³¹czem ty-
pu IDC34-2.0, z†ktÛrego usu-
wamy po szeúÊ skrajnych wy-
prowadzeÒ. Naleøy zwrÛciÊ
uwagÍ na odpowiednie
umieszczenie wyciÍcia unie-
88
Elektronika Praktyczna 8/2003
Elektronika Praktyczna 2/98
32643136.031.png
P R O J E K T Y C Z Y T E L N I K Ó W
Rys. 1
Elektronika Praktyczna 8/2003
89
32643136.032.png 32643136.033.png 32643136.034.png 32643136.001.png 32643136.002.png 32643136.003.png 32643136.004.png 32643136.005.png 32643136.006.png 32643136.007.png 32643136.008.png 32643136.009.png 32643136.010.png 32643136.011.png
P R O J E K T Y C Z Y T E L N I K Ó W
Rys. 2
P³ytka przystosowana jest do
uk³adÛw DIL. Jeúli posiadamy
uk³ad PLCC naleøy zastoso-
waÊ dodatkow¹ przejúciÛwkÍ.
Po zmontowaniu karty, spraw-
dzeniu czy nie ma ewentual-
nych zwarÊ. Bez uk³adÛw
umieszczonych w†podstaw-
kach ³¹czymy kartÍ z†kompu-
terem. Wszelkie operacje ty-
pu pod³¹czanie od³¹czanie
karty czy wk³adanie wyjmo-
wanie uk³adÛw z†podstawek
wykonujemy przy wy³¹czo-
nym zasilaniu komputera! Po
w³¹czeniu zasilania komputer
powinien wystartowaÊ, a†my
moøemy sprawdziÊ obecnoúÊ
napiÍÊ zasilaj¹cych na pod-
stawkach pod uk³ady. Jeúli
komputer nie startuje, ozna-
cza to, øe mamy zwarcie na
p³ytce. W†nastÍpnej kolejnoú-
ci umieszczamy w†podstawce
uk³ad GAL i†ponownie w³¹-
czamy zasilanie komputera.
Uruchamiamy program Test-
Gala Najpierw jest przepro-
wadzany test automatyczny,
jeúli jego wynik bÍdzie po-
myúlny program moøna za-
koÒczyÊ.
Gdy test wypadnie niepo-
myúlnie program przejdzie do
interaktywnego testu rÍczne-
go. Podczas tego testu naleøy
postÍpowaÊ zgodnie z†instruk-
cjami na ekranie. Gdy GAL
funkcjonuje poprawnie moø-
na umieúciÊ wszystkie uk³ady
w†podstawkach. Po urucho-
moøliwiaj¹cego odwrotne
umieszczenie wtyku w†gnieü-
dzie. Od taúmy FLAT34 od-
dzielamy 12 przewodÛw,
dziÍki czemu pozostanie ich
22. Zaciskaj¹c wtyk od strony
karty naleøy zwrÛciÊ uwagÍ
na to, øe pierwsze i†ostatnie
szeúÊ stykÛw jest pominiÍte.
Pierwszy przewÛd taúmy jest
zaciúniÍty na styku 7†wtyku
IDC. Z³¹cze od strony kompu-
tera trzeba zacisn¹Ê inaczej.
Zaciskamy je tak, aby styk
pierwszy by³ po³¹czony
z†pierwsz¹ øy³¹ taúmy, pozo-
sta³e 13 stykÛw z³¹cza odci-
namy ( rys. 4 ). W†miejscu od-
ciÍcia wskazane jest wpusz-
czenie kropli kleju, aby skleiÊ
doln¹ i†gÛrn¹ czÍúÊ wtyku.
W†przeciwnym razie moøe siÍ
zdarzyÊ, øe wyrwiemy taúmÍ
z†wtyku. Jest to spowodowa-
ne tym, øe w†odciÍtej czÍúci
znajduje siÍ zatrzask spinaj¹-
cy obie czÍúci wtyku IDC34-
2.0. TaúmÍ warto wykonaÊ
d³uøsz¹. DziÍki temu jeúli bÍ-
dziemy chcieli pod³¹czyÊ ko-
lejn¹ kartÍ wystarczy na taú-
mie zaciskaÊ kolejne wtyki.
Pod uk³ady scalone DIL mon-
tujemy podstawki.
Uk³ad 8520 wystÍpuje
w†obudowie DIL40 i†PLCC44.
Rys. 4
mieniu programu Szukanie
powinniúmy ujrzeÊ na ekra-
nie adresy pod jakimi s¹ wi-
dziane uk³ady PAR i†SER. Jeú-
li posiadamy cztery z³¹cza
Clock na karcie z†Zorro2
i†w†innym gnieüdzie znajduje
siÍ jakaú karta, to program
moøe odnaleüÊ takøe uk³ady
na dodatkowych kartach. Do
portu PAR pod³¹czmy drukar-
kÍ. Po za³¹czeniu zasilania
komputera i†uruchomieniu
programu Drukuj na drukarce
powinien pojawiÊ siÍ tekst
prÛbny. Do gniazda portu SER
wk³adamy wtyczkÍ ze zwarty-
mi wyprowadzeniami 2†i†3†po
czym uruchamiamy program
Terminal . Na ekranie powin-
ny pojawiaÊ siÍ znaki nacis-
kane na klawiaturze. Po tych
zabiegach moøemy uznaÊ, øe
karta jest sprawna.
Jeøeli posiadamy wiÍcej
kart MultiIO, to kaød¹ z†nich
musimy testowaÊ osobno, tak
aby podczas testu na wybra-
nym porcie Clock by³a tylko
jedna karta. Jest to spowodo-
wane tym, øe z†powodu b³Ídu
montaøowego rejestry uk³a-
dÛw GAL na rÛønych kartach
mog³yby mieÊ rÛøn¹ zawar-
toúÊ. Spowodowa³oby to poja-
wienie siÍ fa³szywych danych
na magistrali. Podczas nor-
malnej pracy sytuacja taka nie
moøe mieÊ miejsca, poniewaø
rejestry wszystkich uk³adÛw
GAL zawieraj¹ ten sam sub-
adres .
Rys. 5
wanie sterownikÛw jest do-
k³adnie opisane w†podrÍczni-
kach programowania Amigi.
S³awomir Skrzyñski
info@r-mik.com.pl
Artur Gadowski, (SPIDI)
artur@ufo.o.k.pl
Autorem oprogramowania
systemowego do karty jest Ar-
tur Gadowski (SPIDI) i†do
niego proszÍ kierowaÊ pyta-
nia dotycz¹ce sterownikÛw.
WYKAZ ELEMENTÓW
Rezystory
R1: 1M
R4...R7: 10k
Kondensatory
C1...C3, C5: 100nF
C4, C6...C9, C13: 10uF/16V
C10: 27pF
C11: 33pF
Q1: 11.0592MHz
Półprzewodniki
T1, T3: BC557
T2: BC547
US1: GAL22V10
US2: 8520
US3: 16C550
US4: MAX241E
Różne
FUSE: multifuse 500mA
Parallel: złącze DB25F
Serial: złącze DB9M
Clock: złącze IDC MP22−
2.0mm
2szt. wtyków IDC FC22−
2.0mm
50cm taśma FLAT 2.0mm
„Śledź" komputerowy
z otworami na DB25 i DB9
Rys. 3
Oprogramowanie
Do uruchomienia portu
jest niezbÍdne oprogramowa-
nie zawieraj¹ce sterownik do
portu PAR, SER i†program
przechwytuj¹cy dane wysy³a-
ne na urz¹dzenie PRT ( rys.
5 ). DziÍki temu wydruk moø-
na skierowaÊ na dodatkowy
port PAR. Sterowniki moøna
ustawiÊ na dowolny adres
i† subadres karty. Konfiguro-
90
Elektronika Praktyczna 8/2003
R2: 470
R3: 33
Elektronika Praktyczna 2/98
32643136.012.png 32643136.013.png 32643136.014.png 32643136.015.png 32643136.016.png 32643136.017.png 32643136.018.png 32643136.019.png 32643136.020.png 32643136.021.png 32643136.022.png 32643136.023.png 32643136.024.png 32643136.025.png 32643136.026.png 32643136.027.png 32643136.028.png 32643136.029.png 32643136.030.png
Zgłoś jeśli naruszono regulamin