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

ADAU1466 audio stream stops after few seconds

SigmaDSP & SigmaStudio Atum Nov 10, 2020 00:00 9 replies Original on forum ↗
Subscribe
Atum Question
Nov 10, 2020 00:00

Dear all,

This is my first post on analog EZ forum

I'm using an ADAU1466 witch is programmed through I2C interface with a PIC32 MCU.

I'm using I2S stereo input/output in slave mode (I provide all the clocks)

The DSP programation goes well, PLL lock and so on, the output audio stream is OK but stops with no apparent reason after few seconds...

I checked the I2C proggramation lines to be sure that my MCU is not sending any data and it is the case.

The DSP program is very simple

A channel in bypass

and the other a second order custom coeff double precision biquad.

If someone is interested, i can share the scripts to convert output products from sigma studio to an header file wich is embedded in PIC32 flash memory, and the PIC32 code to program the DSP.

Thanks in advance for your help because i'm very desapointed ! Everything works well but, only 10 sec after the DSP programmation.

If i program again the dsp, it do exactly the same thing.

Nicolas

Audio Signal Processors

SigmaDSP Audio Processors

adau1466

Atum Reply
Nov 18, 2020 00:00

I finded recently that the PLL of the DSP unlocks when the audio stream stops for an unknown reason !

Does anybody experienced the same behavior ?

help will be appreciated because I'm blocked by this issue and I've no ideas how to fix it.

Nicolas

alex239 Reply
Nov 22, 2020 00:00

you use mclk from external input? I mean that adau can me withiot mclk some time.

Atum Reply
Nov 23, 2020 00:00

Dear alex,

Thank's a lot for your response.

Yes i'm using external MCLK as pll input for the adau1466.

24.576 MHz (asynchronous with I2S clocks)

PLL input divider at 8

PLL mult factor at 96

It gives a core clock at 294,912 MHz

Everythings works perfectly during 10 seconds ! and then the PLL unlocks ... I still don't understand...

Nicolas

alex239 Reply
Nov 23, 2020 00:00

If MCLK stable pll have no problems in most cases.Check propertly load.(reset and load after timers) and power of pll and dsp parts. I have tested stability with lost mclk for some time and dsp works normally after mclk glitch. this type of problems i have only on low reset timers, bad power or not good soldering.

Try to check pll status on empty shematics. and maybe you have lrck bclk outputs for reference check

Atum Reply
Nov 23, 2020 00:00

Dear alex,

Thank's again for your help:

Here what I'm doing in the PIC32 to initialize PLL:

------------------------------------------------------------------

//enter/exit soft reset
data_16b = 0;
error = adau_write(adau1466Address,0xF890,2,&data_16b);
DelayMs(100);
data_16b = 1;
error = adau_write(adau1466Address,0xF890,2,&data_16b);
DelayMs(100);
//feedback devider to 96
data_16b=96;
error = adau_write(adau1466Address,0xF000,2,&data_16b);
DelayMs(100);

//pll input clk divider to 4
data_16b = 0x02;
error = adau_write(adau1466Address,0xF001,2,&data_16b);
DelayMs(100);

//clock source to pll clock
data_16b = 0x01;
error = adau_write(adau1466Address,0xF002,2,&data_16b);
DelayMs(100);

//mclk output
data_16b = 0x05;
error = adau_write(adau1466Address,0xF005,2,&data_16b);
DelayMs(100);

//pll enable
data_16b = 1;
error = adau_write(adau1466Address,0xF003,2,&data_16b);
DelayMs(100);

while(1)
{
//lecture PLL LOCK
error = adau_read(adau1466Address,0xF004,2,&data_16b);
data_16b = swap_16b(data_16b);

DelayMs(100);

//pll LOCK !
if(data_16b == 1)
{
Nop();
break;
}
}

This first sequence works well, the PLL is seen locked

What do yo mean by "Check propertly load.(reset and load after timers)" ?

After i program the core the audio stream is ok, tha dac outputs audio signal and 10 second after, the pll unlocks (i check it with software polling every second) and the stream stops.

Regarding the hardware, I'm using a ready made board.

Nicolas

alex239 Reply
Nov 24, 2020 00:00

I mean that need to check stability of work. Seems adau have problem on work load. tru to use different code.For example bypass mode in and out only. and on hard load(like 40-50 biquads.). check the time of normal work. is it different from 10 on your design?

Atum Reply
Jan 12, 2021 00:00

Dear all

I come back to this topic, because i'm still experiencing issues with pll stability.

I tried bypass code or 40 double precision biquads and, the behaviour is still the same.

PLL locks correctly, audio stream starts, correctly and then after ~20 sec, the PLL unlocks ... it is very enoying !!

I bought another board to test if it comes from it but, even with the new one, it behaves exactly the same.

RVM Reply
May 28, 2024 00:00

Hello, did you find a solution for this? , i have the same problem if i program this from the Sigma Studio, if i use the export files then all likes to work.

DaveThib Reply
May 28, 2024 00:00

Hello RVM,

I had missed this original post and I think I know why. It was November of 2020 and I was under a huge workload due to several reasons.

The program running and the number of biquads has nothing to do with the PLL. The PLL is its own system and has nothing to do with the core. (except it supplies the core clock of course but it is s one way relationship). The only link might be if there is something really bad with the program such that it writes to the PLL registers. Even then, those registers are shadow registers and do not take effect until the PLL is disabled and reenabled. So the original issue with Atum had to be with something in hardware with the clocks, the power supply or the PLL loop filter. Or, the PIC was writing to the DSP in error and stopping the program. It is clearly too late to help him and Atum, I apologize for missing this, but RVM, please start a new post and give us some more detail. What hardware are you using? What versions of SigmaStudio? Give us screenshots and attach your program. Give us something to work with.

What is the microcontroller doing when you are using SigmaStudio? You cannot have two masters on the comms port.

Thanks,

Dave T