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.

[参考译文] TAS3251:EVMboard I2S 输入(作为从器件)不工作

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/899911/tas3251-evmboard-i2s-input-as-slave-not-working

器件型号:TAS3251

您好!

我 的 TAS3251EVM 无法正常工作。 我为 TAS3251EVM 设置的配置 如下:

  1. TAS3251EVM 用作从器件(I2S)
  2. I2S 主器件来自我的原型板-为 TAS3251EVM 提供 BCLK、SDIN 和 LRCK
  3. R54和 R55被移除(MSP430上的 I2C)、从原型板上提供 I2C。
  4. J37 -输出(AIB I2S)
  5. J35 -从器件使能
  6. PLL 被启用。
  7. R168被移除、并且/I2S-BUF-EN 被强制为低电平(连接至 GND)。

在散热器和 J9之间的 TEST 引脚上、我可以看到 BCLK、LRCLK 和 SDIN 的数据是正确的。

我可以看到、SPK_OUT 引脚输出了600kHz 开关波形(但没有声音)。

PLL 配置如下。

请告诉我。

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

    您好!

    由于 TAS3251内部有一个 DSP 模块、您需要进行一些初始化。 您有 PPC3 GUI 吗?

    此致、

    Sam

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

    您好!

    感谢你的答复。

    是的、我使用 PPC3 GUI 和 TAS3251-SW (并使用 TAS3251-SW 中的头文件)。

    我想知道寄存器调整顺序是否有问题。

    头文件的一部分(寄存器调优部分)发布在此处。

    //寄存器调优
    { 0x00、0x00 }、
    { 0x7f、0x00 }、
    { 0x00、0x00 }、

    //SDOUT 控制

    { 0x07、0x00 }、//去加重禁用、SDOUT 是 DSP 输出

    { 0x08、0x20 }、//SDOUT 为输出、静音控制禁用(PCM 至 TPA)
    { 0x55、0x00 }、//SD 输出选择关闭

    //PLL 控制
    { 0x09、0x00 }、//I2S 从机模式
    { 0x0c、0x00 }、//主控模式 MCLK 分频器禁用

    { 0x25、0x7f }、//时钟检测忽略,禁用时钟分频器自动设置

    { 0x04、0x01 }、//PLL 使能

    {0x0d、0x11}、//PLL 源为 SCLK、DSP 时钟源为 PLL 时钟
    {0x0E、0x12}、//DAC 时钟源为 PLL、OSR 时钟为 PLL
    { 0x0F、0x02 }、//NCP 时钟源为 PLL
    {0x14、0x00}、//PLL 因子 P = 1
    {0x15、0x10}、//PLL 因子 J = 16
    {0x16、0x00}、//PLL 系数 D1 = 0
    {0x17、0x00}、//PLL 因子 D2 = 0
    {0x18、0x01}、//PLL 因子 R = 2
    { 0x1b、0x01 }、//DSP 时钟2分频
    { 0x1c、0x0F }、//DAC 时钟16分频
    { 0x1d、0x03 }、//NCP 时钟4分频
    { 0x1E、0x07 }、//OSR 时钟8分频

    //DSP 复位释放、待机模式请求关闭
    {0x02、0x00}、

    //数字音量控制
    { 0x00、0x00 }、
    { 0x7f、0x00 }、
    { 0x00、0x00 }、
    {0x3D、0x30}、
    {0x3E、0x30}、

    //目前手动调整数据
    { 0x00、0x00 }、
    { 0x7f、0x00 }、
    { 0x00、0x01 }、//移至第1页
    {0x02、0x00}、//模拟增益= 0dB
    { 0x00、0x00 }、  
    { 0x7f、0x00 }、
    { 0x03、0x00 },//取消设备静音
    {0x2a、0x11}、

    很抱歉这个长句。

    请告诉我。

    此致。

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

    我自己设法解决了这个问题。

    毕竟、寄存器调优中存在错误。

    在用于播放 TAS5766的转储文件中、我复制并粘贴了第0页和第1页的数据、并添加了用于设置书籍(0x00、0x00、0x7f、0x00)的数据、然后发出声音。

    注册设置数据发布在下面。

    //页0 (0x00)转储
    { 0x00、0x00 }、
    { 0x7f、0x00 }、
    { 0x00、0x00 }、
    {CFG_META_BURST、126}、
    {0x83、0x00}、
    // reg.add:0x04、0x05 0x04:PLL 使能= 0x01
    { 0x01、0x01 }、
    // reg.add:0x06、0x07
    { 0x00、0x00 }、
    // reg.add:0x08、0x09 0x08:Mutecontrol /GPIO 输出使能= 0x3c
    { 0x10、0x00 }、
    // reg.add:0x0a、0x0B
    { 0x00、0x01 }、
    // reg.add:0x0c、0x0d 0x0d 0x0d:PLL 参考时钟 b4=1:bck
    {0x7c、0x11}、
    // reg.add:0x0E、0x0F
    { 0x00、0x00 }、
    // reg.add:0x10、0x11
    { 0x00、0x00 }、
    // reg.add:0x12、0x13
    { 0x00、0x10 }、
    // reg.add:0x14、0x15 0x14:PLL P 0、0x15:PLL J 16 (0x10)
    { 0x00、0x10 }、
    // reg.add:0x16、0x17 0x16:PLL D 0、0x17:PLL D 0
    { 0x00、0x00 }、
    // reg.add:0x18、0x19 0x18:PLL R 2 (0001)
    // PLL = R*J.D/P*REF CLK (MHz)
    { 0x01、0x01 }、
    // reg.add:0x1a、0x1b 0x1b:DSP 时钟分频2 (0001)
    {0x80、0x01}、
    // reg.add:0x1c、0x1d 0x1c:DAC 时钟分频16 (1111)、0x1d:NCP 时钟分频器4 (0011)
    { 0x0F、0x03 }、
    // reg.add:0x1E、0x1f 0x1E:OSR 时钟分频8 (0111)
    {0x07、0x04}、
    // reg.add:0x20、0x21
    { 0x00、0x00 }、
    // reg.add:0x22、0x23 0x23:音频1帧0x04的 IDAC (MSB) DSP 时钟周期
    {0x00、0x04}、
    // reg.add:0x24、0x25 0x24:音频1帧0x00的 IDAC (LSB) DSP 时钟周期
    // IDAC = 0x0400 (1024)
    // 0x25 B1:禁用时钟自动设置 b4:忽略时钟停止检测
    { 0x00、0x1A }、
    // reg.add:0x26、0x27
    {0xf3、0x04}、
    // reg.add:0x28、0x29
    {0x02、0x00}、
    // reg.add:0x2a、0x2b
    {0x11、0x1f}、
    // reg.add:0x2C、0x2D
    { 0x07、0x00 }、
    // reg.add:0x2e、0x2F
    { 0x00、0x00 }、
    // reg.add:0x30、0x31
    { 0x00、0x00 }、
    // reg.add:0x32、0x33
    { 0x00、0x00 }、
    // reg.add:0x34、0x35
    { 0x00、0x00 }、
    // reg.add:0x36、0x37
    { 0x00、0x00 }、
    // reg.add:0x38、0x39
    { 0x00、0x00 }、
    // reg.add:0x3a、0x3b
    {0x00、0x77}、
    // reg.add:0x3c、0x3D
    { 0x00、0x1d }、
    // reg.add:0x3E、0x3f
    {0x1d、0x22}、
    // reg.add:0x40、0x41
    {0x02、0x04}、
    // reg.add:0x42、0x43
    { 0x14、0x05}、
    // reg.add:0x44、0x45
    { 0x00、0x00 }、
    // reg.add:0x46、0x47
    { 0x00、0x00 }、
    // reg.add:0x48、0x49
    {0x55、0x00}、
    // reg.add:0x4a、0x4b
    { 0x00、0x00 }、
    // reg.add:0x4c、0x4d
    { 0x00、0x00 }、
    // reg.add:0x4e、0x4f
    { 0x00、0x00 }、
    // reg.add:0x50、0x51
    { 0x00、0x00 }、
    // reg.add:0x52、0x53
    { 0x00、0x00 }、
    // reg.add:0x54、0x55
    { 0x00、0x00 }、
    // reg.add:0x56、0x57
    { 0x00、0x00 }、
    // reg.add:0x58、0x59
    { 0x81、0x00 }、
    // reg.add:0x5a、0x5b
    {0x00、0x36}、
    // reg.add:0x5c,0x5d
    {0x00、0x40}、
    // reg.add:0x5e、0x5f
    { 0x00、0x00 }、
    // reg.add:0x60、0x61
    { 0x01、0x10 }、
    // reg.add:0x62、0x63
    { 0x00、0x00 }、
    // reg.add:0x64、0x65
    { 0x00、0x01 }、
    // reg.add:0x66、0x67
    { 0x0F、0x03 }、
    // reg.add:0x68、0x69
    {0x07、0x10}、
    // reg.add:0x6a、0x6b
    { 0xd0、0x10 }、
    // reg.add:0x6c、0x6d
    { 0x00、0x00 }、
    // reg.add:0x6e、0x6f
    { 0x01、0x08 }、
    // reg.add:0x70、0x71
    {0x00、0x83}、
    // reg.add:0x72、0x73
    { 0x03、0x00 }、
    // reg.add:0x74、0x75
    {0x04、0x00}、
    // reg.add:0x76、0x77
    {0x88、0x01}、
    // reg.add:0x78、0x79
    { 0x00、0x00 }、
    // reg.add:0x7a、0x7B
    { 0x00、0x00 }、
    // reg.add:0x7c、0x7d
    { 0x00、0x00 }、
    // reg.add:0x7E、0x7f
    { 0x00、0x00 }、

    //第1页(0x01)转储
    { 0x00、0x00 }、
    { 0x7f、0x00 }、
    { 0x00、0x01 }、
    { CFG_META_BURST、128 }、
    { 0x81、0x00 }、
    // reg.add:0x02、0x03 0x02:模拟增益0:0dB
    { 0x00、0x00 }、
    // reg.add:0x04、0x05
    { 0x03、0x01 }、
    // reg.add:0x06、0x07
    { 0x01、0x00 }、
    // reg.add:0x08、0x09
    { 0x10、0x01 }、
    // reg.add:0x0a、0x0B
    {0x33、0x11}、
    // reg.add:0x0c、0x0d
    {0x11、0x11}、
    // reg.add:0x0E、0x0F
    { 0x00、0x01 }、
    // reg.add:0x10、0x11
    { 0x00、0x00 }、
    // reg.add:0x12、0x13
    { 0x00、0x00 }、
    // reg.add:0x14、0x15
    { 0x00、0x00 }、
    // reg.add:0x16、0x17
    { 0x00、0x00 }、
    // reg.add:0x18、0x19
    { 0x00、0x00 }、
    // reg.add:0x1a、0x1b
    { 0x00、0x00 }、
    // reg.add:0x1c、0x1d
    { 0x00、0x00 }、
    // reg.add:0x1E、0x1f
    { 0x00、0x00 }、
    // reg.add:0x20、0x21
    { 0x00、0x00 }、
    // reg.add:0x22、0x23
    { 0x00、0x00 }、
    // reg.add:0x24、0x25
    { 0x00、0x00 }、
    // reg.add:0x26、0x27
    { 0x00、0x00 }、
    // reg.add:0x28、0x29
    { 0x00、0x00 }、
    // reg.add:0x2a、0x2b
    { 0x00、0x00 }、
    // reg.add:0x2C、0x2D
    { 0x00、0x00 }、
    // reg.add:0x2e、0x2F
    { 0x00、0x00 }、
    // reg.add:0x30、0x31
    { 0x00、0x00 }、
    // reg.add:0x32、0x33
    { 0x00、0x00 }、
    // reg.add:0x34、0x35
    { 0x00、0x00 }、
    // reg.add:0x36、0x37
    { 0x00、0x00 }、
    // reg.add:0x38、0x39
    { 0x00、0x00 }、
    // reg.add:0x3a、0x3b
    { 0x00、0x00 }、
    // reg.add:0x3c、0x3D
    { 0x00、0x00 }、
    // reg.add:0x3E、0x3f
    { 0x00、0x00 }、
    // reg.add:0x40、0x41
    { 0x00、0x00 }、
    // reg.add:0x42、0x43
    { 0x00、0x00 }、
    // reg.add:0x44、0x45
    { 0x00、0x00 }、
    // reg.add:0x46、0x47
    { 0x00、0x00 }、
    // reg.add:0x48、0x49
    { 0x00、0x00 }、
    // reg.add:0x4a、0x4b
    { 0x00、0x00 }、
    // reg.add:0x4c、0x4d
    { 0x00、0x00 }、
    // reg.add:0x4e、0x4f
    { 0x00、0x00 }、
    // reg.add:0x50、0x51
    { 0x00、0x00 }、
    // reg.add:0x52、0x53
    { 0x00、0x00 }、
    // reg.add:0x54、0x55
    { 0x00、0x00 }、
    // reg.add:0x56、0x57
    { 0x00、0x00 }、
    // reg.add:0x58、0x59
    { 0x00、0x00 }、
    // reg.add:0x5a、0x5b
    { 0x00、0x00 }、
    // reg.add:0x5c,0x5d
    { 0x00、0x00 }、
    // reg.add:0x5e、0x5f
    { 0x00、0x00 }、
    // reg.add:0x60、0x61
    { 0x00、0x00 }、
    // reg.add:0x62、0x63
    { 0x00、0x00 }、
    // reg.add:0x64、0x65
    { 0x00、0x00 }、
    // reg.add:0x66、0x67
    { 0x00、0x00 }、
    // reg.add:0x68、0x69
    { 0x00、0x00 }、
    // reg.add:0x6a、0x6b
    { 0x00、0x00 }、
    // reg.add:0x6c、0x6d
    { 0x00、0x00 }、
    // reg.add:0x6e、0x6f
    { 0x00、0x00 }、
    // reg.add:0x70、0x71
    { 0x00、0x00 }、
    // reg.add:0x72、0x73
    { 0x00、0x00 }、
    // reg.add:0x74、0x75
    { 0x00、0x00 }、
    // reg.add:0x76、0x77
    { 0x00、0x00 }、
    // reg.add:0x78、0x79
    { 0x00、0x00 }、
    // reg.add:0x7a、0x7B
    { 0x00、0x00 }、
    // reg.add:0x7c、0x7d
    { 0x00、0x00 }、
    // reg.add:0x7E、0x7f
    { 0x00、0x00 }、

    };

    我认为最好将其设置为自动递增模式、而不会忽略。

    谢谢。

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

    你(们)好

    如何找到这些寄存器说明?我在 TAS3251 .PDF 中找不到它们

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

    你(们)好

    我也无法在数据表中找到它们。

    我想、未写入数据表的寄存器可能会被设置为与复位状态相同的数据。

    (或者、即使它被置位、也不能被写入。)

    PPC3应该可以看到复位状态下的所有寄存器信息。

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

    您好!

    "TAS3251处理流程"中描述了一些与 DSP 调优相关的寄存器。

    http://www.ti.com/lit/an/slaa799a/slaa799a.pdf?&ts=1589177376817