IDE Interface mit 74xx245 an Systembus koppeln

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

Reply to
Michael Dreschmann
Loading thread data ...

Klar, das Kabel alleine hat schon eine Kapazitaet und verschleift dir die Signale. Von Reflexionen gar nicht zu reden.

Du beschreibst hier so ungefaehr den originalen IDE-Adapter. Mehr als eine Ladung Puffer (damit der ISA-Bus nicht ausflippt) war das nicht.

Gerrit

Reply to
Gerrit Heitsch

In article , snipped-for-privacy@gmx.de (Michael Dreschmann) writes: .

|> 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
Reply to
Georg Acher

Hi!

Wunderbar, dann vermute ich mal, dass das so funktionieren solle... :) Danke!

Michael

Reply to
Michael Dreschmann

Hallo!

Erstmal Danke für die Antwort.

nach

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...

nicht

lohnt

Ok, das wusste ich nicht. Hab's rein nach dem Speed-Gesichtspunkt betrachtet.

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

Reply to
Michael Dreschmann

Was ist denn ein HC245 dessen DIR und OE/ Signal man dauerhaft setzt? Evtl. ein 1:1 Treiber?

SCNR

-- Matthias Weißer snipped-for-privacy@matwei.de

formatting link

Reply to
Matthias Weißer

Hi!

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

Reply to
Michael Dreschmann

Ok, ich denke dann ist alles klar.

Vielen Dank nochmal

Michael

Reply to
Michael Dreschmann

auch

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*

Reply to
Jo'ogn Oppermann

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.