I'm working on implementing an active noise control algorithm. I am currently working on an ADSP-221489 EZKIT LITE, because we had one lying around. I am quite new to these things, but I am beginning to suspect that this board and the AD1939 codec on it are not quite suited to my application. I got the algorithm to work, but I feel the system is not working as well as it could be, mainly due to latency issues. I am wondering which hardware would be better for me. I hope you can help. Below I have listed some information about my application:
- Active noise control system with adaptive controller and adaptive plant model.
- Preferred sample frequency: 8 kHz.
- 2 ADCs/input ports.
- 2 DACs/output ports.
- Low latency (currently multiple ms's)
If you need more specific details to answer my question, please let me know.
I tried changing the registers like you suggested, but it made no difference.
I decided to try setting the 1772 to be the master instead of the EZ KIT and suddenly I was able to receive and send audio. Are there any problems you expect from running the system this way instead of using the EZ KIT as the master?
The only strange thing I've encountered is a reduction in amplitude between a sent and received signal. I generating 1 period of a sine with amplitude 0.5 in the EZ KIT and sending it to the output port. I then feed the signal back to the input port and look at what I receive. I receive 1 period of the sine I sent, with a little latency, but with a reduced amplitude. I have added a plot to clarify. Do you have any idea what could cause this?
Hi Thijs this is Shane. I'm trying to achieve the same thing as you already did- real time signal processing at 8kHz and low latency. I had very similar hardware setup (ADSP-21489 + ADAU 1372), and I'm able to follow through this thread and get talk-through working with codec being slave mode. However, in order to get to 8kHz, it seems that the easiest way is to make codec as Master mode, and I'm not able to make it work. Can you share your setting with me please?
Hello Shane and Thijs,
The best way to run this part would be as a slave. This way the ASRC will simply follow the sample rate and if it drifts it is not an issue. There must be a reason why it was not working. It would be good to look at scope plots of the I2S signals to be certain that they are correct out of the ADSP-21489. Then a list of the register settings for the codec would be needed to see if all is correct there.
Thanks Dave, for the prompt reply. I was able to run this setup while the codec as a slave. However, the lowest sampling rate currently available on ADSP-21489 is 16kHz. It seems that in order to go below that, I'd need to change the MCLK oscillator (according another of your thread here). What are the steps to achieve that?
In terms of setting the codec as Master, do I need to connect the MCLK on the J4 header at ADAU 1372? If so, where? Also I read that on page 10 of the manual that I need to add/remove resister in order to use internal/external MCLK. Is it relevant to my goal?
I'll look at the register setting again and come up to you if I can't find anything. Really appreciate your support Dave.
The other thread you referenced they were using an AD1939 which is a very different part in some ways. There is no sample rate converters in that part. In the 1372 the serial port goes through a sample rate converter so the internal clock rate can be asynchronous to the incoming clocks and it just works. This is the beauty of this part. You do not need to change anything if you change the sample rate of the serial port signals. It will simply detect that it changed and relock to the new rate. Then it will follow it if it drifts slowly. This is why I suggest to run this part as a slave. You can run the codec using its own MCLK on the eval board.
Now there are a lot of registers that can be set improperly which is why I asked for a list of register settings. Are you using SigmaStudio to setup the part by any chance?
So send me the registers that are being changed after the part powers up. Then I will know what is in the default state and what has been changed.
Thanks Dave. I understand that ADAU1372 is more powerful now.
I'm open to use any approach to set the sampling rate as 8kHz. If we are using the ADSP-21489 as Master, it seems that we need to change MCLK oscillator. If so, what are the steps to achieve that?
Please see my SigmaStudio project file here.
I hate to pass this on but I do not support the ADSP-21489 so I cannot really help you with that part of this. support the codec and the SigmaDSP products.
Ask this on the SHARC space on this forum.