Noch eine Frage zur Festplatte

Gast #93497
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 #93498
anschließend sollte die platte bzw. der plattencontroller
über die pins d0-d15 256 words ausspucken.

Hallo Markus
Words eben. war doch 16Bit, oder...

Grüße
AxelR.
Gast #93499
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
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
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
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
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

Eine eigene Frage? Dieser Thread ist über 22 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.