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/processor-SDK-AM335X:McASP 内部 MCLK 问题

Guru**** 2556820 points
Other Parts Discussed in Thread: TLV320AIC3104

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/610493/linux-processor-sdk-am335x-mcasp-internal-mclk-issue

器件型号:PROCESSOR-SDK-AM335X
主题中讨论的其他器件:TLV320AIC3104

工具/软件:Linux

大家好、
我将 Beagle Bone Black 与内核4.4.4.41-rt50-g968d071ce9搭配使用。 (am335x-evm-linux-rt-sdk-src-03.03.00.04.tar.tar 封装)
我想使用 tlv320aic3104编解码器运行音频子系统。

我的目标是使用 MCLK 的内部时钟(而不是振荡器提供的外部时钟)、并且编解码器成为主器件。

我编辑了基本 DTS 并添加了用于配置音频子系统的适当节点。

但是、当我运行扬声器测试实用程序时、会出现以下错误:

写入错误:-5、输入/输出错误
xrun_recovery failed:-5输入/输出错误
传输失败:输入/输出错误

此外、ahclkx 引脚上没有信号。

问题的根源在哪里?

下面是我的 DTS 文件:

e2e.ti.com/.../3542.am335x_2D00_boneblack.dts.txt

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

    我在 "属性"下添加了简单音频卡、CPU 子节点。 但结果没有差异

    系统时钟方向="OUT";

    系统时钟频率=<24576000>;

     

    我还将 ahclkx 的引脚复用更改为输出引脚。

    这是我的新 DTS 文件:

    e2e.ti.com/.../8168.am335x_2D00_boneblack.dts.txt

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在 AM335x 器件上无法生成频率为24.576MHz 的内部主时钟。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢 Biser。

    我必须指出、我能够运行音频子系统。 当然、还有设置

    其中 CPU 是主器件。 也就是说、我能够使用内部 CPU 时钟。 尽管

    它产生的 fssclk 和 blck 不准确、这就是我想要在其中使用系统的原因

    编解码器处于主控模式! (使用内部时钟时)。

    我的问题是

    是否有办法使用内部时钟而不是外部时钟? 此外、编解码器在中工作

    主模式。 换句话说、它是一个生成 FS 和 BCLK 的编解码器。

    这也是我的 DTS 文件、具有我说过的设置:

    e2e.ti.com/.../4137.am335x_2D00_boneblack.dts.txt

    此致

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您可以使用 AM335x 的 CLKOUT1输出将主振荡器时钟馈送到编解码器 MCLK。 编解码器本身具有内部 PLL、可对其进行编程以生成所需的位时钟频率。 我将要求软件团队评论 Linux 驱动程序是否支持此用例。 他们将在这里直接做出响应。