Download as pdf or txt
Download as pdf or txt
You are on page 1of 10

AN3998

STM32 PDM

ST MP45DT02 MEMS STM32 PDM



(PDM) 16 (PCM)
STM32F4 STM32F4DISCOVERY
I2S PDM
AN3997 STM32F4DISCOVERY

2011 10 ID 022391 1 1/10


www.st.com
AN3998

1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

2 PDM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
4.1 PDM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
4.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

5 PDM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
5.1 PDM_Filter_Init . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
5.2 PDM_Filter_xx_xx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2/10 ID 022391 1
AN3998

1. STM32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

ID 022391 1 3/10
3
PDM AN3998

2 PDM

(PDM)
PDM PCM

PDM

4/10 ID 022391 1
AN3998

MP45DT02 MEMS PDM 1 3.25 MHz1



STM32 SPI I2S 8
PDM STM32 SPI/I2S

1. STM32

STM32


)ODVK

86%
,6
0(06

,66' ,6 3'0/LE

069

ID 022391 1 5/10
9
AN3998

1 PDM
PCM IIR
16 (PCM)
/
I2S DAC...

2.

3'0
3'0

069

4.1 PDM
PDM
PDM
80 30 kHz
2.4 MHz
16 (0 dB) [-32768, 32767]

4.2


IIR
IIR
/
(MicGain) G = MicGain/64

6/10 ID 022391 1
AN3998 PDM

5 PDM

PDM PDM PDM


PCM
uint8 ( / 1000 * *
/ 8)
uint16 ( / 1000 *
)
pdm_filter.h
typedef struct {

uint16_t Fs;

float LP_HZ;

float HP_HZ;

uint16_t Out_MicChannels;

char InternalFilter[34];

} PDMFilter_InitStruct;

Fs Hz
LP_HZ 0
HP_HZ 0
In_MicChannels
PDM u8 8
Out_MicChannels
16
InternalFilter PDM 34
PDM pdm_filter.h /
libPDMFilter_IAR.a IAR
libPDMFilter_Keil.lib ARM
libPDMFilter_GCC.a GNU
STM32F4-DISCOVERY v1.10 Utilities\STM32F4-
Discovery

ID 022391 1 7/10
9
PDM AN3998

5.1 PDM_Filter_Init

Void PDM_Filter_Init (PDMFilter_InitStruct * Filter)

PDMFilter_InitStruct PDM
16 kHz PDM
PDMFilter_InitStruct Filter;

Filter.LP_HZ = 8000;

Filter.HP_HZ = 10;

Filter.Fs = 16000;

Filter.Out_MicChannels = 1;

Filter.In_MicChannels = 1;

PDM_Filter_Init ((PDMFilter_InitStruct *) Filter);

PDM_Filter_Init() STM32 CRC


RCC
PDM_Filter_Init()

5.2 PDM_Filter_xx_xx
PDM PCM
1000 1000
44100 Hz 22050 Hz 1000 44
22

PDM_Filter_XX_XX(uint8_t* data, uint16_t* dataOut, uint16_t MicGain,
PDMFilter_InitStruct * Filter)
data PDM

dataOut PDM_Filter

Volume 0 64
Filter PDM_Filter_Init
64 80 LSB
MSB

8/10 ID 022391 1
AN3998

1.

2011 10 27 1

ID 022391 1 9/10
9
AN3998

ST ST

ST ST

ST ST ST

ST

ST ST ST /

A
BC / D

ESCCQML
JAN

ST/STST
ST

ST ST ST

ST

2013 STMicroelectronics


- - - - - - - - - - - - - - - -
- - - - -

www.st.com

10/10 ID 022391 1

You might also like