IDE Interface mit 74xx245 an Systembus koppeln

M

Michael Dreschmann

Guest
Hallo,

ich habe hier ein Experimentierboard mit einem M16C 62 an dessen
externen Daten-/Adressbuss 2x SRAM 512Kx8, ein Netzwerkcontroller
(CS8900A) und ein USB Controller (USBN9604) angeschlossen sind.
Nun wollte ich die Schaltung gestern vervollständigen, indem ich noch
eine IDE Festplatte an den Bus gehangen habe.
Die Platte liess sich auch ansprechen, allerdings funktioniert dann
der RAM nicht mehr (auch schon nicht mehr, wenn ich nur ein normales
IDE Kabel ohne Festplatte am anderen Ende anschliesse)
Getestet war das bei 8MHz Busfrequenz.
Bei 4 MHz hingegen funktionieren RAM und Festplatte (auch sogar noch
ein CD-ROM LW) zusammen einwandfrei.
Meine Vermutung ist nun, dass die IDE Geräte den Bus so stark
belasten, dass die Signalflanken für den RAM zu langsam werden.
Also habe ich mir überlegt, den IDE Daten Zweig (16 bit) mit zwei
74xx245 elektrisch abzukoppeln. Ausserdem würde ich noch die
Adressleitungen mit einem 74xx04 verstärken.
Das DIR Signal der 74xx245 würde ich an die /RD Leitung des
Systembusses anschliessen, so dass nur im Falle eines Lesens von der
Platte die Bustransceiver deren Datenword auf den Systemdatenbus
weiterleiten. Das /OE Signal der 74xx245 würde ich aus einer AND
Verknüpfung der beiden Chipselect Signale für den IDE Bus nehmen.
Meine Frage ist, ob das so funktioniert, ob "man das so macht" oder
ob's da noch eine bessere Alternative gibt.
Ausserdem gibt's da ja verschiedene Gattertechnologien (HC, HCT, AC,
ACT, usw.)
Jetzt habe ich gestern bemerkt, dass AC ja mehr als doppelt so schnell
ist, wie HC. Ich dachte immer, HC wäre so das schnellste.
Spräche irgendwas dagegen AC zu verwenden?

Vielen Dank schonmal,

Michael
 
Michael Dreschmann wrote:
ich habe hier ein Experimentierboard mit einem M16C 62 an dessen
externen Daten-/Adressbuss 2x SRAM 512Kx8, ein Netzwerkcontroller
(CS8900A) und ein USB Controller (USBN9604) angeschlossen sind.
Nun wollte ich die Schaltung gestern vervollständigen, indem ich noch
eine IDE Festplatte an den Bus gehangen habe.
Die Platte liess sich auch ansprechen, allerdings funktioniert dann
der RAM nicht mehr (auch schon nicht mehr, wenn ich nur ein normales
IDE Kabel ohne Festplatte am anderen Ende anschliesse)
Klar, das Kabel alleine hat schon eine Kapazitaet und verschleift
dir die Signale. Von Reflexionen gar nicht zu reden.


Also habe ich mir überlegt, den IDE Daten Zweig (16 bit) mit zwei
74xx245 elektrisch abzukoppeln. Ausserdem würde ich noch die
Adressleitungen mit einem 74xx04 verstärken.
Du beschreibst hier so ungefaehr den originalen IDE-Adapter.
Mehr als eine Ladung Puffer (damit der ISA-Bus nicht ausflippt)
war das nicht.

Gerrit
 
In article <3f645a26.5327595@news.rhein-zeitung.de>,
michaeldre@gmx.de (Michael Dreschmann) writes:
..
<Treiber für IDE>
|> Meine Frage ist, ob das so funktioniert, ob "man das so macht" oder
|> ob's da noch eine bessere Alternative gibt.

Doch, das sollte schon so gehen. Bedenke aber, dass RD und WR die
qualifizierenden Signale bei IDE sind, d.h. RD/WR sollten schon ein Weilchen nach
CS aktiv werden, sonst werden falsche Daten übernommen.

|> Ausserdem gibt's da ja verschiedene Gattertechnologien (HC, HCT, AC,
|> ACT, usw.)
|> Jetzt habe ich gestern bemerkt, dass AC ja mehr als doppelt so schnell
|> ist, wie HC. Ich dachte immer, HC wäre so das schnellste.
|> Spräche irgendwas dagegen AC zu verwenden?

Ja, deine Nerven... Ausserdem hast du keine Funklizenz :) Im Ernst: AC ist nicht
nur schnell, sondern hat auch extrem steile Flanken. Die erzeugen schon auf nur
10cm Kabel ohne weitere Vorkehrungen Reflexionen (Über/Unterschwingen), die
wahrscheinlich immer noch nicht ausgeklungen sind, wenn RD/WR aktiv wird.
Umgehen kann man das nur mit Terminierung, allerdings kostet Serienterminierung
wieder viel Zeit und parallele Terminierung 2 Widerstände pro Leitung, d.h. lohnt
sich nicht wirklich für IDE im PIO-Mode.

Wenn du nicht auf den Strom achten musst, kannst du 74F245 nehmen. Die sind auch
recht schnell, aber insgesamt pflegeleichter. Aber bei 8MHz Takt sehe ich
eigentlich keinen Grund, warum ein HC nicht auch gehen sollte, so ein Zugriff
zieht sich ja auch über mehrere Takte hin.

--
Georg Acher, acher@in.tum.de
http://wwwbode.in.tum.de/~acher
"Oh no, not again !" The bowl of petunias
 
Hi!

Also habe ich mir überlegt, den IDE Daten Zweig (16 bit) mit zwei
74xx245 elektrisch abzukoppeln. Ausserdem würde ich noch die
Adressleitungen mit einem 74xx04 verstärken.

