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
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.
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
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.
hm..interessante idee.... vielleicht sollte ich mir die specs nochmal etwas näher anschaun ;) danke. .gruß markus
Hallo, hab so was schon mal Programmiert. Im Anhang ist die C und H-Datei. Musst mal durchschauen. Gruß, Florian
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?
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
sehr geil. danke. ich werd mich gleich mal damit beschäftigen. gruß markus
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 :)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.