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

Od: Petr Žydek
Datum: 2.6.2003 09:09
Předmět: novinky okolo 16bit IDE

novinky okolo 16bit IDE:


Dnes jsem se rozhodl předložit další
variantu 16ti bitového IDE, korekce byly
významnější než jsem čekal, proto bych
to rozvedl podrobněji.
Díky za doplňující informaci od Marka
Šmihly týkající se repetičních I/O
instrukcí, pro nezasvěcené sděluji
informaci, kterou jsem sám nevěděl:
obsah B registru nejprve dekrementuje
a pak se teprve odesílá na A8-A15!
Tento fakt nicméně nebrání funkčnosti
mého zařízení, je třeba k tomu
přihlížet při vymýšlení obsahu
Eprom-dekodéru. Pro sjednocení ovládání
ovšem navrhuju užít původních konvencí,
tj. je-li např. B=02h, pak se OUTem
odesílá JEDNA 16tice, sudá hodnota B
uvozuje 0. bajt, lichá 1. bajt (skutečnost,
že je před odesláním nultého bajtu B=01h,
se vyřeší tím, že dekodér zareaguje při
A7..A0=78h a A8=1, při odesílání 1. bajtu
je tomu naopak).


Teď ještě jednou definice I/O přenosů:

-při [OUT 78h a B je sudé] se posílá 0. bajt
 z 16ti bitového páru na DD0-DD7. Tento bajt
 se zachytí v registru, HDD není selektován.
-při následném [OUT 78h a B je liché] se
 zachycená hodnota z registru odbaví na DD0-DD7
 HDD a právě odesílaný 1. bajt přes transreceiver
 projde na DD8-DD15 HDD, disk je selektován.
 "HDD ani netuší, že data do něj tekoucí byla
 připravena nadvakrát", analogicky toto platí
 i pro čtení.
-při [IN 78h a B je sudé] je disk selektován,
 dodá na DD0-DD7 a DD8-DD15 JEDNU 16tici dat
 k převzetí procesorem. 0. bajt na DD0-DD7
 projde transreceiverem na datovou sběrnici
 počítače a zároveň dojde k zachycení bajtu
 z DD8-DD15 do registru.
-při [IN 78h a B je liché] disk není selektován
 a zachycená hodnota z registru se převezme
 do počítače jako 1. bajt. V tomto případě "HDD
 netuší, že počítač zbaštil data ve dvou cyklech".

-při libovolné I/O instrukci v rozsahu adres
 79-7Fh se blokuje přístup na DD8-DD15 HDD,
 řadič je průchozí pro datové přenosy
 počítač <--> DD0-DD7 HDD.
-jediné omezení se týká programové obsluhy
 v režimu 8 bitového IDE, B se musí udržovat
 sudé a čítání bajtů a dozor nad přenesenými
 bajty musí vhodným způsobem zastat program
 (to snad nevadí, těžiště zájmu snad přebere
 16ti bitová varianta a tento režim zůstane
 kvůli kompatibilitě a přenosnosti dat z disků
 naplněných "8 bitově")
-v režimu 16ti bitového IDE se B jen iniciuje,
 I/O instrukcemi s nepřímou adresou(!!!) se
 mění sám (myslím repetiční instrukce)


Po analýze předchozího jsem objevil závažnou
chybu v původním návrhu, pro zápis je IC pro
dolní část IDE ve funkci registru a IC pro horní
část IDE ve funkci transreceiveru; pro čtení
je tomu naopak!!! Je to proto, že zápis jsou
"dva bajty po sobě odeslané, do HDD najednou
přijaté" a čtení jsou "dva bajty přijaté
najednou po jednom procesorem zbaštěné" (to je
matoucí sdělení, že???).
Proto NELZE použít původně navrhovaných obvodů,
nový návrh stále počítá s třemi obvody a jmenují
se:
-27xxx (Eprom-dekodér, dále jen dekodér) kusů: 1
-74LS543 (8xtransreceiver-register) kusů:2

