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.

[参考译文] TAS5731M:SCLK 和 LRCLK 错误

Guru**** 2457760 points
Other Parts Discussed in Thread: TAS5731M

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/752490/tas5731m-sclk-and-lrclk-error

器件型号:TAS5731M

您好、TI 服务团队、

我在 BTL 模式下使用 TAS5731M 构建放大器。 我面临 I2S 时钟的问题。 时钟由 DSP 提供、具有以下值:

FS = LRCLK = 48kHz;SCLK = 64 x FS = 3.072MHz;MCLK = 8 x SCLK = 512 x FS = 24.576MHz。

据我所知、该时钟配置适用于 TAS5731M (数据表)。 这些时钟形状都相当好、稳定且精确(请参阅下面的示波器屏幕截图、观察 MCLK 的50MHz 带宽)。 SCLK 和 LRCLK 的边沿配合使用、我在1个 LRCLK 周期内计算了64个 SCLK 周期。 时钟源也可与其他器件配合使用、工作时不会出现任何问题。 因此、我建议问题出在放大器的一侧。

我在系统 MCU 上执行的初始化例程如下(/PDN 为高电平):

修整 OSC:将0x00写入0x1b

2.初始化系统寄存器2:将0x00写入0x05

3.设置主音量:将0x58写入0x07 (-20dB)

工作正常(初始化后、扬声器发出少量噪音)。 但是、如果我开始播放音频、就不会发生任何情况。

在调试过程中、我执行了以下操作:

1.复位错误状态寄存器以查看错误是否持续存在:将0x00写入0x02

2.读取错误状态寄存器:显示 SCLK 和 lrclk 错误

3.读取时钟控制寄存器以查看时钟速率自动检测是否起作用:它显示 FS=48kHz、MCLK=512 x FS、这是正确的

4.读取系统控制寄存器2以查看放大器是否静音:放大器处于正常运行状态(所有通道退出关断状态)、这也很正常。 此外、我还使用示波器检查输出级是否在切换。 它确实像384kHz 时的频率一样。

问题是、问题出在哪里?

感谢您的任何建议。

Greets、Markus。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Markus、您好!
    我对您出色的调试工作印象深刻。 这可能是 I2S 流上的信号完整性问题吗? 您提到 I2S 数据流也被其他设备使用,时钟传输线上可能会有信号反射。 请尝试在源端的时钟线路中添加串行、并在端子端子端子上添加75欧姆+100pf 您可以尝试的另一件事是降低 SLCK 和 MCLK 频率、以查看是否有任何改进。
    此致、
    郑少文
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Shawn、

    调试工作得到了回报。 我找到了问题。 如果仔细查看时钟的屏幕截图、您可能会看到它。  

    至于我使用 DSP 时钟进行测试的其他器件、一切正常、我再次开始检查 TAS5731M 的必要 I2S 时钟。

    问题是位时钟反相。 我的其他器件不关心位时钟(BCLK)是否反相。 但 TAS57xx 放大器需要数据表中所示的时钟极性。

    我更改了 DSP 输出的 BCLK 极性、现在一切正常。

    在我附加的屏幕截图中、您可以看到 BCLK (=SCLK)的行为方式(当 LRCLK 变为高电平时、BCLK 必须在同一时间变为低电平、并且数据在上升沿有效、在我的设置中、在下降沿有效之前)。

    感谢您的支持。 可以解决此问题。

    Greets、Markus。