2026-05-31 2:58 AM
Hi All,
I'm working on an STM32N6-based board for speech recognition with Direction of Arrival (DoA) estimation using a 4-microphone array.
In my current hardware revision, I made a mistake in the microphone routing:
- Two microphones (L/R pair) are connected to ADF1
- Two microphones (L/R pair) are connected to MDF1
I then realized that ADF supports only a single filter instance (mono), so I cannot process a stereo PDM pair through ADF alone.
Planned fix for the next hardware revision:
Since I still want to use ADF's Sound Activity Detector (SAD) for always-on voice detection (low-power wakeup), my plan is:
1. Connect one microphone (e.g. the RIGHT channel mic) to ADF1 - used exclusively for SAD/voice activity detection.
2. Connect the remaining 3 microphones to MDF1 for full stereo/DoA processing:
- LEFT + RIGHT pair → MDF_SDI0 / MDF_CCK0 (rising/falling edge trick on shared data line)
- Third microphone (LEFT of the second pair) → MDF_SDI1 / MDF_CCK1
My questions:
1. Is this ADF (SAD only) + MDF (3-channel audio) topology valid for STM32N6?
2. For the MDF side, is it correct to use:
- MDF_SDI0 + MDF_CCK0 for the L/R pair (DFLT0 on rising, DFLT1 on falling edge)
- MDF_SDI1 + MDF_CCK1 for the standalone LEFT mic (DFLT2)
3. Alternatively, should I route all 4 microphones through MDF and use ADF only for the SAD wakeup trigger - perhaps by tapping the ADF bitstream from one of the MDF inputs?
4. For DoA accuracy, is it better to have all 4 mics under MDF (synchronized to a single clock generator) rather than splitting across ADF and MDF?
Regards