Ich versuche ein CD Laufwerk mit einem AVR anzusteuern. Dazu habe ich mir die ganzen Spezifikationen und auch einige Beispielprogramme besorgt. Self Diagnostic und IDENTIFY PACKET DEVICE funktionieren. Wenn ich den PACKET COMMAND Befehl sende, erwartet das Laufwerk 12 Bytes (also 6 Words) ehe DRQ im Status Register gelöscht wird. Das Laufwerk versteht also den PACKET COMMAND Befehl. Das funktioniert alles auch soweit, aber nachdem ich die 6 Words gesendet habe wird das ERROR Flag im Status Register gesetzt und DRQ nie aktiviert. Das passiert, egal welche Werte ich sende. Das Error Register hat dann immer den Wert 0x50 oder 0x60 (je nachdem welche Werte ich sende.) Die Hardware und Low Level Routinen kann ich als Fehlerquelle ausschließen, da ich diese aus einer anderen Schaltung (die funktioniert hat) übernommen habe. Die Daten kommen auch richtig an den Pins an. Wenn ich das richtig verstanden habe, kommt das erste Byte des Packet Commands an das Low Byte, das zweite ans High Byte usw. Hat schon jemand sowas auf einem AVR (in C) gemacht und hat das zum Laufen bekommen oder ähnliche Probleme gehabt ?
google "self diagnostic" "identify packet device" "byte order" z.B. gleich der erste von 57 Treffern: http://www.t13.org/docs2004/d1532v2r4b-ATA-ATAPI-7.doc Ist es ein ATA oder ein ATAPI device? http://www.t13.org/docs2005/D1699r1f-ATA8-ACS.pdf : 4.4.1 Identification of PACKET Command feature set devices When executing a power-on, hardware, DEVICE RESET, or software reset, a device implementing the PACKET Command feature set shall perform the same reset protocol as other devices, but leaves the registers with a signature unique to PACKET Command feature set devices (See the appropriate transport documentation for a details). In addition, the IDENTIFY DEVICE command shall not be executed but shall be command aborted and shall return a signature unique to devices implementing the PACKET Command feature set. The IDENTIFY PACKET DEVICE command is used by the host to get identifying parameter information for a device implementing the PACKET Command feature set (See 787.17.5 and 7.18).
Das Laufwerk ist ein ATAPI device. Die ganzen Infos bei Reset usw. lese ich aus. Da steht genau das drin was ich erwarte (12 Byte packet command, removeable media, CDROM drive usw.) Die Daten kommen alle in der richtigen Reihenfolge auch richtig am Laufwerk an, nur aus irgendeinem Grund wird immer das Error flag gesetzt. Bei fast jedem Befehl dreht das Laufwerk kurz hoch und liest von der CD, der Befehl wird aber nie ausgeführt.
Hallo, im Anhang mal ein seehr einfaches Bsp. Für OPEN, CLOSE, START, STOPP. Das hat jedenfalls vor 6 Jahren mit nem AT90S8515 direkt verbunden an ATAPI CD ROM funktioniert. Bei Festplatten zeigte sich später, dass evtl. Bustreiber nötig sind, um die Signale sauber zu halten. Der 8515 lief damals mit 4MHz. Pinzuordnung steht im ASM-File. Vielleicht hilft's ja... Gruß, Dennis
@ Benedikt oder andere ich habe das gleiche problem vieleicht bist du oder andere weiter gekommen bei dem error code 60 ich komm auch nicht weiter 1 cd rom laufwerk geht 2 andere dafür nicht immer fehler code 60 jemand ne idee?
Ich habe das ganze aufgegeben, und spiele jetzt die Lieder von einen SD Karte ab ist flexibler, kleiner und braucht weniger Strom.
ja sd karte hab ich soweit unter kontrolle auch festplatte geht mit den sectoren lesen nur die cd will nicht ich hab kein plan woran es liegt und vorallem warum funzt das eine cd laufwerk auf das commando eject die anderen cd rom s sagen nur error sense key 60. im status register steht 51 drin ich werde mal später versuchen in das cd laufwerk das auf das commando eject reagiert ne cd einlegen und den stop befehl zu senden wenn das geht das gleiche in den anderen zwei probieren
http://www.8052.com/forum/read.phtml?id=116304 noch jemand der die probleme hat komisch woran liegt das nur ich komm und komm nicht weiter
so leute ich glaub ich hab es endlich. ich hab nach dem reset das disc eject kommando gesendet und da stand immer error drin. Nun hab ich ein zweites mal das commando gesendet und die disc öffnet sich. Warum auch immer es geht endlich
@commtel
>Warum auch immer es geht endlich
Glückwunsch.
Vielleicht könntest Du dieses interessante Projekt mal veröffentlichen?
Bernhard
na projekt ist es keins bis her nur für testzwecke gedachte source ich hab inzwischen zeit auch etwas andere source gefunden aber ich tue mich schwer mit C . ich werd im laufe der woche die gefunde source übersetzen in assembler und dann auf jeden fall berichten. Ich könnte miene scource veröffentlichen nur ist es assembler und das absoulte kaos im augenblick. Wer trotzdem interesse hat soll hier schreiben ich werd versuchen die fragen zu beantworten soweit ich kann
Bist Du über die 51 im Statusregister mal hinweg gekommen? Ich habe das gleiche Problem, inzwischen einige 100 verschiedene Dokus durch, zahlreiche Beispiel Sources unter anderem yampp, MP3 Jukebox und Dokus von T13/T10 - no chance. Nach dem Packet Command bzw. den 6 Words bleibts beim abrt Fehler. Der zweite Aufruf wirft auch meine Schublade aus. Markus
Hallo Markus nein leider nicht da ein anderes projekt dazwischen geruscht ist. Werde aber so ende nächsten jahres die arbeit daran wieder aufnehmen. Vieleicht findest du ja bis dahin mehr heraus als ich good luck Commtel
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.