0
\$\begingroup\$

I'm interested in designing a microphone array which will have 5+ inputs which need to be synced, possibly more. I want to sample each input at 20-30khz at 8-10 bit resolution.

I would prefer not have to have 5 separate ADC but the MEMS microphones I have seen which include ADC all use an odd protocol which I am not sure about.

Additionally even if the microphones all used SPI or I2C out I don't think I have seen any microcontroller which has 5+ inputs.

What would be the standard approach to this problem?

\$\endgroup\$
4
  • 2
    \$\begingroup\$ This application note by ST might help, they display a configuration for up to 8 microphones with PDM (is that your odd protocol?) output. I haven't done anything in the field, so can't comment if that approach is good or whatever. \$\endgroup\$
    – Arsenal
    Commented Aug 21, 2020 at 6:49
  • \$\begingroup\$ @FourierFlux: For SPI, you only need one SPI channel, and a handful of outputs. One output for each ADC to drive the slave select pin. Select one ADC, read value over SPI. Select next ADC, read value over SPI, repeat. \$\endgroup\$
    – JRE
    Commented Aug 21, 2020 at 8:04
  • \$\begingroup\$ You can also use Quad SPI with multiple ADCs, the internal data handling might get a bit odd depending on how the peripheral assigns the bits though... \$\endgroup\$
    – Arsenal
    Commented Aug 21, 2020 at 8:10
  • \$\begingroup\$ The problem is the streams need to be synchronized so multiplexing isn't an option. \$\endgroup\$ Commented Aug 21, 2020 at 14:48

1 Answer 1

1
\$\begingroup\$

The standard protocol for microphone arrray using digital MEMS would be PDM. It can be directly interfaced with some microcontrollers and microprocessors/SoCs at up to 8 channels.

One option is to use an STM32 microcontroller. This is described in AN5027: Connecting PDM digital microphones to STM32 MCUs and MPUs. Other microcontroller options would be NXP imx rt600

Another options would be SoC like RockChip RK3588 (or similar) with Embedded Linux.

The most plug-and-play would be to use a multi-channel PDM to USB soundcard.
MiniDSP UMA-16 would be one option. They also have some documentation on how to do custom array geometries and processing. UMA array with MATLAB.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.