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.

[参考译文] I2C 多路复用器问题

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

https://e2e.ti.com/support/switches-multiplexers-group/switches-multiplexers/f/switches-multiplexers-forum/678966/i2c-multiplexer-question

主题中讨论的其他器件:TCA9546ATCA9543ATCA9544APCA9306

大家好、

我最近收到了一些 I2C 多路复用器样片、在测试了它们的一般功能后、我发现这些 IC 在我的应用中存在问题、并想知道是否有一种修复方法已经可用。

作为参考、我已经测试了:TCA9543A、TCA9546A 和 TCA9544A。

我的问题如下:

我按照数据表的建议设置 IC、并使用 Aardvark 与 IC 通信、然后再使用 Aardvark 在 IC 的其中一个 I2C 通道上发送/接收数据。 我写入 IC 地址并将其配置为使用所有通道。 此时、我能够通过 IC 发送和接收数据。 我的问题是、如果其中一个通道随后写入 IC 地址并重新配置为不使用配置保存的通道。 是否有办法防止下游 I2C 通道向 IC 写入数据?

应用简介:

我有一个带有微控制器的单元、它通过可连接多达4个单元的背板与主器件通信。 每个单元还具有2个外部访问端口、用于通过 I2C 向微控制器写入数据。 I2C 多路复用器的任务是允许2个 I2C 通道与微控制器通信。 微控制器将添加一行代码、以初始配置 IC、然后开始正常运行。 我的问题是、如果客户意外甚至故意写入多路复用器并错误地对其进行配置、则器件将不再与这些多余的端口进行 I2C 通信。

谢谢、

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

    您好、Matthew、

    这是我第一次听到这种潜在问题的发生。 这似乎是一个问题、因为您可能有两个或多个主器件可以与此器件通信、但只有一个主器件连接到主通道、而其他主器件将连接到可禁用的辅助通道上。

    "是否有办法防止下游 I2C 通道向 IC 写入数据?"
    如果没有某种分立式解决方案、我就无法做到这一点。 如果我们采用这种方法、我会考虑使用数字逻辑来比较来自主通道和附属通道的所有 SCL 线路、并确定何时发生这种情况、然后启用另一个开关以允许通信。

    我们知道、如果主通道看到低电平、启用的辅助通道将看到低电平、反之亦然。 如果开关被禁用、因此所有通道都未启用、那么只有一个通道为低电平、而其他通道将保持高电平(上拉电阻器)。 在本例中、我们知道开关已被禁用、我们现在处于您指出的问题状态。 当一侧为高电平而另一侧为低电平时、使用异或逻辑将告诉我们(这将表明我们看到开关已被意外关闭)。 我们可能会在此处使用触发器来存储此数据、并让它打开连接新通道的开关(我将使用 PCA9306、因为它具有使能引脚、可以将其视为具有使能引脚的开关)。

    此解决方案不会阻止这种情况的发生、但允许在发生时进行通信。 更简单的替代方案是允许用户连接开关(具有一个分流器和两个接头引脚)、以将外部 MCU 连接到主 MCU I2C 总线。

    谢谢、
    -Bobby