ΣSigmaStudio Ask AI Русский Log in

SPDIF/SRC freezes on DC offset

SigmaDSP & SigmaStudio PhilipJ May 2, 2016 00:00 6 replies Original on forum ↗
Subscribe
PhilipJ Question
May 2, 2016 00:00

I have a problem using the SPDIF input through SRC.

When the SPDIF source is removed one or other freezes on a random DC offset value. In my design this is passed through to the output which is driving a DAC resulting in an unwanted DC voltage offset at the DAC's output buffer.

I have proved this by putting a Mute in series with the SPDIF signal and when muted the digital output stream to the DAC reverts to zero.

Any suggestions for auto muting based on the SPDIF or SRC lock bit?

I don't want to use the embedded signal level in the SPDIF because this unwanted DC offset will probably mess it up.

regards

PhilipJ

PhilipJ Reply
May 2, 2016 00:00

I have discovered a setting in the configuration registers named "SPDIF set hot enable", I have enabled it and it seems to be having some useful effect.

Although the data sheet links this setting to the Auxiliary outputs, which I don't believe I am using, it does seem to stop the DC offset from getting through to my output on SDATA_OUT3.

Any explanations?

regards

PhilipJ

ADIApproved Reply
May 2, 2016 00:00

Hi Phillip,

Which chip are you using?

Thanks,

Tyler

PhilipJ Reply
May 3, 2016 00:00

Hi,

I am using the ADAU1442.

I did some more investigation after posting yesterday with the following results.

The setting I found, "SPDIF set hot enable" was a "red herring" it didn't really do anything.

What is happening is that when I remove the SPDIF input signal, the internal SPDIF receiver freezes on the last sample it received, what else could it do!. I know this because the chip has a useful feature to take the I2S signal decoded from the SPDIF and sent it out of one of the MP pins. Monitoring this with a 'scope shows the value that it freezes on and this corresponds to the DC offset coming out of my DAC.

I found another thread where somebody recommended having an external MPU monitor the SPDIF lock flag and turn a MUTE on/off with it. Luckily I have a PIC micro and I have implemented this idea, it seems to work quite well.

It would be a serious problem though for anyone doing a design without an external controller as there appears to be no path for the SPDIF lock bit to be accessed in the SigmaStudio design.

regards

PhilipJ

fio Reply
May 3, 2016 00:00

Did you tried to insert a DC-block filter?

Best regards,

Lasse

080b72b4e316e9ffa719acb0f29136ad.jpg
080b72b4e316e9ffa719acb0f29136ad.jpg
080b72b4e316e9ffa719acb0f29136ad.jpg-290x133.jpg
080b72b4e316e9ffa719acb0f29136ad.jpg-290x133.jpg
PhilipJ Reply
May 3, 2016 00:00

Hi,

thanks for the suggestion, I did try one but it didn't seem to do anything.

I was in a bit of a hurry to get a solution out for our customer so I put it aside and moved on.

I will try again when the pressure is off and see if I can work out what I did wrong with the DC-block filter.

Thanks

PhilipJ

DaveThib Reply
Jun 7, 2016 00:00

The DC block filter will definitely work to remove the DC from the signal once the SPDIF signal goes away.

The only reason it may not work in your system is if you are using the SPDIF input signal as the start pulse for the DSP core. In other words, synchronizing the core to the SPDIF signal. Then when the SPDIF goes away the entire DSP "freezes" on the last value. This is why we actually removed the SPDIF input cell from the 1452 so you have to go through the ASRC and so the core will be running off of a different clock.

Dave T