Du beschreibst hier so ungefaehr den originalen IDE-Adapter.
Mehr als eine Ladung Puffer (damit der ISA-Bus nicht ausflippt)
war das nicht.
Wunderbar, dann vermute ich mal, dass das so funktionieren solle... :)
Danke!

Michael
 
Hallo!

Erstmal Danke für die Antwort.

|> Meine Frage ist, ob das so funktioniert, ob "man das so macht" oder
|> ob's da noch eine bessere Alternative gibt.

Doch, das sollte schon so gehen. Bedenke aber, dass RD und WR die
qualifizierenden Signale bei IDE sind, d.h. RD/WR sollten schon ein Weilchen nach
CS aktiv werden, sonst werden falsche Daten übernommen.
Klar, aber RD/WR bzw. CS0,1 verändere ich mit dieser Schaltung ja gar
nicht, die werden ja vom M16C generiert.
Wenn dieser auf den ext. Bus zugreift, setzt er bei der Vorderflanke
des Taktes die CS und Adressleitungen und bei der Rückflanke die RD
bzw WR Leitung.
Da fällt mir auf, dass ich neben den 3 Adressleitungen ja auch RD und
WR verstärken muss. Bei den Adressleitungen wäre das mit der Laufzeit
ja nicht so kritisch, da diese eh schon in der ersten Hälfte eines
Taktes gesetzt werden. Aber WR bzw. RD sollten natürlich möglichst
schnell weitergegeben werden.
Was ist da jetzt sinnvoller? 2 Inverter hintereinander oder einen
"1:1" Treiber? (gibts sowas überhaupt "1:1"? Also als 74HC oder so?)
Inverter sollen ja recht flott sein...

|> Spräche irgendwas dagegen AC zu verwenden?

Ja, deine Nerven... Ausserdem hast du keine Funklizenz :) Im Ernst: AC ist nicht
nur schnell, sondern hat auch extrem steile Flanken. Die erzeugen schon auf nur
10cm Kabel ohne weitere Vorkehrungen Reflexionen (Über/Unterschwingen), die
wahrscheinlich immer noch nicht ausgeklungen sind, wenn RD/WR aktiv wird.
Umgehen kann man das nur mit Terminierung, allerdings kostet Serienterminierung
wieder viel Zeit und parallele Terminierung 2 Widerstände pro Leitung, d.h. lohnt
sich nicht wirklich für IDE im PIO-Mode.
Ok, das wusste ich nicht. Hab's rein nach dem Speed-Gesichtspunkt
betrachtet.

Wenn du nicht auf den Strom achten musst, kannst du 74F245 nehmen. Die sind auch
recht schnell, aber insgesamt pflegeleichter. Aber bei 8MHz Takt sehe ich
eigentlich keinen Grund, warum ein HC nicht auch gehen sollte, so ein Zugriff
zieht sich ja auch über mehrere Takte hin.
Naja, wie oben beschrieben zieht sich so ein Zugriff über genau einen
Takt hin. Takt-H-Pegel: Adressen und CS Leitungen setzen,
Takt-L-Pegel: WR/RD Leitung und Daten lesen/schreiben.
(Vorrausgetzt man macht kein Waitstates an)
Ausserdem würde ich später vielleicht (wenn ich eine Schaltung, welche
für einen Schreibvorgang auf den CS8900A ein lang genuges /RDY Signal
generiert gefunden habe) gerne den Takt noch ein bischen höher
Schrauben. Der M16C kann max. 16 MHz. Das macht der RAM aber nicht
mehr mit. Aber so 12 MHz sollten vielleicht schon drin sein.
Es wäre also schön, wenn die Platte da auch noch läuft.
Da ich aber auch deren /IO-Ready Signal an den M16C abgeschlossen
habe, sollte das doch eigentlich mit HC gehn. Sie muss halt nur das
IORDY Signal früh genug setzten.

Michael
 
Michael Dreschmann wrote:
Was ist da jetzt sinnvoller? 2 Inverter hintereinander oder einen
"1:1" Treiber? (gibts sowas überhaupt "1:1"? Also als 74HC oder so?)
Inverter sollen ja recht flott sein...
Was ist denn ein HC245 dessen DIR und OE/ Signal man dauerhaft setzt? Evtl.
ein 1:1 Treiber?

SCNR


--
Matthias Weißer
matthias@matwei.de
http://www.matwei.de
 
Hi!

Was ist denn ein HC245 dessen DIR und OE/ Signal man dauerhaft setzt? Evtl.
ein 1:1 Treiber?
Naja, da ist die Frage, ob der auch einigermassen schnell ist.
Ich weiss ja jetzt nicht, durch wie viele Gatter da das Signal laufen
muss. Eventuell wären da zwei Inverter hintereinander schneller.
Das werd ich morgen mal genau nachsehen...

Michael
 
Ok, ich denke dann ist alles klar.

Vielen Dank nochmal

Michael
 
Georg Acher wrote:
Wenn du nicht auf den Strom achten musst, kannst du 74F245 nehmen. Die sind auch
recht schnell, aber insgesamt pflegeleichter. Aber bei 8MHz Takt sehe ich
eigentlich keinen Grund, warum ein HC nicht auch gehen sollte, so ein Zugriff
zieht sich ja auch über mehrere Takte hin.
ich hatte damals in meinen Atari ST ein IDE interface gebastelt.
es war zwar nicht der Datenbus, aber die IORD/WR wollten sich gar
nicht mit dem F-Typen treiben lassen |:
hat mir jedes mal den Root-Block beim Testen gekillt...
HC (IIRC) tut's nun. Hat mich einige Abende beschäftigt *grummel*
 

Welcome to EDABoard.com

Sponsor

Back
Top