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.

[参考译文] TLV320AIC3204:如何使用文档 SLOS602E 第20页中简要显示的 PDM 输入

Guru**** 2451970 points
Other Parts Discussed in Thread: TLV320AIC3204, PCMD3140

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1339068/tlv320aic3204-how-to-use-pdm-input-as-briefly-shown-in-doc-slos602e-page-20

器件型号:TLV320AIC3204
主题中讨论的其他器件: PCMD3140

大家好!

我自己拿到了 Knowles 的 PDM 麦克风测试套件、它可以很好地与开发套件配合使用、开发套件只是具有应用程序的 USB 软件狗。 现在我要做的是获取 PDM 音频并将其转换为 PCM 位流或模拟输出。

在 TLV320AIC3204上、我在文档 SLOS602E–2008年9月–2019年9月修订于第20页(第7.16节"数字麦克风 PDM 计时")中找到一个显示 PDM 计时的小图表、不过就这样、没有有关如何使用此功能的其他详细信息。

我可以获取此特定 IC (因为我在某些电路上已经拥有此信息)的任何信息来完成我想要实现的目标吗?

谁可以对此提供帮助? 我如何将 PDM 数据输入到编解码器中、这样我就可以通过编解码器将其转换、然后将其输出到模拟输出(更好地作为原始16位16kHz 或8位8kHz 位比特流)?

