Sunday, May 12, 2013
A cd palyer error's dance (aka, how to monitor read errors in a CD player with TDA1541 chipset)
NOTE: THIS POST IS A COMMENT TO WHAT YOU CAN WATCH IN THE ATTACHED VIDEO.
Today I wanted to investigate the behavior of the error signal in one of my Philips CD-670 players.
The error signal is coming out from the decoder chip (SAA7210) to advise the following interpolation &digital filter chip (SAA7220) that errors have occurred while reading samples out from the playing cd.
Under usual operations the error rate should stay very low and consequently the error signal stays low as well, ..you should measure only rare pulses randomly distributed in time. (BTW the signal is active high, so when I say low, .. I mean 0Volts). Under these conditions the SAA7220 chip is able to replace erroneous samples with "artifacts", new samples computed by mean of a linear interpolation between the last good sample in the stream and the first good one after what is called an "error burst". The ability to interpolate samples covers up to 8 successive errors (max error burst length equals 8). The played music is affected by the process, but people, at least those with normal hearing, usually do not notice anything.
The entire process allows the player to recover read errors mainly due to scratches and dirt (eg. fingerprints) on the CD plastic support.
But monitoring the error signal in a working player can lead to some interesting surprises.
Let's connect the error signal to an oscilloscope and let's try to play a CD-R that sounds good and doesn't display problems during the start up sequence, as well as during play, searching or track skipping.
The TOC is read in a shot ..and when playing almost no errors are detected. That is normal as long as there are few errors or error bursts randomly distributed in time. Only during the process of skipping from track to track errors burst are present, in particular during the positioning on the new track. They suddenly disappear as soon lining up is completed.
Now let's see what happens with another CD-R. This one has been burned by myself some years ago.
The following text comments out the video.. Fisrt of all the player takes longer to read the TOC and sometime fails (this can be viewed as a first warning signal saying that something is not ok with that CD..). The error signal is almost the same as before in playing the first 7-8 tracks, but going forward and forward (track >9) the error signal gets crazy. It shows the funny "error dance" exploiting a lot of errors bursts (please note that to see the dance I had to use a digital scope in "avarage" mode and .1mS/DIV). So I found that you can be in presence of a significant amount of error bursts even when a player plays good sound, at least by ear listening. You begin listening to the interpolation artifacts only when the error rate is very high. The more natural consequence is that I would like to have a error signal monitoring system telling me if the CD I am playing is good or not. Nothing more simple that installing a LED connected to the error signal itself. BUT I am not sure if the electrical characteristics of the signal allow for the driving of a LED without disturbing the signal envelope - I was afraid about the rise and fall times of the single error pulses.... So I managed to implement a "driver" using an opamp in unity gain configuration. I chose the LM258N because it was the best performer rail-to-rail opamp among those I had available in my junk box. In particular it showed the best performance in getting closer to the lower rail (0volts). And here is the final result.
(see also this related post)