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.

[参考译文] TAS2781:TAS2781 音频输出问题:SPI 与 I2C 通信

Guru**** 2837190 points

Other Parts Discussed in Thread: TAS2781

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

https://e2e.ti.com/support/amplifiers-group/amplifiers/f/amplifiers-forum/1577032/tas2781-tas2781-audio-output-issue-spi-vs-i2c-communication

器件型号:TAS2781


尊敬的 TI 团队

目前、我在使用 TAS2781 时遇到问题。 使用 SPI 通信时、无法产生任何声音。 但是、将通信方法切换到 I2C 后、器件正常工作、并通过 I2C 通信输出声音。 这可能是什么原因?

在硬件方面、无论它配置为 SPI 还是 I2C、我都已确认通信正常运行、因为我写入寄存器的值可以读回为修改后的值。 此外、我应用于 TAS2781 的配置也基于数据表中的内容、如下所示:
image.png
image.png
此致
Keith

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

    尊敬的 Keith:  

    相同的寄存器写入应在 SPI 模式下正常运行。  

    我们可以尝试/检查一些项目

    • 您能否有一次回读 book0 第 0 页上的寄存器 0x02 值以确保器件处于活动模式?
    • 您是否可以尝试设置寄存器 0x0A 位 5:4 = 0x1 或 0x2。 这将检查器件是否尝试从不正确的插槽读取音频数据。  
    • 你可以尝试只是读取 I2C 和 SPI 模式下的所有簿 0 页 0 寄存器并检查差异吗?
    • 寄存器配置非常简单吗? 像仅写入寄存器 0x02 = 0x00 一样? 这应该足以进行一些音频播放。 它可以帮助我们将问题确定为硬件问题或配置问题。  

    您使用的是 EVM 吗? 这是定制电路板吗?

    此致、
    Arthur

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

    您好 Arthur

    感谢您的意见。 我使用的是定制板。

    1. 是的、我可以在 book0、page0 中读回寄存器 0x02。 其默认值为 0x1A、我完成初始化后、回读值变为 0x00。

    2. 好的、我尝试了向寄存器 0x0A 写入 0x1A 或 0x2A、但在这两种情况下都无法获得音频输出。

    3. 嗯、这正是我计划接下来要验证的内容。 我打算使用 EVM 进行验证、可能需要一些时间。   首先、我想与您确认一下:在 EVM 上、只需更改 J19 设置以连接足以通过 1.8V SPI 接口控制 TAS2781 的引脚 2<->4?

    4. 在 EVM 上、我尝试使用 I2C 仅写入 0x02=0x00、这不会产生声音。 但是、在同时写入以下寄存器后实现了声音:
      w 70 00 08 #0x08 页
      w 70 18 00 00 00 00 #0dB 音量
      w 70 28 40 00 00 00 #取消静音
      因此、只需使用以下命令即可生成声音:
      w 70 02 00
      r 70 02 01
      w 70 00 08 #0x08 页
      w 70 18 00 00 00 00 #0dB 音量
      w 70 28 40 00 00 00 #取消静音
      但是、通过 SPI 将这些相同的寄存器写入我的电路板仍然不会产生音频输出。

    此外,我遇到了一个奇怪的现象。 当我使用 SPI 接口尝试读取第 8 页的寄存器(例如读取地址 0x28)时、我发现在发送读取命令 [(0x28 << 1) + 1] 后跟一个虚拟字节后、返回的值不是 0x40、而是 0xFF。 仅在发送 第二个 虚拟字节后才会接收到正确的值 0x40。 这似乎很奇怪。 这种现象不应正常。 您对此行为有何评论或见解?  

    此致
    Keith

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

    尊敬的 Keith:

    对延误的道歉、Arthur 是 OOO。  

    此致、

    Sebastian