4 years, 2 months ago.

External ADC used for Microphone array

I have to connect more than 32 microphones to Mbed and the time delays between these microphones are very important because I have to use array to locate the sound source. There are several questions regarding it.

1. If I use four 8-channel ADC chips, how can I deal with so much channel while the digital input pins of Mbed are limited? 2. Whether the ADC chip samples 8 channel simultaneously?If not , does it means I have to compensate the time difference by myself?

Tobias did an excellent job in his Ping Pong juggling Robot project. Maybe he would share some details that could be of help.

posted by Zoltan Hudak 15 Nov 2017

1 Answer

4 years, 2 months ago.

1) It depends on the interface with the chips but most parts have a chip select input, as long as the chip select is unique for each part and you only have one chip select pin active at a time (normally they are active low) then you can common up the other pins. So 4 ADCs should only need 3 more pins than 1 ADC. You can only talk to one chip at a time this way but trying to talk to multiple chips at a time is not normally a good idea anyway.

2) It depends on the ADC that you use. Most cheap 8 channel ADCs are really a 1 channel ADC with a switch on the input to select which of the input pins to measure. A true 8 simultaneous input part with the ability to capture all 8 at once and buffer the results will be more expensive. You may want to look for dedicated audio ADCs, if they offer stereo then that's at least 2 channels sampled at exactly the same time.

Some chips will have a trigger input, you could use that to synchronize between the different ADC chips so that they all sample at the same time.

Also keep in mind sound is slow so any time offsets may not be enough to matter, it becomes a question of what sample rates do you need for each microphone which in turn depends on the frequency of the sounds you are trying to locate. Work out what time offsets you end up getting, whether you can interpolate between samples or not to effectively re-time the samples (should be possible as long as your sample rate is fast enough) and whether the errors introduced by these time differences are big enough to matter or not (which will in part depend on your microphone spacing)

I don't know the details of your application however 3d location of a sound source does in theory only requires 4 microphones not 32. If nothing else 32 data points will make the maths harder if you want to take all of the measured data into account, that would be a 32 input least squares type process, that'll take a long time to run on an mbed type processor.

I'd be tempted to start with a 2D solution using 3 inputs and build up from there.

Accepted Answer

My application focus more on accuracy that is why I would like to use more microphones and thank you so much for your kind help!

posted by Guangyi Cheng 15 Nov 2017