Interfacing details of Panasonic SLCD CD-Roms

  • Home
  • Academic
  • RISC OS
  • Electronics

The following information details what I know about the interface to Panasonic/Matsushita/Kotobuki CD-Roms that normally connect to a PC soundcard with a 40 pin IDC cable (not an IDE interface) - this interface is sometimes called MKE, SLCD or Panasonic. I have been informed that it is correct for CR-562 and 563 models. If anyone has any further information, I'd be grateful if they would pass it on to me at theo [at@] markettos.org.uk.

This page is not about connecting one of these to a PC (unless you wish to build your own interface). If you wish to do this, please read my Panasonic CD PC connection mini-FAQ, which covers most questions I get about this.

Some more basic information of these drives can be found on the Creative Labs or Panasonic websites, which have basic specifications, jumper details and PC drivers. To find them, do a search on those sites for MKE, CR562 or CR563. If you are really desperate for the interfacing details, you could become a Creative Labs registered developer, but then you'd have to sign a non-disclosure agreement, meaning you couldn't tell anyone about it.

Gary Tait has successfully built an MKE to ISA interface (hosted locally).

Pinout

 1 GND               2 CD-Reset                (RESET)
 3 GND               4 GND                     
 5 GND               6 operation Mode bit 0    (/DRIVE SELECTO)
 7 GND               8 operation Mode bit 1    (/DRIVE SELECTO)
 9 GND              10 CD-Write                (IOW)
11 GND              12 CD-Read                 (IOR)
13 GND              14 CD-Status bit 0         (STCH)
15 GND              16 n/c                     (ADPCM ENABLE)
17 GND              18 n/c                     (DRQ)         
19 GND              20 CD-Status bit 1         (DTEN)        
21 GND              22 CD-Data enable          (ENABLE)      
23 GND              24 CD-Status bit 2         (/STEN)       
25 GND              26 CD-Status / Data enable (CMD)         
27 GND              28 CD-Status bit 3         (EOP)         
29 GND              30 GND                     
31 CD-Data 7 (D7)   32 CD-Data 6               (D6)
33 GND              34 CD-Data 5               (D5)
35 CD-Data 4 (D4)   36 CD-Data 3               (D3)
37 GND              38 CD-Data 2               (D2)
39 CD-Data 1 (D1)   40 CD-Data 0               (D0)

Bracketed labels are those from the MediaVision multimedia kit documentation, which gives the pinout for a Sanyo CDR-H49A "Panasonic-compatible" drive.

Source: Chris Abbot, Janez Cerar, Leonardo Galardi and Alexandre Jorge

A duplicate of the same pinout, from an independent source, can be found in The Hardware Book.

Janez Cerar has done some testing and found some possible errors in the above pinout:

Since I couldn't get it to do much more than reset I did a few measurements and discovered a couple of errors in the pinout specs. 18 does not appear to be n/c, 28 however is. The only other pin with 'interesting' properties is 14. I doubt very much that this is CD-Status 1 as it is different from the other status and data bits and appears to always read something over 5V.

My experiences of the interface

I myself have tried hacking the interface - I basically connected all the lines to a 32 line IO card, connected to the I²C bus in an Acorn A3000. Other than reset, I didn't have much luck. Taking one of the enable lines high and a data bit low caused apparently random data bits to go low as well, in a fashion that looked more like noise than anything else (one of the 'features' of the PCF8574(A) devices used on the I²C card is that they are both inputs and outputs at the same time - they have a pullup which can either be pulled low by an external device or an internal driver. Unfortunately it makes it useless for monitoring lines, since the pullup affects their state).

The easiest way I found to try to work out if I was giving the drive the correct signals was to connect it to its normal interface, then start an audio CD playing. Whilst playing, I unplugged the computer from the drive, and plugged in the test cable. Having done this, (I think) an Abort command will stop the CD playing. Since this is one byte long, it is easier to do when testing than strobing in 7 or more bytes as for the other commands. Unfortunately, despite this, I didn't even get it to perform this command, so I think more work is needed in working out the bus protocol. In particular, if someone can hook a drive up to a logic analyser, the problem should be solved.

From looking at the PCB of a CR562, the data lines all connect to a 74LS245 bus transceiver, and the status/enable lines connect to a 74LS244 thus:

16 n/c                     (CR562 NC)
18 n/c                     (CR562 output)
20 CD-Status bit 1         (CR562 output)
22 CD-Data enable          (CR562 input)
24 CD-Status bit 2         (CR562 output)
26 CD-Status / Data enable (CR562 input)
28 CD-Status bit 3         (CR562 NC)

