Forum: Mikrocontroller und Digitale Elektronik Fragen zum ATA/IDE Standard


von Nik Bamert (Gast)


Lesenswert?

Hallo!

Den einzigen KOntroller den ich bei mir zu HAuse noch rumliegen hab ist
ein alter pic16f84..und eben eine Festplatte.
Da dachte ich mir das ich da evtl. eine ansteuerung basteln könnte.
Ich hab das Datenblatt zur Ansteurung durchgelesen, und bin zum Schluss
gekommen das:

-Ich ohne die Festplatte in den 8-Bit Modus umzuschalten, diese
8-Bittrig betreiben kann. Denn alle Register, ausser das Datenregister
sind eben 8-bittrig. Und vorerst intressiert mich ein fat Dateisystem
noch nicht, also benötige ich die restlichen 8-Datenbits auch gar
nicht. Oder doch? Wenn ja, für was?

Ich möchte zum Test einfach mal(im LBA Modus) einen Sektor auslesen.
Muss ich da noch was anderes tun, als zuerst die benötigten bits in die
entsrechenden Register zu schreiben(LBA-Adresse), dazu natürlich noch
die Adresse an cs0, cs1, ad0,ad1,ad2 einstellen; und danach das
Datenregister auslesen? -ich würde das ganze, nur mal zum Test, so
langsam machen, das ich das Busy bit(hächstwahrscheinlich gar nicht
auslesen muss.


-Meint ihr man kann das mit einem solch kleinem Controller(1kbyte prog
speicher, 13 i/o pins) hin kriegen?-Würd mich mal interessieren eure
Meinung zu hören, aber ich denke, es müsste Funktionieren...


MFG Nik

von Nik Bamert (Gast)


Lesenswert?

Niemand ne Meinung?

von Jochen (Gast)


Lesenswert?

Die Read/Write-Leitungen darfst Du nicht vergessen. Mit 13 i/o-Pins wird
das nicht mehr reichen, wenn Du nicht z.B. die drei Adressleitungen
zusammenfasst.
Die 16Bit Daten kannst Du aber auch mit einem 8Bit-Port lesen, wenn Du
zwei Latches (für jede Datenrichtung eines) einsetzt.
Aber nur 8Bit ist natürlich auch OK, wenn Du Hälfte der Kapazität nicht
unbedingt benötigst.

von Jens Renner (Gast)


Lesenswert?

Das sollte theoretisch gehen.

Normalerweise kannst Du auch für -CS1 das invertierte Signal von -CS0
nehmen; noch eine Leitung gespart. Soweit ich das noch auswendig weiß,
müssen beide Signale nie gleichzeitig 0 oder 1 sein. Bei mir haut es so
hin.

Allerdings brauchst Du dann immer noch 8 (Daten) + 6 (Adresse) = 14
Pins... vielleicht nimmst Du doch einen größeren Controller.

von Nik Bamert (Gast)


Lesenswert?

Danke an Euch.

Ich dachte mir das es gehen muss.
Das mit dem kleinen Kontroller ist eigentlich nur zum Test, wenn ich
s' hinkrieg kauf ich mir schon nen atmega oder so.
Die adressen werd ich wahrscheinlich irgendwie multiplexen zum beisplel
ein schieberegister an die adr-pins. zudem werde ich z.B. das error
reg. nicht benötigen, wenns nen fehler gibt, muss ich nicht unbedingt
wissen, welchen genau. So kann ich sicherlich auch noch pins sparen
können.

MFG Nik

P.S. noch so nebenbei: in welchem register steht wieviele sektoren die
Festplatte hat und welche Beizeichnung/Hersteller? Oder steht das auf
der Platte selbst?

von Nik Bamert (Gast)


Lesenswert?

Ach, ich hab noch was vergessen:

Werden die Daten bei einem low/high oder high/low übergang
übernommen/ausgegeben? Oder ist das unterschiedlich?

Nik

von Jochen (Gast)


Lesenswert?

Am besten ziehst Du Dir mal die ATA/ATAPI-Spec. Da steht das alles
ausführlich drin. Das brauchst Du eh zum Programmieren.

von Jens Renner (Gast)


Lesenswert?

Die Daten kann man der Platte mit einem Kommando entlocken. Müsste
Identify Device (0xec) sein. In den Datenregistern bekommst Du dann zig
Bytes geliefert mit Infos zu Modell, Seriennummer,
physikalischen/logischen Eigenschaften etc.

Aber die ATA-Specs sind wirklich unverzichtbar. Das stehen alle
Kommandos und deren Rückmeldungen drin.

von Nik Bamert (Gast)


Lesenswert?

Ok, ich dachte ich komm mit dem Elektor Beitrag 3/01 und mehreren
(deutschen) Homepages aus. Doch welche Spec soll ich
downloaden?www.t13.org hat gleich etwa 8. ;-)


@jens Wie weiss man dann, das die infos fertig sind; irgendwie muss man
ja erkennen wann man nicht mehr weiter lesen soll.

MFG Nik

von Mark de Jong (Gast)


Lesenswert?

@Nik:

Lese erst mal die IDE und ATA spezificationen,
da steht alles drin.

Grüße Mark,

von peter merki (Gast)


Lesenswert?

Hallo Nik

ich interessiere mich sehr für dieses Thema. Welche spezifikationen
kannst du mir weiterempfehlen (ATA version ???)? Besten Dank!

Grüsse peter

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
Noch kein Account? Hier anmelden.