TI中文支持网
TI专业的中文技术问题搜集分享网站

TPA6304-Q1: TPA6304 两片公用一组I2C,其中一片配置不成功

Part Number:TPA6304-Q1

你好~ 我有使用两片TPA6304,

1)其中一片配置成一片FAULT脚悬空 I2C addr 0x58; 

 2)另外一片FAULT脚接了47K上拉, I2C addr 0x5A , 

log信息如下,  0x5a一直不成功。帮忙分析一下会是哪方面的问题,谢谢!

TPA6304-AMP1=0x58 Init…

wr_addr=30, val=80

wr_addr=1, val=80

wr_addr=3, val=aa

wr_addr=36, val=20

wr_addr=37, val=22

wr_addr=38, val=a0

wr_addr=39, val=40

wr_addr=3a, val=62

wr_addr=4, val=0

rd_addr=30, val=0

rd_addr=1, val=0

rd_addr=3, val=aa

rd_addr=36, val=20

rd_addr=37, val=22

rd_addr=38, val=a0

rd_addr=39, val=40

rd_addr=3a, val=62

rd_addr=4, val=0

—TPA6304-AMP1 Init OK—!

TPA6304-AMP2=0x5A Init…

wr_addr=30, val=80

wr_addr=1, val=80

—IIC_Stop—

—IIC_Stop—

—IIC_Stop—

wr_addr=3, val=aa

—IIC_Stop—

—IIC_Stop—

—IIC_Stop—

wr_addr=36, val=20

wr_addr=37, val=22

wr_addr=38, val=a0

wr_addr=39, val=40

wr_addr=3a, val=62

wr_addr=4, val=0

rd_addr=30, val=0

rd_addr=1, val=0

rd_addr=3, val=ff

rd_addr=36, val=0

rd_addr=37, val=22

rd_addr=38, val=a0

rd_addr=39, val=40

rd_addr=3a, val=62

rd_addr=4, val=0

—TPA6304-AMP2 Init NG—!

liu billy:

排除AMP2芯片问题,我把AMP2的FAULT悬空 也配置成0X58 也是没问题的~ 难道0x5a 配置有问题?

,

Kailyn Chen:

您好,把47Kohm电阻改成4.7Kohm试试呢?我怀疑数据手册这里的电阻写错了,应该是4.7Kohm。

,

liu billy:

你好~ 换成4.7K 问题还是没解决,还是报错~

,

liu billy:

   FAULT脚 启动时是自己拉低然后再拉高吗?不需要外部控制器去操作吧?

,

Kailyn Chen:

是的, 不需要外部控制,fault是开漏输出,上电期间它先输出为低电平,经过tSTART 10ms左右DVDD Power on reset之后I2C 启动,这时候fault被上拉电阻拉高,此时上拉阻值也决定了I2C的地址,当上电初始化完成之后,fault引脚释放,为输出报错引脚。

您是用的switch切换的fault是悬空还是上拉吗? 注意别等上电初始化完成之后再切换,因为这时候fault引脚的功能就是输出报错功能了。

,

liu billy:

不是通过SWITCH切换的fault, 硬件配置的,直接上拉47K, 另外一个Fault脚悬空。共用一直I2C总线

,

liu billy:

1)0x58 正常(硬件配置fault脚悬空)
2)0x5a 异常找不到设备  (硬件配置fault脚接47K上拉电阻)此脚没跟外部控制器相连。

,

Kailyn Chen:

您好,我看到数据手册里有给出上拉阻值的范围,fault上拉阻值数据手册这里的47Kohm是有问题的,最高不超过10Kohm。所以像我上述说的改成4.7Kohm。我看EVM使用的是4.99Kohm,但是您已经改4.7还是不行,另外,上拉4.7KOhm到数字电压DVDD 3.3V是吗?您确认下上拉电压没问题吧?

,

liu billy:

是的,DVDD 3.3V

,

liu billy:

你好~ 我尝试了2.7K \ 2K、 100K 都不行,也尝试直接用LED把FAULT脚跟DVDD3.3V相连,还是不行.可以帮忙确认一下0x5a的有效配置是多少吗?

,

Kailyn Chen:

 好的,那很奇怪了,我去确认下这个0x5A的值是否有效。

另外,我也怀疑是不是七位从机地址为1011010,datasheet是最高位补0,得到的0x5A。

同样上拉47Kohm,您把地址改成0xB4试试看是否可以?同时我这边也会去确认下这个问题。

给您带来不便非常抱歉。

,

Kailyn Chen:

您好,有尝试将地址改成0xB4试试吗?

,

liu billy:

还在试,晚点回复你..谢谢~

,

Kailyn Chen:

 嗯好的, 等您的回复。

,

Kailyn Chen:

您好,关于TPA6304指的0X5A地址,我这边已经确认,fault上拉47kohm是没有问题的。 不是4.7K也不是左移一位。

可能还是读写程序或者哪里的问题,您这边再测试下。

您是使用的自己的板子还是EVM板子?

,

liu billy:

自己的板子,一样的程序,0x58没问题啊! 按理不是读写程序问题!

,

Kailyn Chen:

好的,另外,那麻烦再验证一下,总线上两片TPA6304 ,方便断开一片,只使用0x5A的地址看看是否可以吗?

理论上来说,总线上挂两片从机是没问题,I2C总线会受总线电容的影响,最大不超过400pF。我担心是不是由于走线过长,或者其他寄生电容的原因导致超过这个总线电容,识别不到另一个地址,所以我们可以断开另一片,只使用0x5A的地址试试呢?

,

liu billy:

两片同时工作,一片0x58 (工作),一片0x5a(工作不正常); 不工作的一片0x5a配置成0x58就可以工作了,排除了硬件问题。。目前我改成了两组I2C都用0x58,但是缺点要飞线才行~

,

Kailyn Chen:

两片都使用同一个地址,会发生地址冲突,总线寻址的时候会发生仲裁。

我的意思是是否可以断开0x58,只使用一片0x5A,看是否能正常工作?

,

liu billy:

不可以,就是单独一片0x5a 也没成功过!

,

Kailyn Chen:

您好,0x5A地址时,fault除了上拉,是否有和MCU或者其他Soc连接?如果有的话,断开fault的其他连接。

因为tpa6304上电期间,会抓取fault的电压来 决定I2C 地址,担心由于和外部电路连接,导致电压不准而无法获得I2C 地址。

赞(0)
未经允许不得转载:TI中文支持网 » TPA6304-Q1: TPA6304 两片公用一组I2C,其中一片配置不成功
分享到: 更多 (0)