This seems to confirm Janez's suggestion that the above pinout is wrong, although I'm not sure what the lines that are wrong actually do. The PCB is helpfully labelled with lots of signal names - in particular around the connector area are the labels /EOP, /STCH, MDACHG, TCK, DIR and /WE - some of these agree with the MediaVision pinout above. There are also some signals that are familiar if you've worked on CD players before (eg FE = focus error, TE = tracking error, FLOCK = focus lock, TLOCK = tracking lock).

The CR562 drive runs in my Acorn Risc PC in a slightly unconventional manner, compared to the way it is normally used in a PC. It attaches to a small daughterboard, which contains an AMI PAL22CV10AP and a 74HC245, and this connects to the IDE interface. A special driver controls the board - this daughterboard does not make the drive into an ATAPI device. This means the signals must be similar enough to IDE to be able to be converted in such a PAL. I've attached a user port interface (basically a 6522 VIA) to the drive cable, and written a quick logic analyser program. It shows that the read/write signals are very fast - each sample of the VIA is about 500ns in duration, and the read/write pulses appear to be active low and 1 - 4 samples long.

I've partially figured out the software calls to this interface in a Risc PC, using Cumana's CDFSSoftISLCD module - what I know can be found here.

ISA register interface

I'm not quite sure how the command set relates to the pinout - I think on the soundcard the various Data/Status/Mode pins are taken to a series of latches/tristates, so that the addresses select which latch/tristate to access.

This is the interface seen by reading/writing the ISA bus:

Addresses:

Command (output) =       base
Select (output)  =       base + 1
Reset (output)   =       base + 2
Enable (output)  =       base + 3

Info (input)     =       base
Status (input)   =       base + 1
Data (input)     =       base + 2  (base)

Command set

Command         Hex code                # bytes Resp.   Note
===========================================================================

Seek            01 M S F 0 0 0          1
Spin up         02 0 0 0 0 0 0          1
Status          05 0 0 0 0 0 0          1       Only get status
Tray out        06 0 0 0 0 0 0          1       Eject tray
Tray in         07 0 0 0 0 0 0          1       Close tray
Abort           08                      1
Set mode        09 5 0 1 v 2 v          1       Set volume (patch), v = volume
                09 3 0 s s 0 0          1       Set speed
Reset           0a 0 0 0 0 0 0          0       Reset drive
Lock ctl        0c L 0 0 0 0 0          1       L=1 lock, L=0 unlock
Pause resume    0d P 0 0 0 0 0          1       P=80 resume, P=0 pause
Play MSF        0e m s f M S F          1       play from m-s-f to M-S-F
Play track/ind  0f t i T I 0 0          1       play from t i to T I
Read            10 M S F 0 0 n          1       read n blocks
Subchannel info 11
Read error      82 0 0 0 0 0 0          9       Get error code
Read version    83 0 0 0 0 0 0          11      Get version string
Get mode        84 5 0 0 0 0 0          6       Get audio volume & patch
Capacity        85 0 0 0 0 0 0          6
Read SubQ       87
Read UPC        88                              Read universal product code
Diskinfo        8b 0 0 0 0 0 0          7       Read disk info
Read TOC        8c 0 e 0 0 0 0          9       Read TOC entry e
Multisession    8d
Packet          8e

NOTE:
1. Last byte got from the drive is always a status byte.
2. Driver always should wait for no error & ready state before issuing
command.  (There may be a disk change between two commands, so we
don't know the state of the drive.)
================================================================

Error codes:

00      No error
01      Soft read error after retry
02      Soft read error after error correction
03      Not ready
04      Cannot read TOC
05      Hard read error
06      Seek didn't complete
07      Tracking servo failure
08      Drive RAM error
09      Self-test failed
0a      Focusing servo failure
0b      Spindle servo failure
0c      Data path failure
0d      Illegal logical block address
0e      Illegal field in CDB
0f      End of user encountered on this track ?
10      Illegal data mode for this track
11      Media changed
12      Power-on or reset occured
13      Drive ROM failure
14      Illegal drive command from the host
15      Disc removed during operation
16      Drive hardware error
17      Illegal request from host

Source: Zoltan Vorosbaranyi, author of the Linux PCD driver.

Devices on ISA card

The following devices are reported to be on a Creative Labs version of the ISA interface card (code CT1810):

74LS32 (2)
74LS122
74LS74A
74LS08
PAL16L8BCN
74LS04
74LS244
74LS138
74LS245

Source: Gary Tait

Parallel port tester

Mike Ohotin has written some Pascal source to read and write bytes to a drive hooked up to the parallel port (wiring pinout included). But so far he's only managed to get writes to work, so only a few commands can be sent. Currently only reset is useful. Due to lack of access to a drive, this isn't currently being developed.

Please email Theo (theo [at@] markettos.org.uk) if you have any comments or more information.


Page by Theo Markettos (email at theo [at@] markettos.org.uk), last modified 2009-07-19

Return to electronics pages.