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.

TCA9539 无法读写

Other Parts Discussed in Thread: TCA9539

用USB到SMBus的桥接芯片CP2112 做TCA9539的主设备,在写从设备地址时,TCA9539不应答。

TCA9539 VCC接3.3V ,INT和reset都不使用,10K上拉到3.3V,A0A1接地,写E8无响应。

折腾了很久,实在找不到为什么?

还请帮忙解答,谢谢! 

  • SDA和SCL上拉电阻是10K吗? 建议上拉1K电阻。
    从机地址没有问题,主控是I2C接口还是SMbus,还是GPIO模拟的I2C ?
  • 是1k上拉

    主机这边就是I2C接口 ,TCA9539与另一个I2C设备一起共用I2C总线,另外的设备可以正常读到地址

    9539跟另外的设备也不存在地址冲突问题

  • 地址不冲突,说明不是地址的问题。
    那么是不是两个从机设备的I2C走线很长?导致寄生电容很大,I2C总线的负载电容不超过400pF。
    所以如果方便的话,看能否断开另一个I2C 设备,单独和9539进行通讯看是否正常?
  • 断开另一个设备TCA9539也不工作

    我测了I2C的波形,100K频率,是满足时序要求的

    之前有看到过别人说TCA9539 R/W为1时设备是没有应答的,我也试了确实还是不行

  • 您好,在您的第一个帖子中,提到了用的是USB到SMBus的桥接芯片做主控,SMbus的最高频率只能到100K,所以您这里提到100K时序就没问题了。 高于100KHz频率是不是就收不到ACK了?所以问题是不是出在这里。

    另外,方向控制位R/W 位当写数据的时候是0, 读数据是1.
    那您目前是R/W 为0 时,时序正常?
  • 确实是SMBus总线,芯片写的SMBus协议频率最高支持255khz ,你说的高于100kHz就收不到ACK了是指TCA5939默认工作模式是fast mode的400kHz吗?这个要怎么验证 ,那主控支持不了400k就没法工作了么?

    另外我的R/W位不管0还是1时候都收不到ACK应答

  • 您指的主芯片写的是SMBus最高支持255KHz吗?据我所知, SMbus协议的clock频率最大100Khz。
    TCA9539 的接口是I2C协议标准,能支持I2C的fast mode,最高400Khz的频率。 那么当频率小于等于100Khz的时候,是和SMBus兼容的。也就是说TCA9539也是支持I2C标准模式的,即0~100Khz的频率范围。

    TCA9539 不是默认400Khz的哈。它的 clock 频率大小是由主控来决定的。

    那么既然使用的是SMbus接口,SMbus需要注意的一点就是,当总线reset时候,主控给的clock信号有没有持续拉低,35ms的时间,这个也是Smbus和I2C的主要区别,如果clock持续拉低35ms,就会发生timeout导致无法正常通信。
    您能将您的时序图附上看下吗
  • 我的问题解决了,确实是主控这边SMBus频率的问题,我把频率设到60khz,就可以找到设备TCA9539了
    非常感谢您的支持!
  • 您好!发现之前的结论只是偶然识别到了 ,多几次后就发现依然是大概率识别不到TCA9529

    求助可还有什么别的思路