The last days I designed the PCB to replace the original tape deck CPU with the ATmega1284P. After ordering the PCB I decided to run the hardware self-check of the CPU – the circuit can be found in the datasheet – to evaluate what part of the CPU is broken. Since I have not had a 10MΩ resistor I had to use ten 1MΩ resistors.
The CPU reported, accordingly to the matrix in the datasheet, an ROM error. This was not something surprising. However, I forgot to switch off the power supply and got another coffee. When I returned I noticed the supply voltage dropped from 5V to about 3V and the CPU transformed itself into a stove. I thought, it is already dead so what more can be destroyed? Anyway, I switched off the power supply and switched it back on, continued with some tests and pressed the reset button several times. Suddenly the results measured by the oscilloscope changed to a circling patter. The datasheet points out a circling pattern means the CPU is ok. So is the hardware of the CPU ok and it just lost the ROM?
This left me with a lot of question-marks. What just happened, why does the result of the hardware test changed? So the next step was clear and I replaced the Atmega with the old CPU – and what can I say – it is fully working?! Awesome, everything is working and the tape deck is alive. The following days I searched the internet to gather some information about how such a hardware self-check can self-repair a CPU. Although I found more information about the Motorola CPU I was not able to get an answer to this “miracle”. I assume there are some registers in the CPU loaded with a value that prevents the software from executing. But values of registered should get lost when the CPU is powerless. There is no static RAM inside the CPU neither is there a battery that keeps states alive.
Anyway, the replacement of the ATmega is not useless since there are two more machines to repair and who knows what problems they have. I assembled this machine and got CD and Tape Deck fully working. Unfortunately the tuner is not working anymore and I need to check this later on.
And after assembling one machine I think it would be a good idea to change the software a little bit, because I am not happy with the programming part of the original software. Another idea, which is in my head since the beginning, is to add a remote control. That would be a nice feature to bring this vintage piece of hardware into the new century.