您好!
我有一个包含2个 TCA9548A 芯片的电路板。 一个地址为 x70、另一个地址为 X71。
Im 使用 NI USB-8452作为 I2C 主设备、从我的应用发送数据。
SCL 和 SDA 引脚有一个4.7kOm 的上拉电阻器到 Vcc =3.3V
该应用非常简单:
- 配置从器件地址 x70 +1位写入、
- 编写一条命令以切换通道。 例如、如果我想连接 Channel1、我发送"x1"。 我已将 CH1的 SCL 和 SDA 连接到示波器。 如 图 TA CH1.jpg 所示、黄色信号为 SCL、绿色信号为 SDA。 这是预期行为。
- 关闭会话和参考。
- 停止应用。
问题 :
运行上述应用程序一次后、我将命令更改为"x0"(未选择通道)、然后再次运行应用程序。 让我意外的是、我在示波器中看到了上述信号的一部分(请参阅图 TA Ch0 Bad)。 我应该看到"无信号"。
我改回 Ch1"x1"、然后再次运行应用。 我在范围内看到预期数据(TA Ch1.jpg)。 现在、我将数据更改为"x2"、运行应用程序并 在示波器中看到额外的数据(请参阅图 TA CH2.jpg)我预计不会看到任何信号。 如果我使用数据"x2"再次运行同一个应用程序、则示波器中没有接收到任何信号。 这是预期行为。
注意 :我 用 FTDI 的不同 USB I2C 主机验证了这种行为: C232HM-DDHSL。
结论:
似乎我需要运行两次相同的应用程序,以"清理"缓冲区, Im 不知道为什么我需要运行两次应用程序正常运行。
- 问题可能是什么?
- 这是预期行为吗?
- 如果是硬件问题、有什么建议?
- 是否有用于清理旧数据或清理数据左侧的命令?
提前感谢
达利亚
我