Replacing the tape deck CPU

As the analysis has shown the tape deck CPU is broken and I am going to replace it with a modern 8-Bit Risc CPU, the Arduino. 

Since the tape deck CPU controls the Play/Stop/Pause buttons of the CD-Player I get, in the first step, the keyboard working. To get the pressed buttons a matrix of eight output and three input lines get used – making it 24 different inputs. In addition to the keys the query contains several input states from the tape mechanics.

The eight outputs PD0-PD7 are cycling to query the state of a particular input. Since I do not have a working CPU I cannot get a timetable how long signals are low or high. Anyway, it is not necessary to have this data because the Arduino has 20MHz and is much faster than the original CPU with 5.3MHz. The excerpt from the service manual below indicates that the states of the tape deck are updated more frequently than the keyboard states which makes sense. For the moment I am not sure if this is necessary to fully simulate this behaviour since the increased cycling speed of the new CPU already provides a faster reaction.

The driver to read the keyboard is easy to develop. In order to check if a key is pressed I also added a lcd screen to the Arduino just to read and check some states without the need to use the oscilloscope all the time. However, before I connected the new CPU to the μProcessor board I did some test outside with the Arduino only.

I was using an old Arduino Mega and lcd display which I had on stock but will replace them later on with a smaller type. I had no I2C interface for the 2×16 lcd display which added a lot more cables to the circuit. To be able to keep the Audio-CD CPU alive I used the old tape deck CPU to power the oscillator.

There are a lot of cables but it is not so complicated as it may look like. In a first step I checked all the keys if they are working and if the are correctly assigned.

Finally, and because the Start/Stop/Pause keys of the CD-Player are working now, I checked the function of the CD-Drive. The disc is spinning but it is still not capable of reading the TOC and returns “Error”. Therefore I tried the controller board of the second sound machine. This board had the same issues in the beginning but – no idea why – after some startups it read the TOC. Pressing “Play” on the keyboard started the CD-Player and finally it is alive. However, the keys where not very well synchronised since I had no idea for how long the signal has to go low that the CD-CPU recognises a pressed button. It results in pressing a key and get no reaction. After some tries I came up with good results at keeping the signal low for about 50ms.

From time to time the head of the laser is getting crazy – it is going up and down not able to read anything. Pretty sure there are some problems with the decoder panel or the CD controller panel. I ordered some ICs from the SAA70x0 as spare parts. Maybe the SAA7010 is defect since it is already in a socket and thus probably was broken some time ago. Let us wait for the spare parts to do some more tests and maybe get both decoder panels fully working.

Leave a Reply

Your email address will not be published. Required fields are marked *