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/TAS5825M:无声音输出

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/726998/linux-tas5825m-no-sound-output

器件型号:TAS5825M
主题中讨论的其他器件:TAS5805

工具/软件:Linux

我们对 TI 的 TAS5805 Linux 驱动程序进行了调整、以便与 TAS5825配合使用。 只需要更细微的更改。 我们还创建了一个简单的原型设计板、使我们能够通过 I2C 和 I2S 将处理器连接到 TAS5825。 我们为数字电源提供3.3V 电压、为模拟电源提供12VDC 电压。 我们可以通过 I2C 与芯片通信、包括设置寄存器和读取寄存器值。 我们还创建了最小配置。 驱动程序在加载该配置时将其置为有效。 但是、无论我们做什么、我们都不会打开扬声器输出。  

MUTE 引脚置为高电平。 !shutdown 引脚置为高电平。

当 I2S 上存在音乐时(这表示芯片处于播放模式)、状态寄存器0x03报告的值为0x03;当音乐不存在时(这表示 MUTE-ON +播放模式)、状态寄存器0x0B 报告的值为0x0B。  我们不是从外部控制芯片的静音、因此从静音关闭到静音打开的更改大概是由芯片完成的、而不是由我们完成的。 不过、它似乎表明芯片知道存在或不存在 I2S 流。

有趣的是、故障寄存器会报告故障、但我们无法弄清故障的原因:

故障寄存器0x70报告0x01、表示右侧通道过流故障。

故障寄存器0x71报告0x04、指示时钟故障。

我们的配置如下、按所示顺序写入芯片:

寄存器

0x01

0

0x02

0

0x0F

0

0x28

0x39

0x29

0

0x31

0

0x33

0x03

0x34

0

0x50

0

0x03

0x03

您可能想知道我们是否已经试用过 TAS5825EVM 评估套件、答案是我们已经订购了该套件、但尚未收到。  

最后、我要指出、表11的数据表文档不正确。 它将寄存器0x28H 的位3描述为具有四位信息。 显然、四位不能放入一位! 我们查看了 TAS5805的数据表中的表11、这很有道理。 我们使用了 TAS5805数据表中的值来设置 TAS5825中的寄存器0x28。

非常感谢您提供的任何帮助。

尊敬的、

Robert Seliger

WHIM LLC

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

    您可以与我分享您的驱动程序代码吗? 谢谢。

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

    我们使用了 TI 在此链接中提供的驱动程序 :https://e2e.ti.com/support/audio/f/6/t/722027。 对驱动程序源代码的请求源自我们、但由 TI 应用工程师发布。

    - Rob

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

    尊敬的 Rob:

    实际上、您所讨论的 TI 应用工程师可能是我。 :-)

    我将在明天提供一些新的驱动程序代码、让您重试。

    此外、您能否再次检查您的系统是否满足 TAS5825M 数据表中提到的以下启动过程?

    Andy

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我刚刚查看了驱动程序源代码、您是作者! 我欣赏和欣赏您直接与客户(如我)互动的事实。

    我们知道启动过程、但不清楚如何实际实现#3和#4。 问题是 Linux 在处理器启动时加载驱动程序、我们还没有弄清楚如何在首先确保 I2S 时钟运行的同时协调驱动程序的加载。 因此、我们进行了几次实验、没有一个实验产生了影响:

    a:我们不是在引导时加载驱动程序、而是使用 insmod 将其作为用户空间驱动程序进行安装。 我们在通过 aplay 播放文件后执行了此操作。
    b.与 A 相同、但在运行 aplay 时安装了驱动程序。
    C.驱动程序加载后、通过 aplay 播放文件后、我们在脚本中使用 i2cset 命令显式设置各种寄存器(根据我的原始发布)。

    在所有情况下、我们都可以读回预期的寄存器值。

    如果您想告诉我们该做什么、我们可以进行其他实验。

    我们已经考虑过通过晶体创建自己的 I2S 时钟、这意味着将芯片作为 I2S 主器件运行。 这样、只要有电源、就会有时钟。 然后、我们可以在驱动器中设置一个小延迟、以便时钟在加电时保持稳定。 我们尚未采用这种方法、等待 TI 的指导。

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

    尊敬的 Rob:

    请尝试以下代码。  我在 该代码中放置了最小配置。  如果你们仍然看到同样的问题、请告诉我。

    BTW、您能否向我展示原理图? 谢谢。

    e2e.ti.com/.../tas5825m.c

    Andy

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

    我们尝试了您的最新代码、但仍然没有声音。 我向您发送了一条有关原理图请求的私人消息。

    - Rob

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

    我认为到目前为止我还没有得到原理图。

    您可以通过电子邮件直接将其发送给我吗? 您可以在驱动程序代码中找到我的电子邮件地址。

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

    您的问题是否已解决?

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

    尽管我们的 TI 评估板通过 Windows PC 工作、但我们 尚未解决我们自己的评估板与用于原型设计的 Raspberry Pi 平台的组合问题。

    我们正在等待 TI 提供更多芯片(TAS5825已恢复正常运行)、以便我们可以构建更多自己的电路板来进行故障排除。

    我们希望下周收到更多芯片(10/1周)。

    - Rob

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Robert、
    考虑到 Andy 正在离线与您沟通、我将关闭此问题。 如果您有任何其他问题、请随时在 E2E 中创建新帖子。
    此致、
    郑少文