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)]


[1999 (1)] [2000 (168)] [2001 (733)] [2002 (459)] [2003 (654)] [2004 (224)] [2005 (105)] [2006 (182)] [2007 (201)] [2008 (294)] [2009 (363)] [2010 (782)] [2011 (522)] [2012 (642)] [2013 (442)]