symulator EPROM i EEPROM do PC 1.pdf

(361 KB) Pobierz
32043795 UNPDF
Symulator EPROM/EEPROM do wszystkich typów komputerów
P R O J E K T Y
Symulator EPROM/EEPROM
do wszystkich typów
komputerów, część 1
AVT−870
OpisÛw takich emulatorÛw
pamiÍci publikowaliúmy wiele.
Czym wyrÛønia siÍ ten
emulator? Tym, øe
wyposaøono go w†przelotowy
port RS232. Koniec
ìwachlowaniaî wtyczkami! Bez
problemu moøna pod³¹czyÊ
modem czy inne urz¹dzenie
z†przelotowym portem RS232
- cÛø za wygoda!
Symulator wspÛ³pracuje z†kaø-
dym komputerem wyposaøonym
w†port RS232C. Nie jest wymaga-
ne øadne specjalne oprogramowa-
nie! Wystarcza systemowa komen-
da COPY! Warto zaznaczyÊ, øe na
pomys³ budowy urz¹dzeÒ wspÛ³-
procuj¹cych z†kaødym kompute-
rem (RS-232C i†COPY) wpad³ juø
ktoú inny. Ale na przelotowy port
nie, a†przynajmniej nic mi na ten
temat nie wiadomo.
Kontrowersyjna moøe byÊ pro-
ponowana przeze mnie emulacja
pamiÍci EEPROM. Wynika to
z†faktu, øe EEPROM-y maj¹ wy-
prowadzenia zgodne z†pamiÍciami
RAM. Chodzi tu o†liniÍ adresow¹
A14, ktÛra w†EPROM-ach spe³nia
rolÍ linii A15. Czasem zachodzi
potrzeba emulowania EEPROM,
np. gdy budujemy system z†t¹
pamiÍci¹ (bez EPROM). Jakie od-
niesiemy korzyúci:
- unikniemy k³opotliwego prze-
k³adania pamiÍci z†urz¹dzenia
do programatora;
- EEPROM ma ograniczon¹ liczbÍ
zapisÛw, a†wiÍc bÍdziemy j¹
oszczÍdzaÊ;
- zyskujemy na czasie (w EEP-
ROM kasowanie bajtu moøe
trwaÊ nawet 10ms);
- moøemy bez k³opotu podejrzeÊ
zawartoúÊ EEPROM (wskutek
czego wiemy co program zapi-
suje w†pamiÍci, co jest bardzo
pomocne przy uruchamianiu
systemu).
Wiem, øe moøna tak zbudo-
waÊ urz¹dzenie i†napisaÊ pro-
gram ³aduj¹cy, øe procesor bÍ-
dzie wczytywa³ program z†kom-
putera do EEPROM w†urz¹dze-
niu poprzez RS232. Ale, co
zrobiÊ, gdy interfejs ten jest
Charakterystyka symulatora:
przelotowy port RS232C szybkość transmisji
od 2400 do 57600 bodów,
maksymalny czas transmisji (64KB) 35
sekund (przy 75600 bodów),
współpraca z każdym komputerem
wyposażonym w port RS (także AVT−2250!),
przyjmowanie danych w formacie INTELHex
i binarnym,
symulacja pamięci EPROM 2716...27512,
symulacja pamięci EEPROM 2816...28256,
sygnał RESET do uruchamianego systemu
(aktywny stan niski i wysoki),
bufory na liniach adresowych i danych.
Elektronika Praktyczna 6/2000
65
32043795.051.png
Symulator EPROM/EEPROM do wszystkich typów komputerów
potrzebny do czegoú in-
nego? Dobrym wyjúciem
jest symulator EEPROM.
Rys. 1. Schemat elektryczny symulatora.
Zasada dzia³ania
ZacznÍ od mojego wy-
nalazku - schemat na rys.
1 . Sygna³y danych, nada-
wane w†standardzie RS-
232C (z³¹cze G1 typu DB9-
F), s¹ konwertowane do
poziomu sygna³Ûw TTL
w†uk³adzie MAX232 i†kie-
rowane do wejúcia RxD.
Ponadto przechodz¹ do
wtyku ³¹cz¹cego symulator
z†kolejnymi urz¹dzeniami
(z³¹cze G2 typu DB9-M).
Dane przychodz¹ce z†G2
za poúrednictwem
MAX232 s¹ podawane na
multiplekser 74HC157.
W†stanie spoczynku dane
te pojawiaj¹ siÍ na jego
wyjúciu, st¹d przez
MAX232 kierowane s¹ do
gniazda G1. Pozosta³e li-
nie s¹ bezpoúrednio po³¹-
czone pomiÍdzy G1, a†G2.
Jak wiÍc z†tego wynika,
interfejs jest przeüroczys-
ty, tak jakby gniazda G1
i†G2 by³y ze sob¹ po³¹czo-
ne. Procesor US2 moøe
ìpods³uchiwaÊî dane wy-
sy³ane z†komputera. Gdy
napotka odpowiedni¹ sek-
wencjÍ multiplekser od³¹-
czy gniazdo G2, a†przy³¹-
czy liniÍ TxD procesora
US2. Wtedy dane przycho-
dz¹ce z†G2 bÍd¹ ìgin¹Êî,
natomiast dane wysy³ane
z†procesora pojawi¹ siÍ na
G1. Stan ten jest sygnali-
zowany úwieceniem diody
LED D1 ìRS aktywnyî
i†trwa do czasu odebrania
przez US2 sekwencji od-
³¹czaj¹cej go od magistrali
RS lub po 10 sekundach
ìciszyî na porcie RS.
W†czasie gdy uk³ad nie
jest zasilany, przekaünik
PK zwiera liniÍ, ktÛra
przechodzi przez multi-
plekser. DziÍki temu do
poprawnego dzia³ania
urz¹dzeÒ pod³¹czonych do
RS-a nie jest wymagane
w³¹czenie zasilania symu-
latora. Uproszczenie portu
(nie od³¹czanie linii na-
dawczej od G2) na zalety
66
Elektronika Praktyczna 6/2000
32043795.056.png 32043795.057.png 32043795.058.png 32043795.001.png 32043795.002.png 32043795.003.png 32043795.004.png 32043795.005.png 32043795.006.png 32043795.007.png 32043795.008.png 32043795.009.png 32043795.010.png 32043795.011.png 32043795.012.png 32043795.013.png 32043795.014.png 32043795.015.png 32043795.016.png 32043795.017.png 32043795.018.png 32043795.019.png 32043795.020.png 32043795.021.png 32043795.022.png 32043795.023.png 32043795.024.png 32043795.025.png 32043795.026.png 32043795.027.png 32043795.028.png 32043795.029.png 32043795.030.png 32043795.031.png 32043795.032.png 32043795.033.png 32043795.034.png 32043795.035.png 32043795.036.png 32043795.037.png 32043795.038.png 32043795.039.png 32043795.040.png 32043795.041.png 32043795.042.png 32043795.043.png 32043795.044.png 32043795.045.png 32043795.046.png 32043795.047.png 32043795.048.png 32043795.049.png 32043795.050.png 32043795.052.png 32043795.053.png 32043795.054.png
Symulator EPROM/EEPROM do wszystkich typów komputerów
i†wady. Wad¹ jest to, øe urz¹dze-
nia przy³¹czone za symulatorem
odbieraj¹ dane nie przeznaczone
dla nich, zaú zalet¹ to, øe moøna
przy³¹czyÊ kilka urz¹dzeÒ do ma-
gistrali i†sterowaÊ nimi rÛwno-
czeúnie. No to ìnowoúciî mamy
za sob¹.
Za³Ûømy, øe dane zosta³y wy-
s³ane/pobrane z†RAM przez proce-
sor i†uk³ad przejdzie w†tryb EMU-
LACJI. Wtedy to na linii
LOAD_EMUL wyst¹pi poziom nis-
ki. Procesor ustawi poziom wysoki
na porcie P2 (ìs³aboî podci¹gany
do +5V) co moøna traktowaÊ jako
stan trzeci. P0 pozostanie ìp³ywa-
j¹cyî czyli w†stanie trzecim. Wyj-
úcia US3 znajd¹ siÍ w†stanie trze-
cim. Uruchamiany systemma do-
stÍp do RAM za poúrednictwem
buforÛw US7, US8, US9 i†uk³adu
GAL. Linia YRD moøe sterowaÊ
lini¹ RD uk³adu RAM. TrochÍ
d³uøej zatrzymamy siÍ przy linii
WR RAM. Jeúli emulowana jest
pamiÍÊ EPROM, to dostÍp do tej
linii jest zablokowany (przez we-
wnÍtrzne bramki GAL-a). Jeúli na-
tomiast emulujemy EEPROM, to
pamiÍÊ moøe byÊ zapisywana syg-
na³em WR (linia A14 dla EEPROM
2864/28256, linia A11 dla 2816).
O†buforach US8/US9 nie ma wiele
do mÛwienia. DziÍki bramkom
Schmita poprawiane s¹ zbocza
sygna³Ûw przechodz¹cych d³ugimi
(jak na technikÍ mikroprocesoro-
w¹) przewodami. TrochÍ bardziej
zagmatwane jest dzia³anie bufora
US7. Brama otwiera siÍ, gdy na
wejúciu OE i†CE sondy emulacyj-
nej pojawi siÍ poziom niski (na
wyjúciu YCE GAL-a pojawia siÍ
stan niski przekazywany na wej-
úcie G bramy). Linia DRI bramy,
steruj¹ca kierunkiem transmisji jest
sterowana sygna³em WR (zapisu
do pamiÍci RAM). W†trybie £ADO-
WANIA poziom na wejúciu G jest
wysoki (za spraw¹ wyjúcia YCE
GAL-a), dziÍki czemu brama jest
nieaktywna i†uruchamiany system
nie fa³szuje danych zapisywanych
do RAM. GAL pe³ni jeszcze jedn¹
waøn¹ funkcjÍ. Zaleønie od stanu
wejúÊ A, B, C, D†przepuszcza,
b¹dü nie sygna³y A11..A15 do
pamiÍci RAM. I†tak np przy emu-
lowaniu pamiÍci 2764 na liniach
A15, A14 i†A13 pamiÍci jest
poziom niski niezaleønie od stanu
na wejúciach adresowych z³¹cza
emulacyjnego. Jeúli natomiast wy-
brany jest tryb emulacji pamiÍci
EEPROM, zamieniana jest funkcja
wejúcia A15. Wtedy spe³nia ono
funkcjÍ wejúcia A14. Po prostu
sygna³ A15 ze z³¹cza emulacyjnego
jest przesy³any do wejúcia A14
pamiÍci RAM, natomiast na A15
zawsze wystÍpuje poziom niski.
W†przypadku emulowania uk³a-
dÛw 2716, 2732 i†2816 sondÍ
emulacyjn¹ naleøy umieúciÊ
w†podstawce tak, aby cztery gÛrne
wyprowadzenia nie by³y do nicze-
go pod³¹czone.
Jak widaÊ GAL spe³nia wiele
funkcji. Gdyby zast¹piÊ go uk³a-
dami TTL trzeba by by³o ich
oko³o 10 szt. Na koniec wspomnÍ,
øe w†uk³adzie uøyto dwie pamiÍci
o†pojemnoúci 32KB. Aktywny
uk³ad wybiera tranzystor T3
pe³ni¹cy funkcjÍ inwertera steru-
j¹c naprzemiennie wejúcia CE.
Uk³ad US10 steruje diodami LED.
Sta³a czasowa RC jest tak dobra-
na, øe w†czasie zapisu/odczytu
diody D2, D3 nie migaj¹, lecz
úwiec¹ pe³n¹ jasnoúci¹.
S³awomir Skrzyñski
Tryb £ADOWANIA
Zak³adamy, øe procesor jest
przy³¹czony do magistrali. Po
otrzymaniu sekwencji prze³¹czaj¹-
cej w†tryb ³adowania, linia
LOAD_EMUL zmieni stan na wy-
soki (w czasie emulacji, czyli po
resecie jest poziom niski). Wyjúcia
buforÛw US7, US8, US9 i†uk³adu
GAL bÍd¹ prze³¹czone w†stan trze-
ci. Linia RD pamiÍci US4 i†US5
zostanie podci¹gniÍta do poziomu
wysokiego przez rezystor R13.
Wyjúcia zatrzasku US3 zostan¹
uaktywnione. DziÍki temu proce-
sor US2 moøe zapisywaÊ, odczy-
tywaÊ dane do pamiÍci RAM.
Uk³ady s¹ traktowane jako ze-
wnÍtrzna pamiÍÊ programu. Jak to
siÍ dzieje, øe najpierw jest prze-
sy³ana m³odsza czÍúÊ adresu, moø-
na poczytaÊ w†literaturze o†8051.
Do RAM procesor ma dostÍp
instrukcjami movx A,@dptr i† movx
@dptr,A . Tryb ³adowania jest w³¹-
czany tylko w†czasie odczytu/
zapisu pamiÍci RAM przez pro-
cesor US2.
Tryb £ADOWANIA jest w³¹-
czany po otrzymaniu danych
w†formacie IntelHex i†w†czasie od-
czytu po instrukcji @READ lub
@MON. W†czasie wydawania in-
nych instrukcji (np zmiana typu
emulowanej pamiÍci) symulator
znajduje siÍ w†trybie EMULACJI.
Wyj¹tkiem jest instrukcja @RE-
SET, po ktÛrej na 0,5s. urz¹dzenie
przechodzi w†tryb £ADOWANIA.
DziÍki temu (tak jak podczas
zapisu RAM) tranzystory T1, T2
znajduj¹ siÍ w†stanie aktywnym,
wystawiaj¹c sygna³ reset do uru-
chamianego systemu (T1 aktywny
niski, T2 aktywny wysoki).
Z†zerowaniem trzeba uwaøaÊ.
Jeúli uruchamiany system posiada
zewnÍtrzny uk³ad WATCHDOG
lub RESETu ze specjalizowanym
uk³adem scalonym, to trzeba
sprawdziÊ czy moøna do³¹czyÊ
zewnÍtrzny uk³ad zerowania. Nie
kaødy uk³ad to umoøliwia i†mo-
øemy zniszczyÊ go (tranzystory
T1, T2 raczej wytrzymaj¹).
Wzory p³ytek drukowanych w for-
macie PDF s¹ dostÍpne w Internecie
pod adresem: http://www.ep.com.pl/
pcb.html oraz na p³ycie CD-EP06/
2000 w katalogu PCB .
F
C2, C3, C8, C13..C18: 100nF
C5, C6: 27pF
C9..C12, C19: 10
F
C20, C21: 22nF
Rezystory
R1, R3, R5, R6, R14: 10k
R2, R13: 1k
R7..R10: 470
R11, R12: 100k
Półprzewodniki
D1..D4: LED
D5, D6: 1N4148
T1, T3: BC238
T2: BC308
US1: 7805
US2: AT89C51
US3: 74HC573
US4, US5: 62256
US6: GAL20V8
US7..US9: 74HC245
US10: 74HCT04
US11: 74HC157
US12: MAX232
Różne
PK1: EDR 101C−5V
Q1: 11.059MHZ
G1: DB9M kątowe do druku
G2: DB9F kątowe do druku
Z−WS34G
Elektronika Praktyczna 6/2000
67
WYKAZ ELEMENTÓW
Kondensatory
C1, C4, C7: 47
R4: 2,2k
32043795.055.png
Zgłoś jeśli naruszono regulamin