CD drive: Difference between revisions
m (Split) |
|||
Line 1: | Line 1: | ||
[[File:Cd2_cdboard1.jpg|thumb|right|CD2 CD drive board.]] | [[File:Cd2_cdboard1.jpg|thumb|right|CD2 CD drive board.]] | ||
The part that fails before everything else in [[CD systems]]. Made of a control board and an [[optical pickups|optical pickup]]. | |||
The NeoGeo CD top-loading model drive was made by Sony. The [[CDZ]] one was made by Sharp ? | 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 maskROM MCU (Sony CXP5084), taking care of sequencing and communication | * A 4-bit maskROM 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 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 servo controler (Sony CXA1372) to drive the pickup coils for tracking and focus. | ||
* A spindle and sled motor driver (Rohm BA6396). | * A spindle and sled motor driver (Rohm BA6396). | ||
=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 and a logic analyzer. | Some say the protocol was standard for the time, but clear information is hard to find. This was guessed from the [[system ROM]] disassembly and a logic analyzer. | ||
Line 28: | Line 28: | ||
| Clock | | Clock | ||
| Output | | Output | ||
| | | Communication clock to CDC | ||
|- | |- | ||
| 2 | | 2 | ||
Line 52: | Line 52: | ||
| Clock | | Clock | ||
| Input | | Input | ||
| | | Communication clock from CDC | ||
|- | |- | ||
| 6 | | 6 | ||
Line 76: | Line 76: | ||
| Clock | | Clock | ||
| Output | | Output | ||
| | | Serial bit clock, should be 44100 * 32 = 1.4112MHz | ||
|- | |- | ||
| 12 | | 12 | ||
Line 82: | Line 82: | ||
| Data | | Data | ||
| Output | | Output | ||
| | | Serial data | ||
|- | |- | ||
| 13 | | 13 | ||
Line 91: | Line 91: | ||
|- | |- | ||
| 14 | | 14 | ||
| | | D/M ? | ||
| Signal | | Signal | ||
| | | Output | ||
| | | Data/Music. Low during music playback ? | ||
|- | |- | ||
| 15 | | 15 | ||
Line 121: | Line 121: | ||
|} | |} | ||
Missing: /RESET, C2PO, and 16MHz. | |||
=Communication= | |||
CDD | CDD to CDC communication uses a special protocol handled by the [[system ROM]]. {{Chipname|NEO-MGA}} provides the I/Os through registers {{Reg|REG_CDDCTRL}}, {{Reg|REG_CDDINPUT}}, {{Reg|REG_CDDOUTPUT}}. | ||
[[File:Cdunit4bit.png]] | [[File:Cdunit4bit.png]] | ||
Line 138: | Line 138: | ||
* The cycle continues on for 10 words. | * The cycle continues on for 10 words. | ||
(The delay here is not necessary, but it can be seen on the NeoGeo CD and is caused by the | (The delay here is not necessary, but it can be seen on the NeoGeo CD and is caused by the system ROM preparing stuff). | ||
* HOCK goes low and the 4-bit bus direction is inverted (CDC to CDD). The command data is set (red A). | * HOCK goes low and the 4-bit bus direction is inverted (CDC to CDD). The command data is set (red A). | ||
Line 147: | Line 147: | ||
* The cycle continues on for 10 words. | * The cycle continues on for 10 words. | ||
==Status data (green)== | |||
* A: Status | * A: Status - 1=playing, 2=seeking, 4=paused, 9=idle, 14=stopped | ||
* B: Status | * B: Status | ||
* C: Minutes high digit | * C: Minutes high digit | ||
Line 160: | Line 160: | ||
* J: Checksum (see below) | * J: Checksum (see below) | ||
==Command data (red)== | |||
* A: Command | * A: Command | ||
* B~ | * B~I: Depends on command | ||
* | * J: Checksum (see below) | ||
==Checksum== | |||
The checksum digit is the sum of all 9 previous digits, + 5, XOR 15, modulo 15: ((sum + 5) ^ 0xF) & 0xF. | The checksum digit is the sum of all 9 previous digits, + 5, XOR 15, modulo 15: ((sum + 5) ^ 0xF) & 0xF. | ||
Line 172: | Line 172: | ||
==Commands== | ==Commands== | ||
See [[CD drive commands]]. | |||
==Adjustments== | ==Adjustments== |
Revision as of 09:51, 10 January 2017
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 maskROM 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 and sled motor driver (Rohm BA6396).
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 and a logic analyzer.
Connector pinout, directions are from CDD (CD Drive) to CDC (CD Controller):
Pin # | Name | Type | Direction | Description |
1 | CDCK | Clock | Output | Communication clock to CDC |
2 | ? | ? | ? | High ? |
3 | /IRQ | Signal | Output | Asks the CDC for a data exchange (low pulse at ~64Hz) |
4 | ? | ? | ? | High ? |
5 | HOCK | Clock | Input | Communication clock from CDC |
6 | D0~3 | Data | Both | 4-bit data bus |
7 | ||||
8 | ||||
9 | ||||
10 | ? | ? | ? | ? |
11 | BCLK? | Clock | Output | Serial bit clock, should be 44100 * 32 = 1.4112MHz |
12 | SDATA | Data | Output | Serial data |
13 | LRCK | Signal | Output | I2S word clock, should be 44100Hz. Audio L/R switch for the DAC. |
14 | D/M ? | Signal | Output | Data/Music. Low during music playback ? |
15 | GND | Power | - | Ground |
16 | 5V | Power | - | +5V for logic |
17 | 9V | Power | - | +9V for motors and coils |
18 | GND | Power | - | Ground |
Missing: /RESET, C2PO, and 16MHz.
Communication
CDD to CDC communication uses a special protocol handled by the system ROM. NEO-MGA provides the I/Os through registers REG_CDDCTRL, REG_CDDINPUT, REG_CDDOUTPUT.
- The CDD regularly (~64Hz) 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 (green A). Diagram fix: A should be ready on CDCK low.
- HOCK goes high and the CDC reads the status data (A).
- CDCK returns high.
- HOCK returns high.
- CDCK goes low, the B word is ready.
- The cycle continues on for 10 words.
(The delay here is not necessary, but it can be seen on the NeoGeo CD and is caused by the system ROM preparing stuff).
- HOCK goes low and the 4-bit bus direction is inverted (CDC to CDD). The command data is set (red A).
- CDCK goes low, indicating that the CDD has read the data (A).
- HOCK returns high.
- CDCK returns high.
- HOCK goes low, 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)
- A: Command
- B~I: Depends on command
- J: 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.
Adjustments
To do !