I'm working on a eq system for automobiles, and the AMP is i2s input digital class D, so I choose adau1761 to work at 96K sample rate
this is a very simple schematic and all EQ are double. but problem is, I could put more EQs but if total EQ more than 22 filters (above one EQ 15 filters and the other 7 filters) then great noise will be there. need to increase filter bands, any idea ? or this is the bug of ADAU1761?
BTW, when I'm using 44.1K sample rate, it could put up to 75 filters without any problem. any hints ? (each EQ has 15 filters)
It sounds like you are using too many MIPS.
In your project folder there will be a folder called "IC1_yourfilename"
In that folder is a file called compiler_output.txt
This is a text file that has the details on memory and MIPS usage.
You have 1024 instructions at 48kHz fs assuming you have the PLL setup for the nominal 49.152MHz.
At 96kHz you will have 512 instructions available.
So see what your usage is.
In this part what happens when the program is too long is that it misses the end of the frame and keeps processing until the end of the program. Then it waits for the end of frame/start of a new frame interrupt. At this point it missed it so it picks up the next one. The result is that it only runs the program for every other sample and that is at half the sample rate.
So have a look at that output file and see if you have run out of MIPS.
If not then it could possibly be a register setting or the clocks coming into the part but I think this is unlikely.
thanks for the replay.
(Note: Estimates are based on a 48 kHz sample rate)
Instructions used:551 (out of a possible 1024 )Modulo Data RAM used (X Memory):2259 (out of a possible 4096 )Non Modulo Data RAM used (X Memory):0 (out of a possible 4096 )Parameter RAM used (Y Memory):279 (out of a possible 1024 )
ask what you told matched the problem.
any possibilities to make more EQs under 96K ?
So you are using too many instructions. At 96kHz you will only have 512 available, (you need to use a little less than that for some overhead instructions). Your program is using 551 so this means that your program is actually running at 48kHz. It will be missing every other end of frame interrupt.
So you need to shave off around 50 instructions.
I am not sure which filter you are using but using stereo versions will save instructions. So grow the cell to add channels. Usually you will EQ each channel the same, so this will save you a lot of space by using the same coefficients but this will not save too many MIPS.
Then add algorithms to do it all within one cell rather than multiple cells. There is an overhead of a few instructions for each separate cell. So combining them will help.
Volume controls? Will these be used during operation of the product or is it just for calibration and tuning? If it is just for calibration and will not be used during operation then do not use the slewed volume control. You will hear zipper noise when you are tuning but that can be ignored since it will not be adjusted during normal operation. This will save some instructions.
Attach your project, there may be other things I can find.