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.

[参考译文] TAS2780:支持经典立体声 I2S 模式

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1496774/tas2780-support-for-classic-stereo-i2s-mode

器件型号:TAS2780
Thread 中讨论的其他器件: TAS2770

工具与软件:

您好!

     我有一个由 MCU 驱动 TAS2780的定制设计。 音频数据在固件中进行硬编码(用于测试目的)。 SAI 设置如下所示

采样率48K

位宽:16

通道/模式:立体声

附加为 I2S CLK、DATA 和 FSYNC 的波形。 您能否检查 TAS2780是否可以接受此格式?

我还解码并绘制了完整的 I2S 数据、并且可以看到预期的正弦波。  

来到 TAS 方面的事情, TAS 似乎是完全沉默。 以下是我应用于 TAS2780的自定义设置

0x00、0x00、//访问 PAGE 0

0x0A、0x32、//立体声下混频、字时隙和时隙16/32位。

0x60、0x00、//SCLK fsync 比率:16

0x08、0x19 //禁用自动速率检测

附件是我编写的完整 TAS2780初始化代码。

e2e.ti.com/.../TAS2780_5F00_init.h

我的问题是:

1. tas2780可以接受经典 I2S 立体声流吗? 供参考:器件的 I2C 地址为0x70

2. TAS2780接受上述数据流所需的附加设置是什么

3.我的初始化顺序是否正确? 数组(TAS2780_init.h 中)中的每一行都作为单独的 I2S 写入事务发送到 TAS2780。  行中的第一个条目 是寄存器地址、行中的最后一个条目是数据。   

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

    进一步调试后、我发现 I2C 驱动程序存在问题。 发送到 TAS2780的初始化序列错误。 我修复了这个问题、现在可以看到 I2C 线路中的数据符合预期。  

    在 E2E 的 TAS2770主题中、出现了 以下语句:" 在启用设备之前必须存在 I2S "。  对于 TAS2280也是如此吗? 我在我的设置中执行了该操作。 我  在 I2S 流启动后发送了 tas2780CustomConfig。  

    为了进行调试、我读回所有 INT_LTCH*寄存器。 我得到"由于 TDM 时钟错误而中断"&"TDM 时钟错误类型=无效的 SBCLK 比率或采样率,TDM 时钟错误类型=动态采样率更改"错误。  INT_LTCH0=0x04且 INT_LTCH4=0x06。 其他寄存器全部读取为0。 当我在 I2S 流之前或期间发送所有配置数据时、会收到相同的错误。  

    我看到我的位时钟是1.5MHz (基于逻辑分析仪输出)。 这可能是问题的原因吗?

    下面是我 在设置功耗模式0选项后发送到 TAS2780的自定义配置。  

    const uint8_t tas2780CustomConfig[]=

    0x00、0x00、//访问 PAGE 0

    0x08、0x19、//禁用自动速率检测

    0x0A、0x30、//立体声下混频、字时隙和时隙16/16位。

    0x60、(2<<2)、//SCLK fsync 比率:32

    0x0C、0x20 //将右侧通道时隙设置为2

    };

     

    我的 I2S 设置与此 帖子非常相似

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

    尊敬的 Syam:

    在写入寄存器0x02之前、FSYNC 和 BCLK 必须正在运行、这对于 TAS2780也是正确的。

    为什么禁用自动速率检测? 您可以在启用此功能的情况下进行测试。
    支持标准 I2S 格式、这应该没有问题。

    您是否知道系统中 FSYNC 和 BCLK 的频率是否太不稳定? 可能会被检测为时钟错误。

    此致、
    伊万·萨拉扎尔
    应用工程师

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

    伊凡向您致意、

                如您所述、我在启动 I2S 流后禁用了自动速率检测并设置了模式控制。 我的手在她的大腿上轻轻地抚摸着,手指在她的阴唇上轻轻的抚摸着。 我知道我的 BCLK 波形随着振铃的增加而变得可悲。 我已禁用自动速率检测并重试。 这一次,扬声器发出声音与剪辑。 我继续将 AMP_LEVEL 设置降至最低。 扬声器开始工作得更好、音频具有最少的削波/中断。 我降低了 MCU 上 SAI 引脚的驱动强度。 让扬声器的音质更好。 我将添加串联终端以使 BCLK 和 fsync 更加顺畅。  

    我仍然会获得以下中断

    INT_LTCH0:0x04

    INT_LTH1:0x02   //我想不是很重要。  

    INT_LTH1_0:0x19 //ms不 重要、我想是。

    INT_LTH4:0x06

    我现在需要与这些战斗!

    现在、我可以播放声音并验证 PCB 是否已启动。  如果数据表中提到模式控制寄存器的写入序列、那会很好。  

    我是否可以保持该线程打开、直到我知道如何解决时钟的问题?  

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

    我降低了 SAI 引脚的驱动强度、现在我可以看到所有 SAI 信号的更干净边缘。 我可以通过手动或自动速率检测播放声音。 我仍然有 INT_LTH*中断要清除。 我将在另一主题中发布观察结果。