situation | explanation |
---|---|
〈 BUSY〉 | State transition in progress |
〈 PAUSE〉 | Pausing (pause) |
〈 STANDBY〉 | Standby (drive stopped) |
〈 PLAY〉 | CD playing |
〈 SEEK〉 | Seeking in progress |
〈 SCAN〉 | Scan playback in progress |
〈 OPEN〉 | tray is open |
〈 NODISC〉 | no disc |
〈 RETRY〉 | Read retry processing in progress |
〈 ERROR〉 | A read data error occurred |
〈 FATAL〉 | A fatal error has occurred (stop command required) |
drive command | Corresponding function |
---|---|
CD block initialization | CDC_CdInit |
opening the tray | CDC_CdOpen |
play | CDC_CdPlay |
seek | CDC_CdSeek |
Pause | CDC_CdSeek |
stop | CDC_CdSeek |
scan | CDC_CdScan |
Drive commands other than tray open also serve as tray close commands.
As a general rule, commands issued later are executed first. If issued consecutively, the previously issued command may be overwritten.
To ensure that〈 BUSY〉 Please do not issue until the state transitions to a state other than
Figure 4.1 CD drive state transition diagram (normal system)
During state transition (on the arrow line)〈 BUSY〉 The condition will be.
Tray close commands refer to drive commands other than tray open.
After the tray is closed, it transitions to the state corresponding to each command.
example:〈 OPEN〉 The play command in the state is after the tray is closed.〈 PLAY〉 state.
Figure 4.2 CD drive state transition diagram (error type)
situation | explanation | internal state |
---|---|---|
〈 RETRY> | If the retry is successful〈 PLAY〉 If you fail,〈 ERROR〉 become. | 〈 SEEK〉 |
〈 ERROR〉 | The state remains unchanged until the next drive command is issued. | 〈 PAUSE〉 |
〈 FATAL〉 | Please issue a stop command and try to return. | 〈 STANDBY〉 |
operation | automatic | command | ||||||
---|---|---|---|---|---|---|---|---|
Initialization | tray | play | Seek | Pause | stop | scan | ||
〈 BUSY〉 | There are changes | 〈 PAUSE〉 | 〈 OPEN〉 | 〈 PLAY〉 | 〈 SEEK〉 | 〈 PAUSE〉 | 〈 STANDBY〉 | 〈 SCAN〉 |
〈 PAUSE〉 | 〈 STANDBY〉 | 〈 PAUSE〉 | 〈 OPEN〉 | 〈 PLAY〉 | 〈 SEEK〉 | 〈 PAUSE〉 | 〈 STANDBY〉 | 〈 SCAN〉 |
〈 STANDBY〉 | − | 〈 PAUSE〉 | 〈 OPEN〉 | 〈 PLAY〉 | 〈 SEEK〉 | 〈 PAUSE〉 | 〈 STANDBY〉 | 〈 SCAN〉 |
〈 PLAY〉 | 〈 PAUSE〉 | 〈 PAUSE〉 | 〈 OPEN〉 | 〈 PLAY〉 | 〈 SEEK〉 | 〈 PAUSE〉 | 〈 STANDBY〉 | 〈 SCAN〉 |
〈 SEEK〉 | 〈 PAUSE〉 | 〈 PAUSE〉 | 〈 OPEN〉 | 〈 PLAY〉 | 〈 SEEK〉 | 〈 PAUSE〉 | 〈 STANDBY〉 | 〈 SCAN〉 |
〈 SCAN〉 | 〈 PAUSE〉 | 〈 PAUSE〉 | 〈 OPEN〉 | 〈 PLAY〉 | 〈 SEEK〉 | 〈 PAUSE〉 | 〈 STANDBY〉 | 〈 SCAN〉 |
〈 OPEN〉 | − | 〈 PAUSE〉 | 〈 OPEN〉 | 〈 PLAY〉 | 〈 SEEK〉 | 〈 PAUSE〉 | 〈 STANDBY〉 | 〈 SCAN〉 |
〈 NODISC〉 | − | 〈 OPEN〉 | 〈 OPEN〉 | 〈 OPEN〉 | 〈 OPEN〉 | 〈 OPEN〉 | 〈 OPEN〉 | 〈 OPEN〉 |
〈 RETRY〉 | There are changes | 〈 PAUSE〉 | 〈 OPEN〉 | 〈 PLAY〉 | 〈 SEEK〉 | 〈 PAUSE〉 | 〈 STANDBY〉 | 〈 SCAN〉 |
〈 ERROR〉 | − | 〈 PAUSE〉 | 〈 OPEN〉 | 〈 PLAY〉 | 〈 SEEK〉 | 〈 PAUSE〉 | 〈 STANDBY〉 | 〈 SCAN〉 |
〈 FATAL〉 | − | Indeterminate | Indeterminate | Indeterminate | Indeterminate | Indeterminate | Undefined* | Indeterminate |
If the tray is not automatically opened/closed, the tray open/close command will not be executed until manually executed.〈 BUSY〉 It becomes.
〈 OPEN〉 Commands in the state (excluding tray open) transition to each state after the tray is closed.
If the TOC cannot be read when the tray is closed〈 NODISC〉 It will be. (Even if there is a disc included)
〈 PLAY〉 ,〈 SCAN〉 When transitioning to the state,〈 SEEK〉 It may go through the state.
After TOC lead, at 2 seconds 0 frame from the start position of the final session〈 PAUSE〉 state.
Figure 4.3 Sector pointed to by current FAD
If the number of repeats ≧ the maximum number of repeats, it will not be repeated.
at current location〈 PAUSE〉 state, and the PEND flag in the interrupt factor register becomes 1.
Figure 4.4 Relationship between playback range and current position
Operation (command) | No repeat | With repeat | ||
situation | PEND | situation | PEND | |
CD playback ends | FAD=end position+1〈 PAUSE〉 | 1 | seek to start position〈 PLAY〉 | 0 |
CD playback → Change playback range | at current location〈 PAUSE〉 | |||
seek | at the target position〈 PAUSE〉 | 1 | at the target position〈 PAUSE〉 | 0 |
scan playback | in an undefined position〈 PAUSE〉 | 1 | in an undefined position〈 PAUSE〉 | 0 |
A PEND flag of 0 means no change.
CD drive status〈 STANDBY〉 , and the report becomes an invalid value (a sequence of FFH).
at home position〈 PAUSE〉 When the state changes, the pickup moves to the beginning of the disc.
The retained playback range, maximum repeat count, and repeat notification count will not be changed.
Figure 4.5 Subcode update and SCDQ flag timing
Start and end decoding
Decoding ON/OFF is set using the CD block initialization command.
To start decoding, set decode ON and then play the CD-DA.
Decoding start timing
〈 PLAY〉 Start decoding at the same time.
in fact,〈 PLAY〉 Data begins to be captured two frames before the state is reached.
Pack buffer clear timing
Cleared when decoding starts.
The contents of the pack buffer are retained even if you pause or seek.
Decoding conditions
It is decoded only when playing CD-DA.
It is not decoded in other cases (during scan playback or CD-ROM area playback).
overrun error
If the pack is not acquired in time, the pack buffer will be overwritten and an overrun error will occur. After data transfer is completed (when 23 packs have been accumulated without actually acquiring pack data), the acquisition pointer advances to the pack with no overrun error.
pack data error
The CD block performs a CRC check on the P and Q sequences of the packed data, and if an error is detected, the data is corrected.
If correction is not possible, a pack data error will occur.