Noch eine Frage zur Festplatte

Gast #93497
Lesenswert?

Hi,

ich hab mich mimtlerweile mal durch den ersten teil der ata specs
gelesen.
nun würd ich gern mal den ersten versuch starten und
zwar will ich die drive-specs auslesen, also sprich
das commando "identify drive" ausführen lassen.

so wie ich das verstanden hab muss ich dabei wie folgt vorgehen:

1. cs0: 1    (low)
   cs1: 0    (high)
   da2: 1    (high)
   da1: 1    (high)
   da0: 1    (high)

   setzen

2. (mit ein paar ns verzögerung)
   d15-d8: 0 (low)
   d7-d0:  0xec
   setzen.

anschließend sollte die platte bzw. der plattencontroller
über die pins d0-d15 256 words ausspucken.

mir ist 1. nicht ganz klar ob diese nun 16bit oder 8bit breit
ankommen,
und zweitens mit welchem clock-signal getriggert?

kann mir da bitte jemand weiterhelfen?

thx im vorraus markus
Gast #93499
Lesenswert?

hi,

klar, :) das ein word 16 bit breit ist weis ich schon.
nur kommen diese wenn IOCS16 nicht gesetzt ist auf den
pins dd0 - dd7 jeweils als zwei bytes an oder grundsätzlich
als komplettes word auf dd0-dd15

ist der rest eigentl. richtig?
und wie find ich denn nu raus ob im an dd0-dd7(15)
nun das nächste word anliegt?

gruß markus
Gast #93500
Lesenswert?

würde voraussetzen, dass auch ich mir die ATA-Specs reinziehe, ausm
Bauch: /RD /WR oder sowas, einer von den Pins geht doch bestimmt bei
jedem Word auf L, denke ich.
sowas hat doch sicher schon mal einer gemacht...

Ich weiss es nicht genau, schade
AxelR.
Gast #93504
Lesenswert?

gleich mal ne frage:

die funktionen out & in sind von dir definierte funktionen oder?
wenn ja, könntest du mir die vielleicht mal schicken?
wenn nein: ???

gruß markus

ps: welchen controller hast du verwendet?
Gast #93505
Lesenswert?

Ja, die Funktionen sind Definiert. Diese geben aber nur das Byte an die
Adresse aus oder lesen das Byte ein. Ich hab die Festplatte an den
Externen Adressbus gehängt - für deine Zwecke vielleicht ein bischen
unpassend.

Ich hab mal noch ein bischen gesucht, und bin auf den Quellcode von
einem Versuchtsprojekt gestoßen. Bei diesem hab ich die Festplatte
direkt an den Controller angeschlossen. Hab dir mal den Quellcode in
den Anhang gestellt. Inwieweit die Angaben in der Datei
verbindungen.txt stimmen, kann ich nicht sagen. Für dich Interresant
dürften die Lese- und Schreib-Funktionen sein. (Die Pause von 1ms ist
sehr lang, kannst ruhig noch kürzen)

Programmiert sind beide Programme mit CodeVision auf einem MEGA161

Gruß, Florian
Angehängte Dateien:
Gast #93507
Lesenswert?

eine frage hätte ich da aber noch:

beim lesen/schreiben im PIO kann man ja zwischen 16 & 8 bit
modus wählen. geht das auch bei identify device?

mein problem ist nämlich das ich nur einen atmega8 mit 22 io pins hab
(reset nicht mitgerechnet) und da wirds enge wenn ich schon 16 für
die adressierung verbrate.....

das identify device scheint immerhin schon zu funktionieren,
nur leider krieg ich halt immer nur das lsb jedes
der 256 words mit :)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren