CD Player interface - Page 1
Forum section: electronics / beginners

author: symbianas
author_rank: Regular Contributor
timestamp: November 16, 2020, 05:30:08 pm
content: Hi, I want to try to mock some CD Player functionality with micro-controller (Arduino/STM32).Is there a known CD Player interface for this? bound rates? commands? etc?There are marked 22 pins interface:Code:LOROS-GSRV+BB+3VSL-GB-GNDRSTSTBYFRAMEUARTMUTEINSWDOUTBOOTTXDRXDSBSYSFSYQDATASUBQNC

author: symbianas
author_rank: Regular Contributor
timestamp: November 17, 2020, 09:51:21 am
content: I would like at least to know what triggers CD player module to eject CD. Maybe also how it send song names would be interesting too.

author: Renate
author_rank: Super Contributor
timestamp: November 17, 2020, 01:13:03 pm
content: Wow, if you'll excuse a trip down memory lane...30 years ago I bought a Sony CDP-101, one of the first inexpensive HiFi (i.e. not portable) CD players.It had a mini DIN jack out the back for the P & Q subcode.I built an ISA (remember that? PC interface cards?) card with 1 kB dual port memory.I had a circuit that shifted the Q subcode in.I wrote a program in C that scanned the Q subcode to get the track/running time.At the start of the disk load it would read the table of contents.The TOC would have the number of tracks and the time of them in 1/75th of a second.I quickly found out that although there are standards for all sorts of information (like UPC) nobody uses them.The only way to identify a disc is to use the unique fingerprint of tracks and times.There were no online databases of recordings.I would pop a new disc in the player, it would spit out a template of the tracks and times.I would fill in the disc and track titles into my database.From then on, my little box line drawing ASCII app would display current song and time.Edit: It's the Q subcode that has the interesting stuff.

author: symbianas
author_rank: Regular Contributor
timestamp: November 17, 2020, 05:29:55 pm
content: Is that DIN jack port similar to this one? Is it possible to get disc content from this one?Which pins should give me "eject cd" command and data tables?

author: Renate
author_rank: Super Contributor
timestamp: November 17, 2020, 06:14:19 pm
content: It would be easier to figure this out if you have the rest of what plugs into this.The TXD & RXD are probably the front panel interface.The protocol could be anything, you're going to have to reverse engineer it.But then, what is "UART"?"Eject" is probably a serial command, along with everything else.I wouldn't think that this transport actually knows anything about content.That's probably decoded by the front panel using "QDATA" or "SUBQ".I don't know why two and what the difference is.If it were playing it would take a second to figure that out.The data rate is 7350 bits/second.Maybe one is the clock.The "Frame" pin gives you the frame sync.If this thing was playing a disk it would be easier to figure what's what.But first you have to power it.It looks like it takes two supplies, "3 V" (or 3.3 V ?) and the unspecified servo supply (12 V?).

author: symbianas
author_rank: Regular Contributor
timestamp: November 17, 2020, 09:26:45 pm
content: Supply is 3.3V. I have another part where it plugs in and I can power it up and it reads CD.UART pin seems to be response from the CD module to Main Board, because if I remove CD module there is nothing going on on that pin. I tried to remove CD module and sniff Main Board while clicking eject button but no signal found. Maybe it need to handshake and only then the command is sent... so more complex...I have sniffed UART, STBY, RX, TX, BOOT pins while CD module was connected, but it seems that only UART is sending responses other pins are at constant state. Still I was not able to decode band rate of UART and dont know what kind of data was there.

author: Renate
author_rank: Super Contributor
timestamp: November 18, 2020, 12:09:06 am
content: You really can't separate the parts and make any assertions about anything.You have to look at the signals when it's working normally.