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
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.
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
Hi Hast du evtl. CS1 und CS0 verwechselt? Ist mir am Anfang auch so gegangen. Matthias
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
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.