Možné varianty
-LS543 (HC543, HCT543, F543) jsou jen v pouzdrech
 DIP24-úzké, resp. 543 SMD miniaturní pouzdro
 pro povrchovou montáž, má smysl pro kombo desky,
 kde se musí šetřit místem.
 Má ho GES (podle víkendového stavu na fer-netu)
 za neskutečných cca 100Kč bez DPH!!!
 Obdobnou funkci plní LS646 a LS652, mají ovšem
 jiné řídící piny a registry jsou řízeny hranou,
 LS543 má registry typu LS573-latch transparent,
 což mi přijde více kompatýbl pro časování I/O
 operací. Ovšem bez výroby prototypu a malého
 zkušebního programu to nepůjde, neberu
 zodpovědnost absolutně za nic. Ze staré ISA karty
 mám doma 1ks F543, ještě jednoho a můžeme zkoušet.
-otázka dekodéru je mnohem širší: EPROM, EEPROM,
 PEROM nejrůznějších kapacit a pouzder

Přehled paměťových dekodérů
-2732 4Kx8
 (+) pouzdro DIP24, minimální návrh "3 IC" řadiče
     jako u 8 bitového s LS10
 (-) dnes horší dostupnost a cena=?
-27(C)64 8Kx8 DIP28
 (+) cena
 (-) větší pouzdro DIP28, dostupnost
-27128 16Kx8
 (+) jen kompatibilita (je to ROM Sharpa)
 (-) cena
 (-) větší pouzdro DIP28, dostupnost
 (-) není ve verzi CMOS
-27(C)256 32Kx8
 (+) cena, dostupnost
 (-) větší pouzdro DIP28
-27(C)512 64Kx8
 (+) cena, dostupnost
 (-) větší pouzdro DIP28
-28(C)64 8Kx8
 (+) EEPROM (pro odladění prototypu sqjelé)
 (+) pouzdro DIP28 i PLCC32 SMD (kombo desky)
 (?) cena, dostupnost
 (-) větší pouzdro DIP28
-29C256 32Kx8
 (+) PEROM, tj. nová generace EEPROM
     (pro odladění prototypu sqjelé)
 (+) pouzdro DIP28 i PLCC32 SMD
     (verze DIP28 se hodí pro experimentální
     vývoj ROMky Sharpa, pinově a obsahově
     kompatibilní při A14=1)
 (+) dostupnost, cena=?
 (-) větší pouzdro DIP28
-29C512 64Kx8
 (+) PEROM, tj. nová generace EEPROM
     (pro odladění prototypu sqjelé)
 (+) pouzdro PLCC32 SMD (jediné má smysl)
 (+) dostupnost, cena=?
 (+) k mání na starších HDD Seagate např.
     1.7GB (cvaká-li takovýto disk, máte
     ho zadarmo a paměť šikovný člověk
     snadno odebéře)

-27C1024 OTP 64Kx16
-29C1024 64Kx16
 speciální varianta pro fajnšmekry, jedná
 se o jedinkrát programovatelnou EPROM
 (27C1024), resp. PEROM (29C1024),
 organizace 64Kx16 umožňuje návrh
 dvoukanálového IDE z pěti obvodů, struktura
 s LS543 je pak na desce přítomna dvakrát,
 dekodér je jediný, selekce I/O portů např.
 68-6Fh by se prováděla z volných vyšších
 osmi výstupů Q8-Q15 paměti.

Poznámky
-u nejjednodušší varianty "sólo IDE"
 doporučuju 2x F543 DIP24, 1x 2732
 (záleží na jaké paměti z hlediska
 ceny a dostupnosti se MZ-fórum dohodne)
-u návrhů s rezervou pro FD/RD je nejlepší
 řešení 29C512 SMD a 2x F543 SMD
-základní schéma zapojení bude s 2732,
 návrhy s jinými EPROM musí mít piny A12
 a vyšší připojené na LOW, piny /WE, /PGM
 RD/B, Upp musí být na takových úrovních,
 aby byla paměť v režimu čtení (závisí na
 typu paměti)
-postupně uveřejním schéma, tabulky hodnot
 dekodéru (z hlediska signálů z CPU i
 z hlediska výstupních pinů přiřazených
 signálům do obou xx543 a /SELP do HDD)
-už něvládzem, jsem grogy; 2.6. 2003 0:36
Petr de Zviqov


Připojené soubory:

2732.pdf
AT29C1024.pdf

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