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.

[参考译文] 任何有关支持 Linux 的音频 I2S ADC 的建议

Guru**** 2563960 points
Other Parts Discussed in Thread: TLV320ADC3101, PCM1862, PCM1808, TLV320AIC3104, PCM9211, PCM1865, PCM1861, PCM1681

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/939372/any-suggestion-for-an-linux-capable-audio-i2s-adc

主题中讨论的其他器件:TLV320ADC3101PCM1862PCM1808TLV320AIC3104PCM9211PCM1865PCM1861PCM1681

您好!

我正在寻找一款具有96KHz 和24位分辨率的优质音频 ADC、它不能是高端 ADC、以符合成本要求。 我们需要 I2S ADC 与 Linux 兼容、以具有 Linux 驱动程序和 devicetree 设置指令。

任何帮助都得到了高度重视。

BES 此致、

Nils

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

    Nils、您好!

    请看一下 TLV320ADC3101、或支持非 Mini-DSP 的 ADC3100。  它们应满足您的需求。  这些器件有多个公开可用的驱动程序、但需要进行一些修改才能与您的确切内核和处理器实现相匹配。

    有许多器件被推入版本4.19.1:  https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/sound/soc/codecs?h=v4.19.100

     v 5.4.16中有许多器件被压入:  https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/sound/soc/codecs?h=v5.4.16

     

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

    您好、Collin、

    感谢您的良好反馈。 在内核^^的编解码器列表中查看这一点很聪明。

    TLV320很酷、但我认为它具有我们可能不需要的很多功能。 我发现 PCM1862非常有趣、您怎么看? 我们的目标是创建黑胶唱片播放机,查看系统。

    PCM1862具有更好的 SNR 和更高的分辨率、且价格几乎相同。 我们可以在我们的应用中使用滤波器前端以及放大器。 PCM1862的输入是 RIAA 放大器电路的输出。 PCM1862不支持 I2S、对吧? 仅保留已排列的音频数据?

    感谢您的反馈。

    此致、

    Nils

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

    您好、Collin、

    感谢您的良好反馈。 在内核^^的编解码器列表中查看这一点很聪明。

    TLV320很酷、但我认为它具有我们可能不需要的很多功能。 我发现 PCM1862非常有趣、您怎么看? 我们的目标是创建黑胶唱片播放机,查看系统。

    PCM1862具有更好的 SNR 和更高的分辨率、且价格几乎相同。 我们可以在我们的应用中使用滤波器前端以及放大器。 PCM1862的输入是 RIAA 放大器电路的输出。 PCM1862不支持 I2S、对吧? 仅保留已排列的音频数据?

    感谢您的反馈。

    此致、

    Nils

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

    您好!

    PCM1862是一个不错的选择、如果您正在寻找非常简单的产品、PCM1808甚至更简单。  PCM186x 确实支持 I2S、PCM1808也支持 I2S。

    请注意、您可以通过使用编解码器将 ADC 和线性输出块组合在一起来节省一些系统成本。  TLV320AIC3104 (立体声输入/输出)可能起作用?  我们之前共享的两个存储库中也有一个驱动程序。

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

    您好、Collin、

    感谢您的反馈。 我想我将使用 PCM1808。 它简单、便宜且适合我的应用:)出于某些原因,我使用 TPA6130作为耳机放大器。

    此致、

    Nils

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

    您好、Collin、

    您向我推荐的有关 PCM1808的另一个问题。 我认为该 ADC 可以正常工作、我们会将其与微型 Linux 模块(eq. Raspberry PI)配合使用。 PCM1808将用作主器件还是从器件? 那么、这将设置谁将生成时钟呢?

    为了接收音频数据、我们需要在没有 I2C 通信的情况下将该器件添加到 devicetree 中、对吧?

    谢谢、

    Nils

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

    Nils、您好!

    将 PCM1808配置为主器件或从器件的选择在很大程度上取决于您将如何配置 Raspberry PI 器件以及总线上还有什么其他选项。  由于总线上有多个器件、我之前认为您将 PCM1808作为从器件运行。  如果您希望作为主器件运行、则需要提供外部 MCLK、或使用 EVM 上显示的 XTAL 电路。

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

    您好、Collin、

    我以前从未使用过 I2S、因此我在设计上遇到了一些问题。 好的、我认为我需要将 PI (或其他 Linux CPU)配置为主 CPU、将 PCM1808配置为从 CPU。 Pi 将生成 Masterclock、对吧?

    如图所示、我有一个连接到 I2S 总线的线路输出驱动器。 这是正确的设置吗?

    谢谢、

    Nils

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

    Nils、您好!

    每个驱动器/处理器组合的工作方式与发出时钟所需的命令稍有不同、但在标准构建中、当配置为4线制 I2S 总线主机时、处理器将生成 MCLK、BCLK、 WCLK 信号和 PCM1808将输出 DOUT 信号以供处理器接收。

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

    您好、Collin、

    再次感谢您的帮助!

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

    您好、Collin、

    很抱歉再次打扰你。 我们目前正在测试设置、其中 RPI 作为主器件、PCM1808作为从器件。 我们需要从 rapsberry PI 生成主时钟(MCLK)、但我们无法确定如何执行此操作、您能帮助 uns 完成此操作吗? I2S 连接对我们来说正常、但 MCLK 缺失。 我们可以使用 GPCLK0生成时钟信号、但这是正确的方法吗?

    谢谢、此致、

    Nils

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

    您好、Collin、

    很抱歉、在这个主题中再次询问您、也许我应该启动一个新主题。 经过一些研究、我们决定使用 PCM1862而不是 PCM1808。 我认为这与使用您的链接中的设备驱动程序的 Raspberry PI 兼容、并且这是( )

    • 由于 RIAA 放大器为我提供~3V 的输出、立体声 ADC 的2.1V RMS 输入是否正常?
    • rapsberry PI 无法生成 MCLK 信号、因此 PCM1862将成为主器件、我们是否需要更改驱动程序/器件树中的某个内容? 那么、我还必须像在评估板上完成的那样在板上生成时钟信号。对吗?
    • 我使用 RIAA 输出的 ADC 单端输入。 我是否可以使用评估板来测试我的应用? 我应该如何连接它?

    感谢您的帮助!

    此致、

    Nils



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

    Nils、您好!

    我们不是 Linux 驱动程序或 RPI 专家、因此我们无法为器件树配置提供大量帮助、您可能需要深入研究并尝试不同的配置或在社区中寻找类似的实现方案。

    1)  假设您的意思是3Vpp、那么是的、这将在 PCM186x 的2.1Vrms 输入范围内。  使用外部交流耦合电容器、这与在 EVM 上执行的操作类似。

    2)  是的、您需要通过处理器上可靠的计时器输出或振荡器/晶体电路生成 MCLK。  提供有关器件树和驱动程序的指导真的很困难、因为这不是我们的专业知识、但所需的配置是通用的、应该得到支持、我们只是没有专门知识直接指导您如何执行。

    3)  可以、通过 RCA 连接或直接在之后将输入信号连接到 EVM。  然后、您需要通过卸下某些组件、然后在外部处理器中进行布线来断开器件与 PCM9211和 I2X 控制器的连接。  这不是最容易实现的事情、因为 EVM 主要用于演示 PCM1865的性能、同时与音频分析仪连接或通过 I2X 板将音频流式传输回 PC。  

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

    您好、Collin、

    我记下了您的建议、并根据 PCM1861 (硬件控制)设计了一个示意图。 我认为 PCM1862为我们提供了更多设置、但我们认为它会使事情变得更加复杂。

    我附上了 PCM1861电路的图片、并注明了我认为设置的外观。

    重要的是、PCM186是 I2S 主器件、因为 RPI 无法执行此操作。 我在采样率为96kHz 的单端配置中使用 ADC 1、对吧? 我添加了该晶体()

    MDX 设置来自数据表。

    您对我的电路有什么看法? 再次感谢您的反馈、很抱歉有很多问题。

    此致、

    Nils

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

    Nils、您好!

    PCM1861等硬件控制器件的连接和使用非常简单、因此比数字控制产品更易于使用。  在原理图中、输入、电源和去耦合看起来不错。  我们建议在 MCLK、BCLK 和 DOUT 线路上使用一些串联电阻(~22-33欧姆)、以帮助实现振铃/振荡、但除此之外、我们同意这种情况看起来正常、并且此器件上未使用的输入可以悬空。

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

    您好、Collin、

    感谢您的电路技巧。 我将向 I2S 通道添加电阻器。 我的时钟计算是否正确、PCM1861的(ABM3-24.576MHZ-D2Y-T)晶体是否正常?

    再次感谢您的支持! 这就是我使用德州仪器产品的原因!

    此致、

    Nils

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

    Nils、您好!

    ABM 晶振的频率是正确的,您将使用一个256*FS 分频器设置将24.576MHz 的时钟采样率降低到96kHz。  我们将让您验证晶体周围的确切组件、如果您需要2x18pF 电容器或18pF 的总阻抗(通常从晶体谐振的角度将这两个电容器串联考虑)。

    PCM186x 数据表指定的典型负载电容为15pF、因此18pF 晶振应该能够正常工作。

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

    您好、Collin、

    谢谢:)

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

    您好、Collin、

    另一个问题是、我设计的电路板如上面的原理图所示、但我订购了错误的 ADC。 我订购的是 PCM1862、而不是由硬件控制的 PCM1861。 是否有任何方法可以将我的电路与位置 PCM1862配合使用?

    谢谢、此致、

    Nils

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

    Nils、您好!

    我建议尝试获取 PCM1861、因为您的原理图是针对 HW 引脚控制版本设计的。  否则、您将需要一个 I2C 主设备来对 PCM1862寄存器进行编程。  它们在数字接口部分(HW 与 I2C)之外具有引脚对引脚兼容性。

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

    您好 、Collin、

    今天、我更换了 PCM861、并更换了错误的 PCM1861。 现在、我的硬件上放置了一个 PCM1861、其原理图如上所示。 我可能有一些问题、但我认为在这种配置(主模式11)中、我从 ADC 获得了主时钟输出?

    我获得以下输出信号:

    -数据引脚 提供一些数据输出

    - SCLK 提供6.144MHz 信号(对吗?)

    - LRCK 提供96.01kHz 信号(正确吗?)

    -当 MCLK 进入线性输出芯片时、它应该作为一个输出没有信号

    我是否理解有问题? 我选择了 PCM1861、因为它应该能够充当主控方并提供主控方 clokc 对吗?

    感谢您的帮助!

    此致、

    Nils

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

    Nils、您好!

    与大多数音频器件主 ADC/编解码器器件一样、PCM186x 器件仍需要低抖动稳定的 MCLK 输入、然后将 BCLK、WCLK 和 DOUT 输出发送回主机处理器。

    EVM 上显示了24.576MHZ 振荡器/XTAL 设计。   

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

    您好、Collin、

    我使用 X0和 XI 通过一个外部晶振提供24.576MHZ 时钟 但我可能会对某件事袖手旁观。 我想、当使用晶体振荡器时、PCM1681也会为其他器件生成 MCLK 信号。 因此、为了使其与上面提供的原理图配合使用、我需要从 XI/XO 中删除 Crysta、并且必须向 SCKI 提供25.5760MHz 的 CMOS 时钟?

    感谢您的帮助、

    Nils

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

    很抱歉、我想我会回答这个问题、但可能没有发布。

    我在上面略加错误地说了一些事情、并使该器件与另一个器件混淆、其中 SCKI 行为的实现方式不同。  对于该系列中的硬件和软件控制器件、SCKI 信号始终是输入。  如果您需要在4线制主控模式下运行、则需要使用其中一个 SW 控制型号并启用"SCK_OUT_TO_GPIO"控制设置、以将 SCK 输出到 GPIO。

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

    您好、Collin、

    感谢您的回答! 在使用硬件控制芯片时、我们通过在电路板上添加 CMOS 振荡器来解决这个问题。

    但是、感谢您在此开发案例中提供的支持!

    此致、
    Nils

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

    很棒!