CD drive



The part that fails before everything else in CD systems. Made of a control board and an optical pickup.

The NeoGeo CD top-loading model drive was made by Sony. The CDZ one was made by Sharp ?

The control board has:
 * A 4-bit mask ROM MCU (Sony CXP5084), taking care of operation sequencing and communication with the NeoGeo.
 * A DSP (Sony CXD2500) to process analog data from the pickup.
 * A servo controler (Sony CXA1372) to drive the pickup coils for tracking and focus.
 * A spindle, sled (and tray) motor driver.

=Connections=

Some say the protocol was standard for the time, but clear information is hard to find. This was guessed from the system ROM disassembly, Sega MegaCD documents and a logic analyzer.

Top-loading model
Connector pinout, directions are from CDD (CD Drive) to CDC (CD Controller):

Missing: /RESET, C2PO, and 16MHz.

Front-loading model
Connector pinout, directions are from CDD (CD Drive) to CDC (CD Controller):

=Communication=

CDD to CDC communication uses a special protocol handled by the system ROM. provides the I/Os through registers, ,.




 * The CDD regularly (~64Hz not 75) sends a low pulse on its /IRQ output to initiate a data exchange.
 * HOCK goes low, indicating that the CDC aknowledges the request. The 4-bit bus direction is set to CDD to CDC.
 * CDCK goes low, indicating that the CDD is starting to send its status data (A).
 * HOCK goes high and the CDC reads the status data (A).
 * CDCK returns high.
 * HOCK returns low.
 * CDCK goes low again, the B word is ready.
 * The cycle continues on for 10 words...

(The delay here is not necessary, it is seen on the NeoGeo CD because of the system ROM preparing stuff).


 * HOCK goes low and the 4-bit bus direction is reversed (CDC to CDD). The first command word is set (K).
 * CDCK goes low, indicating that the CDD has read the data (A).
 * HOCK returns high.
 * CDCK returns high.
 * HOCK goes low again, the B word is ready.
 * The cycle continues on for 10 words...

Status data (green)

 * A: Status - 1=playing, 2=seeking, 4=paused, 9=idle, 14=stopped
 * B: Status
 * C: Minutes high digit
 * D: Minutes low digit
 * E: Seconds high digit
 * F: Seconds low digit
 * G: Frames high digit
 * H: Frames low digit
 * I: Extension
 * J: Checksum (see below)

Command data (red)

 * K: Command
 * L~S: Depends on command (see below)
 * T: Checksum (see below)

Checksum
The checksum digit is the sum of all 9 previous digits, + 5, XOR 15, modulo 15: ((sum + 5) ^ 0xF) & 0xF.

Commands
See CD drive commands.

Adjustment pots
To do !