我们使用 IM69D120 MEMS 麦克风作为 PCMD3140的输入。
PDM Clk 设置为3.072MHz、采样率为16kHz
配置值为:
uint8_t regVal = 1; PCMD3140_WrReg ( TI_SW_RESET, ®Val, sizeof(regVal)); //SW-reset HAL_Delay(3); regVal = 0x81; PCMD3140_WrReg ( SLEEP_CFG, ®Val, sizeof(regVal)); //pull device out of sleep mode HAL_Delay(3); //delay to give device time to fully wake up regVal = 0x00; PCMD3140_WrReg ( ASI_CFG0, ®Val, sizeof(regVal)); //TDM protocol, 16bit slot size regVal = 0x01; PCMD3140_WrReg ( ASI_CH1, ®Val, sizeof(regVal)); //Channel 1: TDM slot 1 regVal = 0x00; PCMD3140_WrReg ( ASI_CH2, ®Val, sizeof(regVal)); //Channel 2: TDM slot 0 regVal = 0x03; PCMD3140_WrReg ( ASI_CH3, ®Val, sizeof(regVal)); //Channel 3: TDM slot 3 regVal = 0x02; PCMD3140_WrReg ( ASI_CH4, ®Val, sizeof(regVal)); //Channel 4: TDM slot 2 regVal = 0x41; PCMD3140_WrReg ( GPO_CFG0, ®Val, sizeof(regVal)); //GPO1 is PDMCLK, drive active low and high regVal = 0x45; PCMD3140_WrReg ( GPI_CFG0, ®Val, sizeof(regVal)); //GPI1: input CH1+2, GPI2: input CH3+4 regVal = 0x70; PCMD3140_WrReg ( BIAS_CFG, ®Val, sizeof(regVal)); //MICBIAS configured as GPI2 regVal = 0x40; PCMD3140_WrReg ( CH1_CFG0, ®Val, sizeof(regVal)); //CH1 is PDM input regVal = 0x40; PCMD3140_WrReg ( CH2_CFG0, ®Val, sizeof(regVal)); //CH2 is PDM input regVal = 0x03; PCMD3140_WrReg ( DSP_CFG0, ®Val, sizeof(regVal)); //HPF: 128Hz regVal = 0x00; PCMD3140_WrReg ( DSP_CFG1, ®Val, sizeof(regVal)); //all biquadratic filters are disabled regVal = 0xF0; PCMD3140_WrReg ( IN_CH_EN, ®Val, sizeof(regVal)); //CH1-4 enabled regVal = 0xF0; PCMD3140_WrReg ( ASI_OUT_CH_EN, ®Val, sizeof(regVal)); //all 4 time slots enabled regVal = 0x64; PCMD3140_WrReg ( PWR_CFG, ®Val, sizeof(regVal)); //power up
DSP 正在从 PCMD3140读取 TDM 流。
如果我们在高质量扬声器上回放4kHz 正弦波并使用上述设置捕获信号、我们最终得到一个奇怪的调幅调制信号。
在4kHz 时会发生这种情况、但在3.8kHz、3.9kHz、4.1kHz 或4.2kHz 时不会发生这种情况。
左侧3.9kHz
中间4kHz
右侧4.1kHz 
已经检查了撞击 MEMS 麦克风的声波,这是无可挑剔的。 声学信号中没有这种 AM 调制的迹象。 您可以在此处下载录制的波形文件 :链接
我们可以看到2kHz、4kHz 和6kHz 的振幅伪影
我们非常感谢您的任何帮助。