We need to implement anti-aliasing low pass filter in ADAU1761. Please see attached picture and project. But it seems the filter does not work. Could you please help and explain what shall we do?
The project you attached did not have any filters in the project. But I see what you tried to do in the picture.
I suggest you use the stimulus and Probe blocks to "see" what the filter response is. It is really handy. Here is a screenshot of what I did with your project. I had clicked on the two probe buttons to open up the windows and then you click on the stimulus button and you see the filter response.
Now, looking further into your project...
Is the problem really that you are not getting ANY signal out of the DSP? The reason why I say that is when I look at the register settings. The Codec Setup page you have the clock source set to PLL Clock but then have the PLL disabled. That will not work.
Are you passing any signal through the DSP?
Thank you very much. Your suggestion with Butterworth filter resolved the issue.
But we have a new problem. The signal is cutting on -6dB on digital output. Please see attached image. The signal from ADAU1761 (including DSP) goes to iMX6UL CPU. We do not understand where the cutting can be done. Either on ADAU1761 side or on iMX6UL side.
Usually when you have a 6dB loss in the digital transfer it is due to a serial port setting.
In the 1761 DSP setting, it is the "Data Delay from LRCLK Edge" register setting. It is on the Digital Setup page of SigmaStudio.
What happens is if one is set to a 1BCLK delay and the other is not then you can miss one bit of the serial data. This will show up as either being 6dB too low or too high. The best way to figure out where it is happening is to look at it in the DSP. Break the loop by sending a known level from the DSP and see how it is arriving at the other processor. Then turn the same signal around and send it back to the DSP and look at the level in the DSP. SigmaStudio is a great tool for doing this since you can "see" the level within the DSP.
I have attached a basic project to allow you to do this.
With this project you can select an internal oscillator to send out of the serial data port. Keep the volume control at 0dB and you will be sending exactly a 0dBFS signal out of the serial port.
Then at the other processor you can turn this around and send it back. Then you can see the level coming back to the DSP since this project has two meters looking at the digital input. So these should be the same. -3dB.
Next you have to figure out the mismatch between the two processors. Look at the level in your other processor. You can also setup an oscillator in your other processor, if it has that capability, then send it to the DSP to see where the data is not being read properly.
Thank you for your help. The problem was resolved on iMX6UL side.
Retrieving data ...