This is a general question for anyone with experience in using the ADAU1777 of ADAU1772 in adaptive ANC headset applications.
The outstanding performance feature of the part for ANC is the low latency analog-to-analog path, which allows feedforward ANC to operate. External sounds reaching an outward facing microphone (analog or digital PDM) can be processed with filters and output to the DAC in as little as 5us.
Unfortunately, there is little online info about successful strategies, algorithms, or methods used to adapt the filters in the feedforward path. I assume that a standard algorithm such as FxLMS can be used, implemented on an external processor that adapts/updates the filter coefficients on the ADAU1777.
My questions relate to the recommended connection strategy between this external processor and the ADAU1777.
1) I assume that the external processor connects to the ADAU1777 via the I2C/SPI control interface for purposes of re-configuring the ADAU1777 filters for adaptive ANC. Is this generally correct?
2) I assume that the ADAU1777 can send audio out to the external processor over its serial output port via the output ASRCs. Is this generally correct?
(NOTE - the purpose of this would be to measure the residual sound inside the ANC headset for purposes of calculating updated adaptive filter coefficients).
3) Are there any whitepapers, reference designs, or example systems using ADAU1777 or ADAU1772 that anyone can share?
Like your screenname suggests, I need to be honest. We cannot really help out with the algorithm since we do work with many companies that have their own algorithms, we have to guard our relationship and trust with these companies. So we really need to step back and let customers work on their own IP.
But, we can answer questions regarding using the part and so I can answer some of your questions.
HonestEffort said:1) I assume that the external processor connects to the ADAU1777 via the I2C/SPI control interface for purposes of re-configuring the ADAU1777 filters for adaptive ANC. Is this generally correct?
Yes, that is one of the uses of the serial port aside from programming and controlling it.
HonestEffort said:2) I assume that the ADAU1777 can send audio out to the external processor over its serial output port via the output ASRCs. Is this generally correct?
Yes, you can send audio out from many sources inside the part. Either a microphone directly or an output from the core. The ASRCs are there to enable you to run the core at a high rate but still be able to send audio out at a more reasonable rate.
HonestEffort said:3) Are there any whitepapers, reference designs, or example systems using ADAU1777 or ADAU1772 that anyone can share?
No, this we do not have.
I can add that the part has two banks of coefficients. This is specifically made for these adaptive algorithms. You can have an active set of coefficients in Bank A while you load in coefficients into bank B and then instantly switch between them allowing you to then update Bank A.
Hope this helps.
Thank you very much for your thoughtful reply. I understand the proprietary nature of many customers applications. The suggestion about toggling between Bank A and Bank B during updates is also helpful- I hadn't picked up on that idea from reading the part datasheet.
I am still having a bit of trouble getting I2S to work bidirectionally using the ADAU1777 eval board and the minidsp usbstreamer device. I recently picked up another eval board with I2S capability so perhaps I can figure that out next.
I suggest you use an oscilloscope to look at the I2S signals coming from and going to the DSP. It is good to know what is working and what is not working.
Also, if you can send over a simple project that has your setup I can have a look at it. There are a lot of settings that can be missed and throwing you off.
Do we have a document or web-link to illustrate how to use the A and B banks of ADAU1777 to design a adaptive ANC filters？
(actually it is not adaptive, it just has two different fixed coefficients for different filters)
I notice that in ADAU1787 there are 3 banks of coefficients. I suppose it can be helpful to my customers.