ADAU 1442 FIR number
Hi,
I have a problem with the DSP ADAU1442.
I use 3 FIR filters with 200 coef. in average, the filters work perfectly.
But, when I add a others FIR all cutoff frequency divide by 2.
I don't understand what the problem is. The sampling frequency is 192KHz.
Thanks for your help.
Audio Signal Processors
fir filter
filter
adau1442
fir_filter
frequency_cut
SigmaDSP Audio Processors
fir
Show More
Hello simsB,
Yes, this is an interesting question you have posed. To understand what is happening you have to know a little bit more about the core functioning and how it works. The three generations of cores operate a little differently when this happens.
You have run out of MIPS.
This core will look for the falling edge ( if it is set that way) of the LRCLK to signal the start of the frame. This will start the core executing instructions and incrementing the program counter etc. Once it reaches the end of the program it will execute NOPs and at this point it will wait for the next sample period to start and it all starts again. In this part when it is executing instructions the start of the sample period signal is masked out.
When the program is too long it will start executing at the start of the frame and keep executing and meanwhile the start of a new frame happens but the core is still executing the instructions! So eventually it ends and then waits for the next frame. This results in the program running at half the rate you think it is running at. So all the filters and oscillators etc., are at half the frequency.
As an FYI for others reading this. This is a Sigma200 core and is also used in the 1761. The 1701 has a sigma100 core and that one will just restart the program and so some code is never reached and something may stop working. In the Sigma300/350 cores, the 1452/1467 it does the same thing. It stops execution and restarts the program so some code does not get reached and strange things can happen.
If you look at the compiler output in your screen shots you will see it there.
These % of usage in the report is for when you run at 48kHz fs. When you run at 96kHz you have half the instructions per frame and when you run at 192kHz you have 1/4th the instructions you have available at 48kHz. So anything above 25% is too large of a program at 192kHz fs.
Dave T
Thank you very much Dave, your explanation is very clear
Please log in to reply.