21_25.PDF

(375 KB) Pobierz
Emulator pamięci EPROM do Amigi i C-64 - AVT-5053
Emulator pamięci EPROM do Amigi i C−64
P R O J E K T Y
Emulator pamięci EPROM
do Amigi i C−64
AVT−5053
Przedstawiamy emulator
usprawniaj¹cy uruchamianie
sterownikÛw
mikroprocesorowych.
Jak wiadomo, w†sprzedaøy
nie ma emulatorÛw pamiÍci
EPROM w†wersji
dla Amigi i†C-64.
Wielokrotne
programowanie
i†kasowanie pamiÍci
moøe doprowadziÊ do
rozpaczy nawet najbardziej
wytrwa³ych konstruktorÛw.
Emulator moøe u³atwiÊ øycie,
jest bowiem takim przyrz¹dem
w†pracowni elektronika, jak steto-
skop w†gabinecie lekarza. Emula-
tor zastÍpuje pamiÍci ROM i†EP-
ROM podczas uruchamiania sys-
temÛw mikroprocesorowych
z†tymi pamiÍciami. PamiÍci tego
rodzaju spe³niaj¹ w†nich na
przyk³ad funkcje generatora zna-
kÛw. Emulator moøe symulowaÊ
pamiÍci do 64kB, zarÛwno w†wer-
sji MOS jak i†CMOS.
z†nim 28-øy³ow¹ taú-
m¹ zakoÒczon¹ wtykiem
emulacyjnym. Dodatkowo
moøemy pod³¹czyÊ przewÛd
zeruj¹cy uruchamiane urz¹dze-
nie. G³Ûwnymi blokami emula-
tora s¹ dwie pamiÍci o†pojemnoú-
ci 32kB kaøda. Poniewaø emulator
przewidziano do uruchamiania
systemÛw z†8-bitow¹ szyn¹ da-
nych, 32kB jest przewaønie mak-
symaln¹ wielkoúci¹ pamiÍci EP-
ROM/ROM.
NiektÛrych CzytelnikÛw zdziwi
moøe to, øe po³¹czenia uk³adu
US11 z†US6, 7, 8 od strony pa-
miÍci RAM nie s¹ oznaczone (brak
etykiet). Nie jest to b³¹d w†druku.
Po prostu wyprowadzenia te s¹
po³¹czone z†uk³adami US2, 3, 4, 5
znajduj¹cymi siÍ w†lewej czÍúci
schematu. Taki sposÛb przedsta-
wiania niektÛrych po³¹czeÒ przyj¹³
siÍ w†schematach bardziej skompli-
kowanych urz¹dzeÒ, np. mikropro-
cesorowych. Tak narysowany
schemat jest bardziej zwarty i†bar-
dziej czytelny.
Charakterystyka emulatora
1. Praca z każdym komputerem Amigą
(OS2.04+) i C−64, za pośrednictwem portu
równoległego.
2. Szybkość transferu z komputera 4kB/s.
3. Program transmisji danych napisany w as−
semblerze.
4. Pełna kontrola błędów programowych.
5. Praca programu w trybie wielozadaniowym.
6. Wbudowany port Arexxa.
7. Zabezpieczenie od strony złącza emulacyjne−
go buforami 74HCT245.
8. Zasilanie z uruchamianego systemu, podtrzy−
manie pamięci z komputera.
Opis uk³adu
Schemat elektryczny emulatora
pokazano na rys. 1 . WspÛ³pracuje
on z†komputerami za poúrednic-
twem portu PARALLEL w†Amidze
lub USER w†C-64. Zasilanie emu-
latora jest pobierane z†uruchamia-
nego systemu. Emulator ³¹czymy
Elektronika Praktyczna 2/2002
21
32251609.044.png
Emulator pamięci EPROM do Amigi i C−64
Rys. 1. Schemat elektryczny emulatora pamięci.
Zaleønie od stanu linii BUSY
uaktywniane s¹ rejestry US2, US3
(poziom niski BUSY) lub bramy
US6, US7 (poziom wysoki BU-
SY). Przyjmijmy, øe BUSY znaj-
duje siÍ w†stanie ì0î. Na wyjúciu
bramki B1 pojawi siÍ wÛwczas
poziom wysoki, wskutek czego
wyjúcia buforÛw US6, US7 znaj-
duj¹ siÍ w†stanie trzecim, nato-
miast wyjúcia rejestrÛw US2, US3
s¹ aktywne. Liniami POUT i†SEL
przesy³any jest do rejestrÛw ad-
res wpisywanej komÛrki pamiÍci.
NastÍpnie do postu wpisywana
dana. Powoduje to automatyczn¹
zmianÍ (na chwilÍ) poziomu linii
STB na niski, co spowoduje, za
poúrednictwem B2 i†B3, pojawie-
nie siÍ impulsu na linii WR
pamiÍci. DziÍki bramce B2 uk³ad
US5 jest w†stanie aktywnym. Na-
stÍpstwem tego jest wpisanie da-
nej do pamiÍci RAM. NastÍpnie
wysy³any jest do rejestrÛw kolej-
ny adres (przewaønie o†jeden
wiÍkszy), wysy³any dan¹ do portu
itd. Gdy wpiszemy wszystkie da-
ne, zmieniamy poziom linii BU-
SY na wysoki. Spowoduje to
przejúcie rejestrÛw w†stan trzeci,
natomiast bufory US6, US7 zo-
stan¹ uaktywnione. Brama US5
zostanie rÛwnieø ustawiona
w†stan trzeci. Bramka B4 nie
pozwoli na wpisy do pamiÍci
RAM (impulsy z†STB nie bÍd¹
przepuszczane). Adres generowa-
ny przez mikroprocesor, z†uru-
chamianego systemu, zostanie
przeniesiony na wejúcie adresowe
pamiÍci RAM. Bufory, poza
funkcj¹ odciÍcia linii adresowych
od procesora, likwiduj¹ zak³Ûce-
nia mog¹ce pojawiÊ siÍ w†d³ugim
kablu sondy emulacyjnej. NastÍ-
puje to za spraw¹ bramek Schmi-
tta wbudowanych w†uk³ad. Usta-
wienie na liniach CE i†OE
poziomu niskiego, za poúrednic-
twem bramek B9 i†B10, uaktywni
wyjúcia pamiÍci RAM (linia OE)
oraz bufora US8. Po czasie okreú-
lonym w†katalogach jako czas
dostÍpu , na wyjúciach danych
pamiÍci pojawi siÍ bajt danych.
Inne kombinacje wartoúci syg-
na³Ûw OE i†CE powoduj¹ przej-
úcie US8 w†stan trzeci. DziÍki
temu emulator zachowuje siÍ jak
ìprawdziwaî pamiÍÊ EPROM.
Bramki B2, B11 i†B12 steruj¹
diodami LED. Odczyt pamiÍci
przez mikroprocesor powoduje
zaúwiecenie diody ìReadî. Po-
niewaø s¹ to krÛtkie impulsy,
zastosowano kondensator C3, ktÛ-
ry powoduje przed³uøenie czasu
úwiecenia LED. DziÍki temu ob-
serwujemy ci¹g³e úwiecenie pe³n¹
jasnoúci¹. Dioda oznaczona jako
ìWriteî úwieci podczas wysy³a-
nia danych przez port. Konden-
sator C2 zastosowano w†tym sa-
mym celu co C3.
Dioda ìLoadî úwieci, gdy na
linii BUSY jest poziom niski,
a†wiÍc w†czasie, gdy jest moøliwy
zapis danych do RAM. ObwÛd
z†tranzystorami T1 i†T2 generuje
sygna³ ìResetî do uruchamianego
22
Elektronika Praktyczna 2/2002
32251609.045.png 32251609.046.png 32251609.047.png 32251609.001.png 32251609.002.png 32251609.003.png 32251609.004.png 32251609.005.png 32251609.006.png 32251609.007.png 32251609.008.png 32251609.009.png 32251609.010.png 32251609.011.png 32251609.012.png 32251609.013.png 32251609.014.png 32251609.015.png 32251609.016.png 32251609.017.png 32251609.018.png 32251609.019.png 32251609.020.png 32251609.021.png 32251609.022.png 32251609.023.png 32251609.024.png
Emulator pamięci EPROM do Amigi i C−64
Rys. 3. Sposób wykonania kabla
emulacyjnego.
Rys. 2. Rozmieszczenie elementów na płytce drukowanej emulatora.
okno pokazano na zrzucie ekranu
na rys. 5 . Program poinformowa³
o†wys³aniu danej $5555 do rejes-
trÛw US2 i†US3 (4094). Naleøy
wÛwczas sprawdziÊ stany logicz-
ne na poszczegÛlnych wyprowa-
dzeniach uk³adÛw scalonych.
Okno podzielono na dwie czÍú-
ci. W†tym przyk³adzie wyszcze-
gÛlniono pierwsze wyprowadze-
nia, na ktÛrych powinien byÊ
poziom H, w†drugiej czÍúci wy-
szczegÛlniono wyprowadzenia, na
ktÛrych powinien byÊ poziom L.
Jeúli sprawdzone poziomy s¹ pra-
wid³owe naciskamy przycisk
ìOKî, a†jeúli nie, wycofujemy siÍ
z†testu naciskaj¹c ìCancelî.
Testy u³oøone s¹ w†okreúlonym
porz¹dku. Najpierw sprawdzane
s¹ linie BUSY, POUT, SEL (uk³a-
dy US1, US4). Jeúli wynik jest
pozytywny sprawdzane s¹ rejestry
US2 i†US3, nastÍpnie brama US5,
a†na koniec obwÛd zapisu RAM
(bramki B3, B4 uk³adu US4).
Jeúli wiÍc jakiú test wypad³
niepomyúlnie, procedurÍ naleøy
przerwaÊ i†usun¹Ê usterkÍ. Gdy-
byúmy testy przeprowadzali dalej,
z†pewnoúci¹ ich wyniki bÍd¹ ne-
gatywne, bo np. gdy uszkodzony
bÍdzie US1, nie ma mowy o†po-
prawnym dzia³aniu US2 i†US3.
DziÍki wyúwietlonym podpowie-
systemu. DostÍpne jest wyjúcie
z†aktywnym poziomem niskim lub
wysokim.
maksymalna d³ugoúÊ nie powinna
przekraczaÊ 30cm.
Do po³¹czenia emulatora
z†komputerem uøyjemy typowego
przed³uøacza DB25 (w przypadku
Amigi) lub kabla przejúciÛwki
(w†przypadku C-64).
Wtyk DB25 zaciskamy na kab-
lu i†³¹czymy z†p³yt¹ emulatora za
pomoc¹ z³¹cza IDC34. Jeúli nie
posiadamy wtyku DB25 zaciska-
nego na kabelu, moøna taúmÍ
przylutowaÊ bezpoúrednio do sty-
kÛw z³¹cza DB25. SposÛb po³¹cze-
nia przewodÛw ze z³¹czem przed-
stawiono na rys. 4 .
Po doprowadzeniu zasilania,
ale bez zamontowanych uk³adÛw,
sprawdzamy napiÍcie na ich wy-
prowadzeniach zasilaniowych. Na-
stÍpnie wk³adamy wszystkie uk³a-
dy scalone. Uruchamiamy pro-
gram EmulatorTest . PostÍpuj¹c
zgodnie z†jego poleceniami testu-
jemy urz¹dzenie. Przeprowadzone
testy s¹ kolejno wyúwietlane na
oknach z†opisami. Przyk³adowe
Montaø i†uruchomienie
Schemat montaøowy p³ytki
emulatora pokazano na rys. 2 .
W†pierwszej kolejnoúci montuje-
my wszystkie podstawki i†elemen-
ty bierne. NastÍpnie zaciskamy
z³¹cza i†sondÍ symulacyjn¹ na
taúmie 28-przewodowej. Zastoso-
wano tak¹ taúmÍ, aby istnia³a
moøliwoúÊ symulowania pamiÍci
2716 oraz mniejszych, czy teø
innych, nietypowych. Typ symu-
lowanej pamiÍci zaleøy od zasto-
sowanego kabla. Przy kablu zapro-
ponowanym w†tym emulatorze is-
tnieje moøliwoúÊ symulowania pa-
miÍci 2764, 27128, 27256, 27512
w†typowych uk³adach aplikacyj-
nych. Kabel naleøy zacisn¹Ê tak,
aby jego pierwsza øy³a by³a po-
³¹czona z†drugim wyprowadze-
niem z³¹cza IDC ( rys. 3 ). Taúma
nie powinna byÊ zbyt d³uga - jej
Rys. 4. Sposób wykonania kabla
połączeniowego.
Elektronika Praktyczna 2/2002
23
32251609.025.png 32251609.026.png 32251609.027.png 32251609.028.png 32251609.029.png 32251609.030.png 32251609.031.png 32251609.032.png 32251609.033.png 32251609.034.png 32251609.035.png 32251609.036.png 32251609.037.png 32251609.038.png 32251609.039.png
Emulator pamięci EPROM do Amigi i C−64
dowany skrypt Arexxa umoøliwia
sterowanie emulatorem z†ze-
wnÍtrznych programÛw. Do³¹czo-
no takøe program wysy³aj¹cy dane
z†Amigi do CA80 oraz programy
rozdzielaj¹ce dane 16-bit na
2*8bit. Podzia³ moøe nast¹piÊ na
bajty parzyste i†nieparzyste lub
bity parzyste i†nieparzyste. Dodat-
kowo polecam kompilatory Fran-
kenstein zawieraj¹ce miÍdzy inny-
mi kompilatory dla 6502, 6805,
6809, 6811, 8048, 8051, 8096, Z8,
Z80 oraz skrypty Arexxa u³atwia-
j¹ce kompilacje dla 6502, 8051
i†Z80. Skrypty te po kompilacji
powoduj¹ wysy³anie danych do
emulatora EPROM i†generowanie
sygna³u zeruj¹cego dla urucha-
mianego systemu. Dodatkowo na
p³ycie zamieúci³em skrypty umoø-
liwiaj¹ce wysy³anie danych do
AVT-497, AVT-870, AVT-995,
AVT-2250. Ca³y pakiet moøna
úci¹gn¹Ê z†www.ep.com.pl lub
www.home.mck.pl/~r-mik/kompi-
latory.htm. Jest on takøe dostÍpny
na p³ycie CD-EP02/2002B. Szcze-
gÛ³owe informacje o†sposobie in-
stalacji pakietu kompilatorÛw znaj-
duj¹ siÍ w†pliku ìCompi-
ler.DokPL.î.
Jeúli uruchamiany mikroproce-
sor nie wykorzystuje ca³ej pamiÍ-
ci, to nieuøywane linie adresowe
naleøy po³¹czyÊ z†mas¹ lub szyn¹
zasilania. Unikniemy w†ten spo-
sÛb oscylacji na niewykorzysta-
nych liniach adresowych. Pro-
gram przy emulowaniu pamiÍci
mniejszych od 27512 wpisuje da-
ne we wszystkie moøliwe bloki.
Po ustawieniu typu pamiÍci 27128
i†wys³aniu danej z†RAM Amigi
pod adres $0000 zostanie ona
zapisana pod adresami: $0000,
$4000, $8000, $6000. DziÍki temu
nie trzeba sobie ìzawracaÊ g³owyî
offsetami.
Rys. 6. Okno programu sterującego
pracą symulatora.
Rys. 5. Widok okna programu
testowego.
nitor czy innym programem,
a†emulatorem. Program jest przy-
gotowany w†dwÛch wersjach. Pier-
wsza - EMULATOR.EXE - zawiera
monitor asemblera (na dane jest
przeznaczony obszar
$3000...$FFFF). Druga wersja -
EMULATOR-A.EXE - nie zawiera
monitora, wykorzystuje monitor
w†ActionReplay (na dane przezna-
czony jest obszar $1200...$FFFF).
Po uruchomieniu program zapa-
miÍtuje adres Basic. DziÍki temu
przy wyjúciu (klawisz strza³ka
w†lewo) wraca do niego lub jeúli
startowaliúmy z†monitora (np.
w†Action), to do monitora. Naciú-
niÍcie Restore spowoduje przejúcie
do Turboassemblera (jeúli jest
w†RAM). Wyjúcie z†programu przez
CTRL+STOP powoduje restart Ac-
tionreplay, Final, Black Box. WiÍ-
dziom znalezienie ewentualnego
b³Ídu bÍdzie ³atwe. Po sprawdze-
niu uk³adu moøna uruchomiÊ pro-
gram. Pozosta³o jeszcze wyjaúniÊ
rolÍ z³¹cza JP1. Jeúli zastosujemy
dwie pamiÍci (symulacja maks.
64kB) jumper naleøy ustawiÊ tak,
aby zwiera³ piny 1-2 (jumper przy
napisie 64kB). Przy logicznym ì0î
na wejúcie bramki NOR, neguje
ona sygna³ pochodz¹cy z†linii ad-
resowej A15. DziÍki temu do
adresu $7FFF wybrany jest uk³ad
US10, a†od adresu $8000 uk³ad
US11. Gdy jumper ustawimy tak,
aby zwiera³ piny 2-3, na bramkÍ
NOR zostanie podany poziom
H†(symulacja maks. 32kB). Wtedy
bez wzglÍdu na stan linii adre-
sowej A15 zawsze jest wybrany
uk³ad US11. Podstawka pod US10
musi byÊ pusta! W†przeciwnym
przypadku moøe dojúÊ do kolizji
danych pomiÍdzy US10 i†US11
(jednoczesne wybranie obu pamiÍ-
ci). Mog³oby wydawaÊ siÍ, øe JP1
jest niepotrzebny, ale tak nie jest.
Za³Ûømy, øe bramka B13 pracuje
jako inwerter, a†uk³adu US11 nie
ma w†podstawce. Gdy np. symu-
lowana jest pamiÍÊ 8KB, na piny
1 (Vpp) i†27 (PGM) podawany jest
poziom H. WÛwczas dane w†emu-
latorze zostan¹ wpisane pod ad-
resy: $0000, $2000, $4000, $6000
oraz w†nieistniej¹cy obszar: $8000,
$A000, $C000, $E000.
System mikroprocesorowy wy-
generuje adresy $C000...$FFFF
(Vpp=A15, PGM=A14), co spo-
woduje wybranie uk³adu US11,
ktÛrego przecieø nie ma w†pod-
stawce.
WYKAZ ELEMENTÓW
Rezystory
R1, R3, R5...R8: 100k
R2, R4, R16: 10k
R9, R10: 2,2M
R11...R14: 470
Kondensatory
C1: 100nF
C2, C3: 2,2nF
C4, C11, C12: 47
F/16V
C5...C10: 100nF
Półprzewodniki
D1, D4: LED zielona
D2: LED żółta
D3: LED czerwona
T1: BC547
T2: BC557
US1: 74HC14
US2, US3: 4094
US4: 74HC132
US5...US8: 74HC245
US9: 74HC02
US10, US11: 62256
Różne
CON1, CON2: gniazdo IDC34
JP1: listwa goldpin 1*3
Wtyki zaciskane IDC34 na kabel
FLAT (2 szt.)
Wtyk DB25PIN−F na kabel FLAT
Wtyk emulacyjny 28DIP
Oprogramowanie dla C-64
Program steruj¹cy prac¹ emu-
latora wspÛ³pracuj¹cego z†C64 ob-
s³ugujemy z†klawiatury. Klawisza-
mi F1, F3 ustalamy obszar w†pa-
miÍci RAM komputera, ktÛry zo-
stanie przepisany do emulatora
pod adres ustawiony za pomoc¹
F5. Klawiszem F8 jest urucha-
miana transmisja.
Program napisano tak, aby
wspÛ³pracowa³ z†innymi progra-
mami. Moøna wiÍc ìprzechodziÊî
miÍdzy Turboassembler, Basic, Mo-
Oprogramowanie dla
Amigi
Obs³uga programu steruj¹cego
prac¹ emulatora (jego okno poka-
zano na rys. 6 ) jest ³atwa, a†ewen-
tualne w¹tpliwoúci rozwieje in-
strukcja umieszczona na CD-EP02/
2002B.
Program rozpoznaje pliki bi-
narne i†w†formacie IntelHex. Wbu-
24
Elektronika Praktyczna 2/2002
R15: 100
32251609.040.png 32251609.041.png 32251609.042.png
Emulator pamięci EPROM do Amigi i C−64
cej szczegÛ³Ûw moøna znaleüÊ
w†instrukcji (READ ME.EXE) na
dyskietce do³¹czanej do kitu.
podczas programowania rÛwnieø
pamiÍci w†programatorze. Gdyby
linia PGM by³a zwarta z†mas¹,
wtedy adresy dla 27256 zawarte
by³yby w†zakresie $0000...$3FFF.
Tak jednak prawdopodobnie ni-
gdy nie bÍdzie, poniewaø niewy-
korzystane linie adresowe ìwiÍk-
szychî pamiÍci, a†co za tym idzie
linie steruj¹ce ìmniejszychî pa-
miÍci ³¹czymy z†+5V.
Emulator pod³¹czamy do kom-
putera przy wy³¹czonym zasilaniu
komputera i†emulatora. SondÍ
emulacyjn¹ moøna umieszczaÊ
w†uruchamianym systemie tylko
przy wy³¹czonym zasilaniu uru-
chamianego urz¹dzenia.
2. KrÛtszy czas dostÍpu do
pamiÍci emulatora (100ns) w†po-
rÛwnaniu z†EPROM (200ns).
3. Duøa obci¹øalnoúÊ dyna-
miczna, spowodowana d³ugimi
przewodami po³¹czeniowymi.
4. WiÍkszy pobÛr pr¹du przez
emulator w†porÛwnaniu do EPROM.
Cechy te mog¹ spowodowaÊ,
øe urz¹dzenie bÍdzie dzia³aÊ pra-
wid³owo z†emulatorem, przesta-
nie po zainstalowaniu pamiÍci
EPROM. W†dotychczasowej pracy
nie zauwaøy³em jednak jakich-
kolwiek nieprawid³owoúci w†pra-
cy emulatora. Zosta³ sprawdzony
w†wielu systemach opartych na
procesorach Z80 jak i†szybkim
6502.
S³awomir Skrzyñski, AVT
slawomir.skrzynski@ep.com.pl
Uwagi koÒcowe
Jeúli zastosujemy niepe³ne de-
kodowanie adresÛw, naleøy pa-
miÍtaÊ o†odpowiednim ustawieniu
offsetu (przycisk ìAdres EPROMî
dla Amigi lub klawisz F5 dla C-
64). Przyk³adowo, jeøeli w†uru-
chamianym systemie zastosujemy
pamiÍÊ 27256 (ze wzglÍdu na tÍ
sam¹ cenÍ co 27128, czy 2764),
procesor nadal bÍdzie obs³ugiwa³
tylko jej pocz¹tkowe 16kB. Dla
pamiÍci 27128 linia Vpp i†PGM
musi byÊ zwarta z†+5V. Wejúcie
PGM dla 27128 jest na wyprowa-
dzeniu, na ktÛrym jest bit adre-
sowy A14 dla 27256. Procesor
wystawiaj¹c adresy $0000...$3FFF
bÍdzie wiÍc odwo³ywa³ siÍ do
adresÛw EPROM zawartych w†za-
kresie $4000...7FFF. W†emulatorze
naleøy wiÍc ustawiÊ offset =$4000.
O†tym offsecie naleøy pamiÍtaÊ
OdmiennoúÊ kopii
w†stosunku do orygina³u
Emulator rÛøni siÍ od prawdzi-
wej pamiÍci EPROM kilkoma ce-
chami:
1. WiÍksza obci¹øalnoúÊ wyjúÊ
emulatora dziÍki buforom 74HCT245
od rzeczywistej dla pamiÍci EPROM.
Wzory p³ytek drukowanych w for-
macie PDF s¹ dostÍpne w Internecie
pod adresem: http://www.ep.com.pl/
?pdf/luty02.htm oraz na p³ycie
CD-EP02/2002B w katalogu PCB .
Elektronika Praktyczna 2/2002
25
32251609.043.png
Zgłoś jeśli naruszono regulamin