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.

[参考译文] TCA9548A:仅在发送两次相同命令后 TCA9548A 才正确切换

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1358511/tca9548a-tca9548a-switch-correctly-only-after-sending-twice-the-same-command

器件型号:TCA9548A

您好!  

我有一个包含2个 TCA9548A 芯片的电路板。 一个地址为 x70、另一个地址为 X71。

Im 使用 NI USB-8452作为 I2C 主设备、从我的应用发送数据。  

SCL 和 SDA 引脚有一个4.7kOm 的上拉电阻器到 Vcc =3.3V

该应用非常简单:

  1. 配置从器件地址 x70 +1位写入、
  2. 编写一条命令以切换通道。 例如、如果我想连接 Channel1、我发送"x1"。 我已将 CH1的 SCL 和 SDA 连接到示波器。 如 图 TA CH1.jpg 所示、黄色信号为 SCL、绿色信号为 SDA。 这是预期行为。   
  3. 关闭会话和参考。
  4. 停止应用。

问题 :  

运行上述应用程序一次后、我将命令更改为"x0"(未选择通道)、然后再次运行应用程序。 让我意外的是、我在示波器中看到了上述信号的一部分(请参阅图 TA Ch0 Bad)。 我应该看到"无信号"。  

我改回 Ch1"x1"、然后再次运行应用。 我在范围内看到预期数据(TA Ch1.jpg)。 现在、我将数据更改为"x2"、运行应用程序并 在示波器中看到额外的数据(请参阅图 TA CH2.jpg)我预计不会看到任何信号。 如果我使用数据"x2"再次运行同一个应用程序、则示波器中没有接收到任何信号。 这是预期行为。  

注意 :我 用 FTDI 的不同 USB I2C 主机验证了这种行为: C232HM-DDHSL。

结论:

似乎我需要运行两次相同的应用程序,以"清理"缓冲区, Im 不知道为什么我需要运行两次应用程序正常运行。  

  1. 问题可能是什么?  
  2. 这是预期行为吗?
  3. 如果是硬件问题、有什么建议?
  4. 是否有用于清理旧数据或清理数据左侧的命令?

提前感谢

达利亚

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

    数据表的第8.5.4节显示:

    选择通道后、在 μ I²C 总线上产生停止条件后、通道将变为活动状态。

    您是否在正确的位置实际生成停止条件?

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

    大家好、Dalia、

    这似乎是 Celermens 提到的软件问题。 请检查是否正确生成了停止条件、以及问题是否仍然存在。 我建议 连接 TCA9548的 RESET 引脚、以便系统主控器可在操作不当时复位器件。 将一个低电平输入置为 RESET 引脚 将复位 TCA9548A。

    谢谢。

    近红外  

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

    高 Clemens 和 NIR、  

    感谢您的回答。  

    使用 NI USB I2C 器件、它在提供要写入的字节数后自动发送停止位。  

    我指定使用 FTDI C232HM I2C 器件发送停止位。  

    使用此驱动程序时、它应该是停止位、但是如果 TI 芯片正确接收、那么 Im 不是100%。 明天我会仔细检查这一点,我将公布测试结果。  

    关于复位、  FTDI C232HM I2C 有一些 GPIO 线路、Im 考虑使用其中之一来控制复位引脚。  

     

    我感到奇怪的是、如果我 执行 两次命令、它会起作用。 我明天会检查一下、  

    谢谢你,我会回来的...

    达利亚

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

    大家好、Dalia、

    感谢您的回复、请及时更新我们的信息。

    谢谢。

    近红外  

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

    高 NIR 和 Clemen  

    下面是一些更多输入:  

     来自 NI USB-8452的 TCA9548A 输入如下:  

           

    我正在 SCL +SDA +来自 NI-USB8452的内部2K 电阻器上使用4.7K 的上拉电阻器。 如果没有内部上拉2K 电阻器、信号看起来不好。 但是、我还建议在没有2K 内部电阻器的情况下进行尝试。  

    从上面的图中可以看出、Im 发送地址 x70 +0bitW、然后它从从器件的 ACK 等待、并发送数据"1"以连接 Channel0。  

    输出如下所示:  

        

    进行缩放时、输出地址如下所示:  

       

     

    我在输出中运行了几次测试、看到的是来自从器件更改的 ACK。 有时、延迟为300ms、有时更多、有时更短。 来自从器件的 ACK 存在错误行为。  

    根据您的经验、问题可能是什么?

    任何见解都将受到赞赏。

    提前感谢

    达利亚

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

    大家好、Dalia、

    您是否尝试过重置软件并重新发送信号?  

    同样、 在故障 ACK 信号后使用 RESET 引脚复位器件可能会修复其行为。  

    如果您尝试了上述建议、请告诉我、并及时更新我们的信息。  

    谢谢。

    近红外  

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

    您好 NIR、  

    我每次运行时都会重置软件、我的意思是运行应用一次、而不是循环运行。

    关于重置引脚、我会尝试它、但需要时间来实施、希望本周。

    您过去是否见过此行为?  

    感谢您的帮助

    达利亚

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

    大家好、Dalia、

    很好、谢谢您、请随时了解复位引脚实现的最新情况。  

    我不记得我们 以前是否对此设备存在类似的问题。 这是一种新行为。  

    谢谢。

    近红外