工具与软件:
我正在对将单个 PCM6140-Q1连接到 Raspberry Pi Zero 2W 的设计进行原型设计、以便转换当前一个但最终四个模拟 MEMS 麦克风的输出。 特别是、我们正在利用 TDK InvenSense ICS-40300来实现其扩展的低频响应(6 Hz 至20 kHz)。 现在、原型位于试验电路板上(我正在使用 VQFN 转 DIP 适配器)、因此并不期望低噪声。 显然、该设计最终将 迁移到 PCB。 我主要遵循了数据表第9.2.1节中的参考设计。 以下是一些具体注意事项:
- ICS-40300是单端麦克风、我们期望直接在电路板上放置4个麦克风、因此我采用单端交流耦合(CH1_INTYP = 0d、CH1_DC = 0d、CH1_INSRC = 1d)。 但我不使用参考设计中的1uF 电容器、而是使用22uF 电容器、其阻抗设置为2.5k Ω(CH1_IMP = 0d)、FC 为~2.9Hz。 我已将交流耦合电容器的快速充电持续时间调整为50ms (INCAP_QCHG = 3D)。 INP1和 ICS-40300输出之间以及 INM 和接地之间都有一个22uF 耦合电容器。
- 对于 IOVDD 和 AVDD、我正在使用 RPi 的3.3V 电源。 我已经启用(AREG_SELECT = 1d)片上稳压器来生成1.8V AREG。 如参考设计中所示、AREG 引脚通过一个10uF 和0.1uF 的电容器耦合至接地。
- 如参考设计中所示、我将使用 MICBIAS 为 ICS-40300供电(包括所示的电容器)、并将其设置为 AVDD (MBIAS_VAL = 6d)。 ICS-40300能够在1.8V 或3.3V 的电压下运行
- 我当前已将 VREF 设置为1.375V (ADC_FSCALE = 2d)。 很快就会了解更多相关信息。。。
- 我目前已禁用 DRE 和 AGC (CH1_DREEN = 0d)、并且正在手动设置 PGA 增益(CH1_GAIN =……)。 很快就会了解更多相关信息...
- 我将 SHDNZ 连接到 RPi 的 GPIO24、并将其接地的4.7k Ω 电阻器默认将其拉低。
目前我没有使用任何一个 TI 特定的器件驱动程序。 我将使用 Python 来手动控制 SHDNZ 并通过 I2C 接口配置 PCM6140-Q1。 我已经在 RPi 上添加了一个器件树叠加层、以 使用简单音频卡驱动程序通过 I2S 连接 PCM6140-Q1、RPi 当前作为主站。
完成所有这些工作后、我可以为编解码器加电、从 RPi 看到它出现在 I2C 总线上、如上所述配置编解码器、并且使用 Linux ALSA"ARCOD"命令从编解码器成功地录制了一个通道、32位、48kHz 声音。 然而、我最终使 PGA 增益提升到了42dB、从而在录音中获得半合理的音量。 在这种情况下、录制环境只是我的家庭办公室、其中 HomePod 在距离麦克风约10英尺的合理音量水平播放一些音乐。
这看起来比我需要的增益更多、并且导致录波噪声相当大(尽管也有试验电路板系数)。 这促使我进行了一些额外的搜索、我找到了 SBBA583 ("TLV320ADCX120和 PCMX120-Q1系列中的模拟输入使用")、这进一步向我提出了以下问题:
- 根据数据表中的理解、ICS-40300的输出为0.8V +/- 0.355Vrms。 因此、我目前正在尝试将 VREF 设置为1.375V、 根据数据表中的表7-11、这似乎是最佳匹配。 但我想我漏掉了"AVDD 范围要求"列、该列表明 AVDD 应介于1.7V 和1.9V 之间(即标称值1.8V)。
- 我是否正确的理解是、当 ADC_FSCALE = 2d 且 AVDD 为3.3V 时、编解码器不能正常工作?
- 如果是、编解码器在这种情况下会做什么?
- 如果是、编解码器显然具有一个板载1.8V 稳压器、如果它能够在内部生成1.8V 电压、为什么它需要1.8V 的 AVDD?
- SBBA583明确表明、通过启用 DRE、差分模拟输入将实现最佳性能。 在给定该文档中的表2-10 ("SNR 数据")后、是否可以放心地假设也应为单端模拟输入启用 DRE?
我想重点在于在寻找 关于如何实现编解码器最佳性能的一些额外建议。 似乎我需要在设计中添加一个外部1.8V 稳压器、以便我可以提供1.8V AVDD/AREG、而不使用内部稳压器、以使 ICS-40300输出与 PCM6140-Q1的 ADC 输入更好地匹配。 这是正确的评估吗?
感谢您提前提供的任何建议!