Forum: Mikrocontroller und Digitale Elektronik CD Player mit ATAPI Laufwerk - Initialisierung notwendig?


von Sven H. (nobody1984)


Lesenswert?

Hallo zusammen!

Ich bastel gerade (auch) an einem CD-Player mit einem normalen IDE 
DVD-Laufwerk. Ein CD-ROM tät es ja auch, aber in meiner Schublade fand 
sich nur ein DVD-Laufwerk! Von der Schnittstelle her unterstützen ja 
beide die ATAPI Befehle.

Ich habe es auch schon soweit am Laufen, dass ich mittels Controller das 
Laufwerk öffnen, schließen und auch die Wiedergabe starten bzw. stoppen 
kann.

Ich habe allerdings das gleiche Problem wie schon im hier bekannt wurde: 
Beitrag "CD Laufwerk: packet command" (Post ist älter als 6 Monate, 
daher kam der Hinweis "neuen Beitrag erstellen").
Wenn ich ein Laufwerksreset mache, zeigt mir das Status-Register das 
BSY-Bit als gesetzt an. Schreibe ich dann in das ATA-Laufwerksregister 
und wähle das Master-Device aus (DVD-Laufwerk ist als Master gejumpert), 
dann ist kein Bit im Statusregister gesetzt. Also auch das DRDY-Bit 
nicht! Vermutlich, weil ja noch kein Befehl ausgeführt werden sollte. 
Sende ich dann den ATAPI Befehl zum Öffnen des Laufwerks reagiert es 
nicht, erst beim zweiten Mal senden Öffnet sich das Laufwerk. Dann 
funktioniert es aber ohne Probleme. Es ist immer nur nach einem 
Laufwerksreset, dass der erste Befehl quasi ins Leere geht.

Muss man nach einem Laufwerks-Reset eine spezielle Initialisierung des 
Laufwerks vornehmen? Gibt's mittlerweile neue Erkenntnisse?

Hier nochmal meine Sequenz:
1
01 Drive Reset
2
02 Status REG: BSY 
3
03 Delay: 2sec.
4
04 Drive Select: Master
5
05 Status REG: 
6
06 ATAPI Cmd (0x1B...)    // nichts passiert!
7
07 Status REG: DRDY DRQ 
8
08 ATAPI Cmd (0x1B...)    // Laufwerk öffnet sich!
9
09 Status REG: DRDY DSC DRQ

Gruß,
Sven

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
Noch kein Account? Hier anmelden.