mikrocontroller.net

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


Autor: Nik Bamert (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Nik Bamert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Niemand ne Meinung?

Autor: Jochen (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Jens Renner (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Nik Bamert (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Nik Bamert (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jochen (Gast)
Datum:

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

Autor: Jens Renner (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Nik Bamert (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Mark de Jong (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Nik:

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

Grüße Mark,

Autor: peter merki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Nik

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

Grüsse peter

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.