谢谢。

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

    尊敬的 Ben:

    应用参考指南(第2.3.2.2节)详细介绍了如何设置数字麦克风支持: https://www.ti.com/lit/ml/slaa557/slaa557.pdf?ts = 1710875946480&ref_url=https%253A%252F%252Fwww.ti.com%252Fproduct%252FTLV320AIC3204

    第 2.3.3.3小节将向您介绍整个 ADC 设置。 正确设置后、您可以按照自己需要的16位格式从麦克风获取数据、还可以启用环回以通过 DAC 播放数据、但这也需要设置 DAC 侧。

    如果您仅对数字麦克风至 I2S 转换(无模拟输出)感兴趣、建议您查看 PCMD3140: https://www.ti.com/product/PCMD3140?keyMatch=PCMD3140&tisearch=search-everything&usecase=GPN-ALT

    它比编解码器便宜,软件支持更友好。

    此致、
    J·麦克弗森

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

    尊敬的 Jeff:

    感谢您的快速响应。 我已经看过 PCMD3140、但不具备焊接那么小的能力。 我只是在测试我手中的麦克风。 我想我可以随时订购开发板。

    至于你提到的2.3.3.2.2部分,我明天会研究。

    当我有机会测试该 TT 时、我会更新该 TT。

    谢谢!

    贝诺伊特

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

    您好 Benoit、

    好的、如果您有任何进一步的问题、请告诉我、
    J·麦克弗森

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

    再次大家好、Jeff、

    我已经通读了第2.3.3.3节、很抱歉我不知道怎么配置编解码器、使其从 PDM IN 进入 I2S 输出(或模拟输出)、这是因为我没有看到任何解释性的解释、如"要将 PDM 输入转换为 xxx 输出、 执行此操作"。 我两天前刚 PDM 通过一个开发套件发现了什么是 PDM、该开发套件用于测试通过 USB 连接到我的 PC 进行测试的 USB-OUT 麦克风。

    我的 AIC3204编解码器目前已配置为 通过 PIC24 MCU 获得3.072MHz 的 MCLK 和128kHz 的 BLCK、作为50%占空比的 PWM 信号。 对于 MCLK、我不能比3.072MHz 更快。 作为回报、编解码器返回8kHz WCLK 以及 DOUT 上8位8kHz 的 PCM 音频数据。

    如前所述、我想尝试将 PDM 音频路由到其中一个模拟输出、但也可以作为 PCM 16位16kHz 输出甚至8位8kHz 输出提供。

    所有这些都要说,就 PDM 到你提供的部分的任何转换,我诚实地不知道如何 去.

    我可以遵循是否有已知正常工作的寄存器设置示例?

    再次感谢、

    贝诺伊特

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

    您好 Benoit、

    我目前缺少编写配置示例的硬件、但我可以更清楚地定义步骤:

    1) 1)确定 PDM 时钟输出应该来自哪里(GPIO (寄存器52)或 MISO (寄存器55)。

    2) 2)确定应将 PDM 数据输入到的位置。 最简单的选择是使用寄存器54的 DIN。

    3)在寄存器81中、反映了您在步骤2:数据来自何处。 在同一个寄存器中、您需要将其中一个或两个 ADC 设置为数字麦克风输入。 应用参考指南指出、模拟部分可以断电、但我们现在只需打开 ADC。

    4) 4)使用寄存器82取消 ADC 的静音。 您可以参阅 应用参考指南中第4.0.4节中有关设置 ADC 路径的步骤。 PGA 设置等设置不适用、因为这些设置适用于模拟信号。

    5)希望在这一点上,我们可以看到 DOUT 上的 I2S 数据。 默认情况下、根据您为其提供的任何采样率、这将是16位 I2S /设置时钟分频器以进行输出。 如果 WCLK 设置为8kHz、则无法同时以16kHz 的频率输出数据。

    6) 6)要将数据返回到输出、我们可以在寄存器29的位4中启用 DIN -> DOUT 环回。

    7) 7) 4.0.2应用参考指南中还将向您介绍 DAC 设置。 由于我们从典型的 I2S 数据开始、所以此处的所有步骤都很重要。

    如果您需要对上述步骤进行任何说明、请告诉我。

    此致、
    J·麦克弗森

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

    尊敬的 Jeff:

    很抱歉(很晚)回复。 我被拉住了,现在我正试图回到原来的位置。

    因此您确认 AIC3204确实提供了 PDM 我可以理解什么? 实际上并没有详尽地记录这些信息。

    我正在使用的麦克风是 Knowles V2S200D 振动麦克风。  它只能接受特定的频率、在低功耗模式下介于600kHz 和950kHz 之间、在正常模式下介于1.2MHz 到3.3MHz 之间。

    我写信给 FAE、询问可以使用的"频率阶跃"。 我认为我的 MCU 不能生成600kHz 的启动频率、但它可以生成768KHz、1.024MHz、2.048MHz 等。 这是因为我的 MCU 具有129.024MHz 的内部频率。 我选择该频率是因为它可以实现3.072MHz、2.048MHz 等常见的 PWM 频率、还因为它还可以以115200等特定比特率发送/接收 UART 数据而不会出现错误。

    也就是说、AIC3204如何知道我要泵送到其中的数据是 PDM? 我的意思是、PDM 是一个可变脉冲、我没有看到任何寄存器指定可将输入设置为 PDM。 那么、它怎么知道如何处理呢?

    对不起我的无知, PDM 对我来说是个新手,我仍在学习它。

    再次感谢!

    贝诺伊特

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

    您好 Benoit、

    是 AIC3204不支持 PDM 麦克风作为输入。

    您的频率逻辑听起来是正确的。  

    对于编解码器设置、寄存器81说明了如何让编解码器接收 PDM 输入与模拟麦克风输入

    从 MSB 到 LSB、您可以为两个通道上电、配置 PDM 输入的来源、并确定哪个或两个通道将接受数字 PDM 输入或模拟输入。

    此致、
    J·麦克弗森

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

    感谢您的快速回复!

    我必须在下周研究一下、因为我认为我必须掌握很多东西。

    我当前不使用 P0_R81。  我知道 ADC 是什么、但它与数字麦克风之间的关系是什么? 目前、我将输入 IN1_L (引脚13)用于模拟麦克风1、IN2_L (引脚15)用于模拟麦克风2。 那么、ADC 有什么处理方法呢?

    在我当前的设计中、该编解码器同时使用了主音频总线和辅助音频总线:

    BCLK (引脚2)、WCLK (引脚3)和 DOUT/MFP5 (引脚5)连接到 MCU。  IN1_L 和 IN2_L 上的两个麦克风将被采样、数字化并发送至 MCU、然后 MCU 会触发至 IP 通道。

    辅助音频总线将 GPIO/MFP5 (引脚32)用作 S_BLCK 输入、将 SCLK/MFP3 (引脚8)用作 S_WCLK 输入、将 MISO/MFP4 (引脚11)用作 D_OUT。

    S_BCLK 和 S_WCLK 由调制解调器的 PCM 通道生成、作为输出信号(编解码器的输入)、不能改变。 编解码器上 D_OUT 的音频输出到调制解调器的 D_IN、然后通过调制解调器蜂窝语音通道发送出去。

    现在、我要替换 PDM 的模拟麦克风。 通过查看 P0_R81、似乎我的唯一选项是将 DIN/MFP1 (引脚4)用作 PDM 音频输入。 该寄存器引用 ADC。

    此外、您对麦克风所需的 PDM CLK 有何建议? 它可以为 PDM 时钟执行600Hz 到3.3MHz 之间的任意操作、目标是将采样的 PDM 音频重新发送到主音频总线(IP 通道音频)或辅助音频总线(语音通道音频)上。

    再次感谢!

    贝诺伊特

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

    您好 Benoit、

    ADC 还负责将 PCM 数据解码为 I2S 数据。 我知道这有点违反直觉、因为 PCM 是数字信号、但为了简单起见、只需了解 PCM 数据占用 ADC 通道(左侧或右侧)、而牺牲模拟麦克风通道。 由于您正在将模拟麦克风交换为 PDM 麦克风、因此这没有问题。 但是、由于您的辅助 I2S 设置、您只能使用引脚4 (DIN)。

    对于 PDM 时钟、您将需要一个是所需采样率的整数倍的时钟。 通常、可以在麦克风数据表中找到该信息。 编解码器将使用 ADC 调制时钟作为 PDM 时钟输出。 此值由采样率乘以 ADC 的过采样率(由时钟树设置)确定。 通常情况下、AOSR 为128、但这对于您的限值来说过高。 64是一个非常常见的 AOSR 我见过 PDM 麦克风,将适合你的极限:64*48000= 3.072MHz。 ADC 对数据进行采样后、它将在初级输出或次级输出上作为 I2S 数据输出、就像使用模拟输入一样。

    此致、
    J·麦克弗森