ATA-Harddisk

Gast #18031
hallo,

hat jemand erfahrung mit der ansteuerung von ata-harrdisks???
hätte jemand ne idee für ein simples progrämmchen zum testen
ob die kommunikation zwischen hd und avr überhaupt funktioniert.
also ich hab schon sicher 100 seiten durchgelesen und schon
paarmal ausprobiert, bin aber leider noch zu keinem erfolg
gekommen.
ich hab zuerst immer ein hardware reset gemacht danach ein
software reset (hab ich von einem anderen file abgeschrieben,
hab aber noch keine anleitung dafür gefunden) danach wollte
ich statusinformationen lesen...jedoch erhalte ich immer das
gleiche am eingang des avrs :-S
wäre nett wenn mir jemand helfen könnte.

gruss fab
Gast #18034
Resets usw kannst du dir eigentlich sparen, erfahrungsgemäß reichts 
absolut, einfach darauf zu warten, dass die Disk ready ist 
(RDY/BSY-Flag) und dann einfach zB ein Read oder ein Identify-Command zu 
schicken.
Hier gibts jede Menge Infos zu dem Thema: 
http://www.mp3projects.com/docs.html, eine durchgehende Beschreibung, 
die das eigentlcih alles für eine rundlegende Ansteuerung enthhält gibts 
hier: http://www.mp3projects.com/digital/chimp/bins/ide-8255.zip.
Ich hab auch eine Platte, ber der ich nur 0xFF zurückbekomm, egal, was 
ich ihr sende - die funzt aber auch am PC nicht mehr richtig. Zwei 
andere Platten lassen sich problemlos ansteuern, mehr hab ich noch nicht 
probiert.
Gast #18036
Hallo zusammen!

Endlich hab ichs geschafft. Die ansteuerung der harddisk funktioniert 
schon ein bisschen :-). Es ist mir jetzt möglich etwas anständiges aus 
den registern zu lesen. Die Register stehen nach dem hardware-reset wie 
in der ATA-Dokumentation beschrieben, nur das Status-Register bleibt auf 
0 auch noch 1 minute nach dem reset! Und ohne status register läuft 
nicht sehr viel! muss ich da noch irgendein initialize befehl oder so 
ausführen? mindestens das DRDY bit sollte doch auf 1 sein?
Ich hab die HD auf primary gejumpt, also sollte sie doch "antworten" 
wenn ich device 0 adressiere. dies ist jedoch gerade umgekehrt. bei 
adressierung von device 1 reagiert die primary gejumpte und bei 
adressierung von device 0 die auf secondary gejumpte!

kann mir echt jemand helfen :-)!?!?
danke schon im voraus!!!

fabian
Gast #18039
Hallo!

Nein CS1 und CS0 sind hab ich wirklich nicht verwechselt und DA0 - DA2 
hab ich auch nicht vertauscht!
Mein Problem ist immer noch, dass die HD (auf primary gejumpt) nur 
antwortet wenn ich device 1 anspreche. aber primary ist doch eigentlich 
device 0, oder nicht?
hier ein auszug aus den registern nach dem hard reset und device anwahl:

### hier wird device 1 angesprochen
...ctrl...
.ctr... 1       0
.ctr... 2       0
.ctr... 3       0
.ctr... 4       0
.ctr... 5       0
.ctr... 6       0
.ctr... 7       125
...cmd...
.cmd... 1       0
.cmd... 2       1
.cmd... 3       1
.cmd... 4       0
.cmd... 5       0
.cmd... 6       176
.cmd... 7       0

### hier nochmals das gleiche aber device 0 wird angesprochen!
...ctrl...
.ctr... 1       0
.ctr... 2       0
.ctr... 3       0
.ctr... 4       0
.ctr... 5       0
.ctr... 6       128
.ctr... 7       126
...cmd...
.cmd... 1       128
.cmd... 2       128
.cmd... 3       128
.cmd... 4       128
.cmd... 5       128
.cmd... 6       128
.cmd... 7       128

und jetzt nochmals ein problem:
wenn die device nicht angesprochen wird, so müsste sie doch tri state 
output haben, oder etwa nicht? also offene eingänge hab ich nicht, denn 
ich hab an der datenleitung extra ein pull down print angeschlossen!

hat jemand noch ne idee???
dieses zeux bereitet mir schlaflose nächte :->

danke!

gruss fabian

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 23 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.