Konference: Počítač SHARP MZ-800 a emulátory

Od: Anonym
Datum: 23.5.2003 18:04
Předmět: Re: Popis MZ-IDE 16bit


Ahoj Petre,
 
Je to super, mam ale este jednu pripomienku: neslo by predsa len upravit radic tak, aby bolo mozne pouzit blokove instrukcie vstupu/vystupu? V podstate by islo o to, aby sa prepinanie medzi nizsim a vyssim bajtom automaticky odvijalo od signalu RD resp. WR (hlavne kvoli rychlosti - bez pouzitia blokovych instrukcii by sa cely prenos dat spomalil zhruba na polovicu). Ale samozrejme ak by kvoli tomu mala neumerne narast zlozitost celeho zapojenia, blokove instrukcie samozrejme ozeliem. Paci sa mi, ze cely interface je kompatibilny s povodnym 8 bitovym, takze je mozne pouzit ho v oboch rezimoch (rychlost na ukor kapacity (8 bit) vs. kapacita na ukor rychlosti (16 bit)).
 
Kazdopadne drzim palce a tesim sa na vysledky.
 
Marek.
----- Original Message -----
From: Petr Žydek (sharpemu tu byla ta zakroucena vec pandora.cz)
To: Konference Počítač SHARP MZ-800 a emulátory
Sent: Friday, May 23, 2003 8:49 AM
Subject: 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

 

--
Máte problémy s mobilem? Zkuste poradnu na Mobil.cz!


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