Skip to content

Latest commit

 

History

History
124 lines (79 loc) · 4.68 KB

File metadata and controls

124 lines (79 loc) · 4.68 KB

Platform

Expansion board

Use X-NUCLEO-CCA02M1 expansion board to test MEMS microphones with DFSDM.

expansion

As per the MEMS mic datasheet, input clock frequency Max value is 3.25MHz.

Given the system clock rate at 80MHz, the clock divider should be larger than 25.

In this project, to obtain 48kHz sampling rate, the clock divider is set to 52 and the decimation factor to 32: one 2048 samples corresponds to 42.6msec.

Bridge/jumper setting for one microphone (M1) acquisition

SB

Solder bridges to be closed

Bridge Connector Pin number STM32L476RG pin Description
SB9 CN10 28 PA6, PB14 MIC_PDM12(M1)
SB12 CN7 35 PC2 MIC_CLOCK_NUCLEO
SB16 CN10 28 PA6, PB14 MIC_PDM12(M1)
SB17 CN10 25 PB10 MIC_PDM34(M2)

Note: SB9 should be closed instead of SB17 for acquiring both L/R sound on a single PDM line.

Jumper pin setting

Jumper Position Description
J1 Open 5V generated on Nucleo
J2 1-2 Use on-board MIC 1(M1)
J3 1-2 Use on-board MIC 2(M2)

Note: M1's L/R pin is pulled-down and M2's L/R pin is pulled-up.

STM32L476RG pinout configuration (CubeMX)

This configuration use two lines to aquire sound: one for left mic and the other for right mic.

Pinout

It is also possible to use only one line for both L/R sound acquisition.

Schematics

UART

Parameter Value
Baud rate 115200bps
Data 8bit
Parity None
Stop 1bit
Flow control None

Test

Sine-wave tone generator

I used this on-line tone generator to generate sine-wave tone at 18000Hz frequency.

PCM data

PCM

Hanning window applied on the PCM data

Hanning

FFT result

FFT

FFT result (dB)

FFT DB

Vacuum cleaner

Vaccum cleaner seems to generate tone at around 5000Hz:

FFT result

FFT_Vaccum_Cleaner

References

Basis

Guide

Arm Cortex-M DSP extension

MEMS microphone

Audio

Audio signal processing