This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] PCMD3140:特定频率下的振幅调制

Guru**** 2507445 points
Other Parts Discussed in Thread: PCMD3140

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1014760/pcmd3140-amplitudemodulation-at-specific-frequencies

器件型号:PCMD3140

我们使用 IM69D120 MEMS 麦克风作为 PCMD3140的输入。
PDM Clk 设置为3.072MHz、采样率为16kHz

配置值为:

  uint8_t regVal = 1;
  PCMD3140_WrReg ( TI_SW_RESET, &regVal, sizeof(regVal));       //SW-reset
  HAL_Delay(3);
  regVal = 0x81;
  PCMD3140_WrReg ( SLEEP_CFG, &regVal, 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, &regVal, sizeof(regVal));          //TDM protocol, 16bit slot size
  regVal = 0x01;
  PCMD3140_WrReg ( ASI_CH1, &regVal, sizeof(regVal));           //Channel 1: TDM slot 1
  regVal = 0x00;
  PCMD3140_WrReg ( ASI_CH2, &regVal, sizeof(regVal));           //Channel 2: TDM slot 0
  regVal = 0x03;
  PCMD3140_WrReg ( ASI_CH3, &regVal, sizeof(regVal));           //Channel 3: TDM slot 3
  regVal = 0x02;
  PCMD3140_WrReg ( ASI_CH4, &regVal, sizeof(regVal));           //Channel 4: TDM slot 2  
  regVal = 0x41;
  PCMD3140_WrReg ( GPO_CFG0, &regVal, sizeof(regVal));          //GPO1 is PDMCLK, drive active low and high  
  regVal = 0x45;
  PCMD3140_WrReg ( GPI_CFG0, &regVal, sizeof(regVal));          //GPI1: input CH1+2, GPI2: input CH3+4
  regVal = 0x70;
  PCMD3140_WrReg ( BIAS_CFG, &regVal, sizeof(regVal));          //MICBIAS configured as GPI2  
  regVal = 0x40;
  PCMD3140_WrReg ( CH1_CFG0, &regVal, sizeof(regVal));          //CH1 is PDM input 
  regVal = 0x40;
  PCMD3140_WrReg ( CH2_CFG0, &regVal, sizeof(regVal));          //CH2 is PDM input  
  regVal = 0x03;
  PCMD3140_WrReg ( DSP_CFG0, &regVal, sizeof(regVal));          //HPF: 128Hz  
  regVal = 0x00;
  PCMD3140_WrReg ( DSP_CFG1, &regVal, sizeof(regVal));          //all biquadratic filters are disabled
  regVal = 0xF0;
  PCMD3140_WrReg ( IN_CH_EN, &regVal, sizeof(regVal));          //CH1-4 enabled  
  regVal = 0xF0;
  PCMD3140_WrReg ( ASI_OUT_CH_EN, &regVal, sizeof(regVal));     //all 4 time slots enabled
  regVal = 0x64;
  PCMD3140_WrReg ( PWR_CFG, &regVal, 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 的振幅伪影

我们非常感谢您的任何帮助。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Michael、

    这很奇怪。 您是否可以访问 APx555或其他可用于测量麦克风 PDM 输出的设备? 我想了解这可能是麦克风的特性、还是 PCMD3140以某种方式引入的特性。 如果您有其他数字麦克风、您也可以使用进行测试、这是比较的好方法。

    最棒的

    Zak  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好、Zak、

    这确实是一个很好的想法。 我可以从 miniDSP (基本上是 PDM 到 USB 转换器)获取 MCHStreamer 板、我在那里看到同样的现象。  
    但是、我发现它与采样率有很大关系:
    使用3.072的 PDM 时钟和16kHz 的采样率、我看到4kHz 正弦波的该振幅调制。
    使用相同的 PDM 时钟和48kHz 的采样率可产生完美的4kHz 正弦波。
    再次使用相同的 PDM 时钟和48kHz 的采样率、但使用12kHz 正弦波会再次导致该振幅调制。

    这似乎是 PDM 转换器的某种固有"混叠特性"、因为我使用完全不同的 PDM 转换器获得相同的结果。 我甚至尝试过完全不同的 MEMS 麦克风、结果与上述相同。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Michael、

    我不知道为什么这会在 PDM 转换中固有地成为问题。 我无法使用我们的 EVM 和 APx555重新创建此问题。 您确定这不是由 DSP 处理或数模转换中的某些内容引入的吗?

    最棒的

    Zak