2025-07-31 7:46 AM
Hi everyone,
I'm working on an audio acquisition project using the STM32H743ZIT6 microcontroller. The goal is to build a microphone array with 8 digital MEMS microphones (MP34DT05-A), connected via DFSDM and streamed over USB to a PC using the USB Audio Class (UAC). At the moment, I'm starting small and testing with one or two microphones.
So far, I have successfully configured one DFSDM filter and one channel using regular conversion with DMA, and I'm receiving valid audio data.
Now I would like to add a second microphone, which is connected to a second DFSDM channel (with opposite clock edge). Both channels should ideally be handled by the same DFSDM filter.
I'm currently wondering:
What is the best approach to sample two channels using a single DFSDM filter?
Is it necessary or recommended to use injected conversion for the second channel in this case?
How would I properly configure DMA and interrupts if both regular and injected conversions are used?
Are there any known working examples for this kind of setup?
Any tips, experiences, or suggestions would be greatly appreciated!
Thanks in advance
Solved! Go to Solution.
2026-04-28 10:38 AM - edited 2026-04-29 3:31 AM
Thanks for pointing out the topic with the Sync trigger and the right order to start.
However in my project on a STM32L4Q5, which is configured exactly as yours concerning the filters and channels, filter 1 always outputs rubbish data, i.e. unstable data, that doesn't depend on the audio content from the microphones. Even if I map the same input channel to both filters, filter 1 outputs that rubbish. Also if I start both filters with a software trigger, the same behavior is there.
EDIT: The problem moves with the sampling edge of the mic. Falling edge sampled mics create an offset of about 0xFE3080, rising edge sampled mics don't show it. I checked the PDM signals with a scope. The timing couldn't be more perfect for both edges, so it must be something inside the chip.
Thanks & kind regards,
Gerhard