Konference: Počítač SHARP MZ-800 a emulátory
Od: | Petr Žydek |
Datum: | 23.5.2003 09:49 |
Předmět: | Popis MZ-IDE 16bit |
Popis MZ-IDE 16bit: |
Rozhraní IDE 16bit odpovídá přesně konvencím návrhu Zdeňka Adlera na
http://www.mz-800.aktualne.cz
Původní návrh počítá s ovládáním disku přes I/O porty 78h-7F. Jediný z nich (78h)
je určen pro vlastní přenosy dat a využívá při tom v ideálním případě 16 datových
vodičů. Adresace zařízení je však neúplná, v podstatě se testuje jen 7. adresový
bit, chip select disku je aktivní při jakékoliv I/O instrukci v rozsahu adres
00h-7Fh. To je jednoduché (a tedy geniální) pro jednoúčelovou desku. Náhrada
logického obvodu 74LS10 jiným, např. 74LS138 (varianta Marek Šmihla) tento
nedostatek řeší, jen je třeba vhodně obsadit příslušné vstupní adresní a selekční
vývody tak, aby to "vyšlo jak potřebuju". I tak je ale adresace zařízení neúplná,
3 vstupy A, B, C tvoří 3bitový kód, který se projeví jako log. LOW na jednom
z výstupů, pokud jsou na třech selekčních vstupech hodnoty LOW, LOW, HIGH.
Pokud chceme přesně selektovat celý I/O prostor, potřebujeme minimálně 11 vstupních
pinů (AD0-AD7, /IORQ, /RD, /WR). Tomu vyhoví jen dva dekodéry 74LS138 v kaskádě
nebo pameť EPROM minimálně 2716 2kB. Ta je však dnes špatně dostupná, vyžaduje
programování s Upp=25V, domácí programátory s Upp 12V a 21V s ní nepočítají. Proto
je rozumné minimum EPROM 2732 4kB. Má 12 vstupních pinů A0-A11 a 8 datových výstupů
D0-D7, z nichž každý může být chip selektem pro různé obvody řadiče(ů). Je-li
argumentem rozměrnost součástky (s dvěma 74LS138 myslím srovnatelná), dnes existují
varianty ve čtvercovém pouzdře PLCC 32 SMD, jsou k nim i patice! Univerzální
je EPROM 27(C)64 8kB, existuje varianta 28C64 EEPROM PLCC a snad i PEROM s Upp=5V
29C64 (pokud neexistuje, vyhoví 29C256 32kB).
Výhody:
-13 vstupních vodičů pokrývá celý I/O prostor
(lze zahrnout i /WR, /RD, /IORQ)
-8 datových výstupů pro selekci obvodů
(rezerva je nutná pro kombo desky FD-HD, FD-RD, HD-RD!!!)
-obvod v patici lze vyměnit
-pokud "česká I-netová normalizační skupina" změní definici I/O adres
je náprava snadno realizovatelná záměnou EPROM s jiným obsahem, řešení
s dekodéry 74LS138 by znamenalo nový návrh a stavbu desky
(pro čtení dat z D8-D15 HDD jsem zvolil z množiny 70h-77h)
-cena nové paměti: sranda oproti mým poststudentským letům 90-94
-Epromek jsou všude mraky: faxy, tiskárny, PC komponenty (všechno z vyřazených dílů)
2732: karty Hercules/MDA, CGA
2764: XT BIOS
27128: karta EGA, LAN-ISA
27256, 27512: karta VGA, AT BIOSy, tiskárny, faxy
28C64 PLCC32: GES, GM electronic
29C256 PLCC32: -----||----------
29C512 PLCC32: modemy, CD-ROMky, HD Seagate např. 1.7GB
-ramdisk s DRAM, autoinkrementem a dvojí adresací E9h-EBh a F8h-FAh vyžaduje pro
selekci jednotlivých funkcí i /MREQ a /M1, pak je 2764 8kB minimum a nejefektnější
řešení(?)
-definitivní verzi obsahu paměti lze publikovat, pokud by nějaká ta kombo deska
byla úspěšná (chodí to výborně, ale (ne)seje to!!!) a došlo by na nějakou
(ne)výdělečnou malosériovku jako u adaptéru IDE-->Compact Flash, bylo by to sqjelé!
-návrh desky jsem měl hotov dříve, než jsem začal dumat o obsahu EPROM-dekodéru
(Je ještě jedno "dokonalé řešení", tím je použití MCU řady 8052 s programem
v EEPROM, má 4 brány a byl by ideální jako transparetní obvod pro všechny I/O
adresy HDD kromě datové 78h, zde by plnil funkci převodníku dvoubajtového přenosu
z MZ-800 na 16ti bitová data pro HDD a naopak. Ale kdo by se s tím programoval,
bylo by to ve spánku, na WC, i při "sdílení se" s přítelkyní? Tak to je sousto
jen pro silné pgm. fanatiky.)
-už mě nic nenapadá
Popis rozhraní IDE 16bit
Obvod 74LS245 lze aplikovat i na MZ-IDE Zdeňka Adlera, propouští obousměrně data
(D0-D7) na dolních 8bitů konektoru IDE. Nutný pro externí disky 3.5" a 2.5", které
nejsou napájeny z počítače, již jsem četl o kolapsu počítače zapnutém dříve než
externí HDD. Pro interní (MZ-800 napájené) 2.5" HDD není zapotřebí a ušetří se tím
jeden obvod, to neplatí pro univerzální zapojení na desku s plošnými spoji
(včetně kombo desek) a s možností připojení externího 3.5" HDD. Má ho každá AT
deska 286-Pentium, nový není drahý.
Obvod EPROM 27xxx slouží jako adresový dekodér k selekci jednotlivých obvodů
MZ-IDE 16bit. Volné datové výstupy jsou rezervovány pro FD, resp. RD, pokud budou
na jedné desce. Pro In/Out 78-7F uvede Q0 do log. LOW, pro In 78h uvede Q1 do
log. LOW, pro In 77h uvede Q2 do log. LOW. Dostupnost: viz sloupek o pamětech
Poznámka: adresu portu 77h jsem navrhl já
Obvod 74LS541 je osmibitový jednosměrný neinvertující zesilovač+Schmitt trigger.
Jeho úkolem je dopravit vyšší datový bajt z počítače do HDD:
LD B, "vyšší bajt" ; vyšší bajt vystoupí na AD8-AD15
LD C,78h ; adresa datového portu HDD
LD A, "nižší bajt" ; nižší bajt vystoupí na D0-D7
OUT (C),A ; LS245 propustí nižší bajt, LS541 vyšší bajt
Poznámka: bohužel nelze použít instrukce OUTI, OTIR atd. - používají reg. B jako čítač;
jednou I/O instrukcí se provede 16bitový přenos dat
Obvod 74LS574 je 8bitový registr řízený hranou CLK. Má dvě funkce - zachytí vyšší
datový bajt při čtení z HDD a následně vybaví zachycený obsah do počítače:
IN (78h),A ; obvodem LS245 vstoupí nižší bajt na D0-D7
; LS574 zachytí vyšší bajt z HDD
.
.
.
IN (77h),A ; obvodem LS574 vstoupí zachycený vyšší bajt z HDD na D0-D7
Poznámka: pokud nesouhlasí časování při "zachytávání", snad pomůže 74LS573
s invertorem (tr. BC237) na vstupu LE (zde CLK); při selekci LS574 je
na pinu CLK log. LOW a náběžná hrana CLK při ukončování instrukce
strobuje data do registru, LS573 je při log. LOW na pinu LE pasivní,
po změně na HIGH propouští data ze vstupů na výstupy a sestupnou hranou
LE zachytí data do registru
uvidíme co prototyp
Petr de Zviqov
Ostatní příspěvky vlákna:
[2003/1 (22)] [2003/2 (25)] [2003/3 (14)] [2003/4 (20)] [2003/5 (73)] [2003/6 (108)] [2003/7 (88)] [2003/8 (81)] [2003/9 (146)] [2003/10 (60)] [2003/11 (12)] [2003/12 (5)]