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

need solution for 96ks i2s decoder run on slave mode

SigmaDSP & SigmaStudio Taweewong Oct 4, 2024 00:00 5 replies Original on forum ↗
Subscribe
Taweewong Question
Oct 4, 2024 00:00

We need applied module QCC5171 Ldac i2s with slave mode of adau1701. The problem is when we toggle bt option from high quality to low quality(96k-44.1k) or hi to low(44.1k-96k) clock between 12.288 mhz-24.576Mhz the PLL non locking period . the sound has change and have cracking pop.

please advice way to muting this period. by sigma studio code. or addition hardware.

Audio Signal Processors

sigma studio

hardware

SigmaDSP Audio Processors

adau1701

Taweewong Reply
Oct 4, 2024 00:00

I known the pop sound is from i2s_data is stop and coming again then popping happen

DaveThib Reply
Oct 4, 2024 00:00

Hello Taweewong,

Thanks for the additional information. This is a little bit of a problem and unfortunately there is not much that can be done directly by the DSP itself. This is one of our older parts and so the design of the serial interface was an early design and we have learned a lot since then. Our newer parts have some elegant solution for this.

I hope you have a system controller in your system? The reason why I ask is because you should activate a mute of the outputs before you switch the Bluetooth. Then once the Bluetooth has changed and become stable then unmute.

I do not know too much about different Bluetooth parts but if there is some sort of GPIO output of the Bluetooth module that changes when lock is lost and changes back once it has relocked to the new sampling rate, then you can design a GPIO pin on the DSP to mute the outputs from a GPIO. That solution may work or at least reduce the level of the noise. You still might hear it a little as the volume slews down and back up.

The problem with the part is that there is no register for selecting a source for the DSP start pulse. It switches to the I2S when a valid clock is there and if it goes away it switches back to an internal clock. There will be discontinuities. Our newer parts there is a register that can change the start pulse source so a controller could switch away from the I2S and then back to it when it is stable. Also, out Sigma300/350 parts have ASRC (Sample rate converters) which will also help with this problem of the clock suddenly changing rates.

Then the other issue is with the PLL as you noted. When you suddenly change the PLL rate you have to wait for it to relock. So I am back to the applications based solution of muting the audio then making the change. I hope your system has this capability.

Dave T

Taweewong Reply
Oct 7, 2024 00:00

thank you, dave

i known that many way to use external control and analog multiplexer, i just ask for , may can solve that by coding, but you answer is cannot ,then i try to other way. by the way adau 1701 is can config some i/o to represent off pll non locking ?

DaveThib Reply
Oct 7, 2024 00:00

Hello Taweewong,

Unfortunately, there is no way for the DSP to output a GPIO to show the PLL lock status. The 1701 was a ground-breaking leap in combining a codec with a DSP core along with SigmaStudio to make it all easy to program and to use. It is such a simple part to use which is why it is still a great solution for many applications 20 years after it was designed!!

However, it has some downsides that we realized over the years and improved with the newer versions of the SigmaDSP product line. The last version of SigmaDSP core, the S300/350 cores, are capable of reading and writing to their own registers so for those parts there would be many options for you to take care of this. Then in addition, those parts also have an ASRC built in so you could simply go through the sample rate converter and be done with it. It would follow the incoming rate.

Back to the 1701, for you to take care of this you would have to have a system micro-controller reading registers and monitoring the Bluetooth to take care of changing settings, muting and unmuting when the sample rate changes.

The only possible solution without a controller is if there is some sort of GPIO out of the Bluetooth receiver that can signal the DSP? Then there still is an issue with the PLL losing lock. This would have to be tested. I am not sure if it would work.

I do know that the 1701 will mute when the master clock and the I2S signals do not match but it does not know this ahead of time so no way to mute the audio before any discontinuities happen. This is a tough problem.

Dave T

Taweewong Reply
Oct 7, 2024 00:00

Ok dave , I have done with this switch clock local and i2s buy monitor i2s streaming gpio , the problem solved