mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik CD Laufwerk: packet command


Autor: Benedikt (Gast)
Datum:

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

Autor: Profi (Gast)
Datum:

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

Autor: Benedikt (Gast)
Datum:

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

Autor: Dennis Kleine-Beck (Gast)
Datum:
Angehängte Dateien:

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

Autor: commtel (Gast)
Datum:

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

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe das ganze aufgegeben, und spiele jetzt die Lieder von einen SD 
Karte ab ist flexibler, kleiner und braucht weniger Strom.

Autor: commtel (Gast)
Datum:

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

Autor: commtel (Gast)
Datum:

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

Autor: commtel (Gast)
Datum:

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

Autor: Bernhard S. (bernhard)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@commtel

>Warum auch immer es geht endlich


Glückwunsch.

Vielleicht könntest Du dieses interessante Projekt mal veröffentlichen?

Bernhard

Autor: commtel (Gast)
Datum:

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

Autor: Markus (Gast)
Datum:

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

Autor: Commtel (Gast)
Datum:

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

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.