AnsweredAssumed Answered

Microphone array design using an STM32F7 microcontroller. GPIO sampling vs DFSDM module.

Question asked by Schofield.Thomas on Mar 18, 2017
Latest reply on Mar 20, 2017 by huber.thomas.002

Hi all,


I am attempting to build a microphone array out of digital MEMS microphones and I am trying to determine if I can achieve a reasonable system on an STM32F7 microcontroller. Ideally I would like to capture the output of 8 or more MEMS microphones synchronously with a filtered and downsampled output of 100Hz - 10kHz and12 bit resolution. I would like to transmit the data to a PC for processing in an algorithm I have developed. I am aware of the DFSDM peripheral however it seems that it is only capable of working with 4 elements synchronously or with 8 elements multiplexed between the 4 filter inputs.

My other inclination is to attempt to read the microphone data signals via GPIO using the DMA controller and perform the downsampling and filtering operation on the PC. Is this a viable option or is it difficult to perform without enough storage space on the microcontroller (As the output of one microphone is now being stored as a 1Mbit/s stream). From the DMA controller I can see that the number of microphone elements could now potentially be 16 given that the storage space requirements / speed could be met.

As an aside, is it possible to utilize the ethernet peripheral on the microcontroller without TCP/IP. I.e. if I use the DMA to write to the Ethernet peripheral will these bytes be sent out in "raw" over the wire. Is this a terrible idea in terms of bit error rate? I am trying to work out what is the minimal overhead solution for transmitting the microphone signals to a PC if they are to be coming in at a 1Msps sampling rate.