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.

[参考译文] TAS5720A-Q1:时钟错误? 无法获取音频。

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/722171/tas5720a-q1-clock-error-unable-to-get-audio

部件号:TAS5720A-Q1

您好,

我正在尝试使FS = 48kHz,SCLK = 32*FS,MCLK = 256*FS模式工作,这是数据表中单速软件控制模式所允许的。

我能够获得所有3个时钟,如预期,LRCK = 48 KHz,SCLK = 1.54 MHz和MCLK = 12.35 MHz。 但是,我不断收到CLKE错误(寄存器8中的位3)。 此外,我无法检测到任何输出。

我已尝试将SPK-SD GPIO引脚从高->低->高切换,但未观察到结果变化。

当尝试将SPK-SLEP/ADR引脚从高切换到低时,我无法这样做。

是否有人面临这样的问题? 有人能帮我吗?

谢谢你。

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

    您可能知道CLKE错误通常表示MCLK,LRCK和/或SCLK为:
    1.不受支持的比率
    2.不受支持的费率
    3.其中一个时钟已停止

    我注意到,如果您通过MCLK = 256*48K = 12.288MHz计算MCLK,则MCLK与应该的值相差约62kHz。

    如果可能,我建议以12.288MHz运行,并查看是否开始获得正确的输出。

    SCLK也关闭4kHz,因此我建议将其更改为1.536MHz。


    此致,

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

    您好,Robert:

    理论上进行检查时,MCLK和SCLK分别以256F和32FS的形式接收。 但是,当使用DSO测量相同的频率时,MCLK的读数是12.35 MHz,而SCLK的读数是1.54 MHz,略高于1.536 MHz的预期值,我怀疑这可能是四舍五入到小数位数2所致。

    在TCR2中设置的DIV位被设置为3,即(((MCLK / SCLK)/ 2)- 1),从而确认SAI和TAS5720都接收12.288 MHz频率的MCLK。 [最初,最高可得性与可得性之间的MCLK频率为1024F,因此DIV为7]

    根据我对代码的理解,在播放音频测试矢量时,电源控制寄存器(一种控制端口寄存器)的SPK-SD位从高->低->高切换。 这种切换发生多次,直到测试向量的执行。

    62kHz额外MCLK频率的原因可能是什么? ? 有什么建议可以帮助我获得正确的MCLK?

    谢谢你。

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

    让我们回到这里,以便我可以更好地跟随。 您使用什么来创建MCLK并将其发送至TAS5720A-Q1?

    此致,

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

    对于延迟回复,我们深表歉意。 TAS5720A-Q1被配置为从属设备。 因此,SAI执行生成MCLK的任务。 根据我的理解,在执行SAI的探测函数时生成MCLK。调用devm_clk_get (&pdev->dev,i)似乎设置了4个可能的MCLK值。

    在编解码器端,MCLK在其探头功能中设置并启用。

    我希望这是您希望了解的信息。

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

    您是否有任何方法可以使该输出更精确的MCLK频率?

    此致,

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

    您好,Robert:

    以下是我至今的看法:

    • 我能够生成所有3个CLK。
    • MCLK = 12.228 MHz
    • 在实际使用DSO测量时,测得的值在12.25 MHz,12.29 MHz,12.32 MHz和12.35 MHz之间波动。
    • BCLK = 1.54 MHz (根据需要)
    • LRCK = 48 KHz (根据需要)

      • 我们已经验证了CLK和输出,以便使用WM8960编解码器
      • 观察:
      • 观察到MCLK波动。
      • 观察到两个编解码器WM8960和TAS5720的SAI的TX寄存器值相同。
      • FSL_SAI_TCSR = 0xD0170C01 [当音频播放开始时,此寄存器的值为0,音频终止后,此值将更改为此值]
        FSL_SAI_TCR1 = 0x3A
        FSL_SAI_TCR2 = 0x70万F
        FSL_SAI_TCR3 = 0x1万
        FSL_SAI_TCR4 = 0x10F1B
        FSL_SAI_TCR5 = 0xF0F0F00
    • 注册了2个声卡,每个声卡有2个设备:
    ****播放硬件设备列表****
    卡0:wm8960audio [wm8960-audio],设备0:HiFi wm8960-hifi-0[]       (用于WM8960)
    卡0:tas5720音频[tas5720-audio],设备0:HiFi tas5720-ampler-0 []   (用于TAS5720)
     子设备:1/1
     子设备#0:子设备#0
    卡0:wm8960audio [wm8960-audio],设备1:HiFI-ASRC-FE (*)[]       (用于WM8960)
    卡0:tas5720音频[tas5720-audio],设备1:hIFI-asrc-FE (*)[]           (用于TAS5720)
     子设备:1/1
     子设备#0:子设备#0
    卡1:amixaudiosai [amix-audio-sai],设备0:HiFI-AMIX-FE (*)[]
     子设备:1/1
     子设备#0:子设备#0
    卡1:amixaudiosai [amix-audio-sai],设备1:HiFI-AMIX-FE (*)[]
     子设备:1/1
     子设备#0:子设备#0
      • 根据WM8960功能启用了对TAS5720的ASRC支持。
      • 当TAS5720编解码器的音频播放开始时,检测到过电流硬件故障(OCE)。
      • 在播放音频测试矢量时,0x08编解码器寄存器的CLK ERR位过低,表示正确的CLK速率和正确的可用性。 音频播放结束后,此位会变高。
      • 播放音频测试矢量(即OCE位设置为高)时,故障配置和错误状态寄存器值读取为0x04。
      • 一旦音频测试向量终止,并且关闭过程开始,寄存器值将变为0x0C,即CLKE和OCE位设置为高。
      • 当控制从aplay命令返回到终端后,寄存器值被发现为0x08,即只有CLKE被设置为高。
      • 推理:
      • 我假定这种寄存器值的种类可能会被观察到,因为CLK很容易获得,因此只设置了OCE位(0x04)
      • 稍后,当音频播放完成且SAI关闭过程开始时,CLKE和OCE位设置为高(0x0C)。 我们假定在关闭SAI时禁用了CLK。
      • 当结束播放音频的整个过程后,控制器返回终端时,只有CLKE位被设置为高(0x08)。
      • 1 W,8欧姆的扬声器连接至主板。 启动音频时,会听到扬声器打开时的微弱声音,但听不到输出音频。

    在设备平台探头功能中设置AMP_MUTE (SPK_SLEEP/ADR)=0时,不支持音频播放,而且I2C寄存器不可访问系统在设置Saif格式时返回错误,并且未设置编解码器DAI。

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

    您好,Robert:

    我能够使音频正常工作。 缺少的一点是,根据硬件原理图,发现编解码器处于PBTL模式。 它最初配置为BTL模式,因此在更改位值后,我们能够生成音频输出。 此外,我们以前遇到的过电流错误也通过此更改得到了解决。

    非常感谢您的时间和努力。