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.

[参考译文] TAS5707:I2C初始化序列

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/642436/tas5707-i2c-init-sequence

部件号:TAS5707

大家好,

我尝试在没有评估套件中的PSIA接口板的情况下设置我的TAS5707板。

现在,我正努力通过I2C从AVR初始化TAS5707。 I2C测试正常工作,因此发送字节应该正常工作。 设备地址设置为0x36。

我从数据表中实现了init序列,因此这是我的简化代码:

//wait 50ms
delay_ms(50);
	
//微调振荡器(写入0x00以注册0x1B)
OUT_BUFFER[0]= TRIM _OSC;
OUT_BUFFER[1]= 0x00;
i2c_write(device_address, OUT_BUFFER);
	
//wait 100ms
delay_ms(100);
	
//退出关闭序列(写入0x00以注册0x05)
出缓冲区[0]= SYSCTRLREG2;
出缓冲区[1]= 0x00;
i2c_write (device_address,出缓冲区);

//wait 50ms
delay_ms(50);

//设置主卷(写入0x00以0x07形式)
出缓冲区[0]=出缓冲区(address_buffer_50ms)


	



在我调试系统之前,请您验证该过程是否足以播放音频。 数据格式,时钟设置等与设置的默认值相同。

问候Markus

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

    您好Markus:

    您是否测量了设备上的PWM输出? 如果PWM 正在切换, 则设备已成功进行了内冷连接。  您 可以在  加电初始化期间使用TAS5707 EVM生成cfg文件,并将其用于MCU编程。 初始化后,可以在 以下位置找到cfg文件 :X:\Program Files (x86)\Texas Instruments Inc\TAS570X GDE\ProcessFlows\TAS5707\diagnostics.cfg。 请勿忘记在初始化后放大音量。

    您需要检查的另一件事是数字控制引脚的状态(例如 PDN,重置...)。 请确保在 开机过程中遵循数据表中的图36。

    此致,

    郑少文

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

    Shawn您好!

    我已检查PWM输出。 没有发生任何事情,这就是为什么我得出结论认为这是一个初始化问题。

    我从接口评估板(MC57xxPSIA)获得电源和I2S音频数据。 如果我连接了1:1的针脚接头,一切都正常工作。 但是如果我将SCL,SDA和GND连接到我的微控制器板进行自编程初始化,它就不工作了(安装了I2C总线的上拉)。

    我也尝试了配置文件( 初始化主板后从TAS570X GDE导出),但在这些文件中,相当多的寄存器设置为默认值,这只是毫无意义的额外工作。 所以我尝试筛选init的哪些步骤很重要。 这就让我问第一个帖子的问题,如果这种代码和平中显示的init序列就足够了。 当我正确理解数据表时,代码将执行"初始化顺序"一章中所述的所有必需步骤。 实际上,init进程中一定缺少某些内容,否则它将正常工作。

    用于初始化这些器件的简短示例文件对 TI来说不是很有用,但对使用AMP芯片的每个人来说都是一个很大的帮助。

    此致,

    Markus

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

    Shawn您好!

    又是我。 我自己解决了这个问题。

    我在Arduino Uno上实施了初始化序列,以方便测试,并尝试了一些错误。

    I2C领域存在一个大问题:数据表通常是从7位地址进行通信。 当然,地址是一个字节(SO 8位)长。 这会自动导致问题。 此外,通常不清楚系统上的I2C驱动程序是否向右移动。

    示例:
    TAS5707的数据表显示:“TAS5707的7位地址为0011-011 (0x36)。”  
    1.1011万 = 0x1B
    0x36 = 0011 0110
    我想你能看到我正在取得的成绩。
    这是正确的公式: TAS5707的7位地址为0011-011或8位地址为0x36。

    在第一个POST中显示为代码的init序列I是正确的。 只需初始化这3个寄存器(OSC TRIM,Sys CTRL 2和主音量(全部为0x00))。 其余部分仍为默认配置。

    好的,问题已解决,感谢您的快速支持。

    此致,

    Markus

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

    您好Markus:

    很棒! 我很高兴您的硼钢现在工作正常。 其他一些客户也担心I2C地址,我会考虑修改数据表。

    此致,

    郑少文