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.

[参考译文] TCA9517:器件上的多主器件。

Guru**** 2392375 points
Other Parts Discussed in Thread: TCA9517, TCA9545A, TCA9543A, TCA9544A, PCA9517

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/922560/tca9517-multi-master-across-the-device

器件型号:TCA9517
主题中讨论的其他器件: TCA9545ATCA9543ATCA9544APCA9517

大家好、

我正在为多主系统寻找 I2C 缓冲器、我已经了解了 TCA9517 (我之前使用过的 TCA9515的可执行版本)。 我想知道它是否适合我的应用。

数据表和其他 TI I2C 文档中的所有示例图都在器件的一侧配有主器件。 而在我的系统中、缓冲器两侧都有主器件。 我 想确保所有主器件都能够使网络中的所有从器件输出噪声。

为了大致说明、TCA9517的 A 侧和 B 侧标记为:

TI 图:主控器件(A) TCA9517 (B)<>从器件
               <>(A)TCA9517 (B)<>从器件

我的系统:(master1+slave)<>(a) TCA9517 (B)<>(master2+slave)
                        <>(a) TCA9517 (B)<>(master3+从器件)

如果我将我的系统分解为每个主系统的单独图表、那么本文档中的图16似乎表明它可以正常工作: https://www.ti.com/lit/an/scpa054/scpa054.pdf?ts=1594678565702&ref_url=https%253A%252F%252Fwww.google.com%252F

是否有人可以确认此器件支持我的用例? 还是推荐替代方案?

谢谢、

David

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

    嗨、David、

    在遵循 TCA9517之间允许的连接方面、您在系统中列出的内容可以正常工作。

    现在这里的问题是、您的所有主机是否都支持仲裁? (在他们用于 I2C 的软件/库中、他们能否知道另一个主器件何时尝试与自己同时控制总线?) 这里的另一个问题是、即使它们确实支持多主器件仲裁、TCA9517之间也存在一些传播延迟、这使得仲裁时序变得复杂... 最坏的情况是、当 master1和 master3希望同时尝试通信时、通信需要通过2个不同的9517、这两个器件之间将有数百毫微秒的延迟。 我的意见是,如果你只使用仲裁,那是不可靠的。

    您可能需要为所有3个主器件添加某种方式、以便能够告诉谁可以控制总线。 这可以通过软件来处理。

    另一种方法是使用具有中断的 I2C 开关、主主控器可以控制主 SDA/SCL 线路上的开关、子主控器可以通过将 INT 线路驱动为低电平来请求访问。 ( 例如 TCA9543A、TCA9544A、TCA9545A)。

    "有人可以确认我的用例受此器件支持吗? 还是推荐替代方案?"

    另一种方法是在总线上使用主仲裁器件来处理仲裁。 遗憾的是、这是我们目前产品系列中没有的东西。

    -Bobby

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

    您好、Bobby、

    感谢您的详尽答复。

    系统中支持仲裁的所有主机、但您确实强调了传播延迟的问题、该问题将成为该系统任意扩展的问题。  

    我要研究一下他们的仲裁机制,看看如何用软件来处理,因为这在我们的系统中是最不麻烦的。 对于实施软件修复、您是否有任何建议?

    您展示的 I2C 开关在其运行中非常有趣、但遗憾的是、由于 I2C 在系统外的分布方式、这种(或主仲裁器器件)将很难实现。 不过、所有器件之间可以共享另一个开漏信号、并用于软件主仲裁(与 I2C 开关中使用的 INT 引脚类似)、但这也需要某种程度的隔离、因此传播延迟问题可能会影响其头部。

    谢谢、

    David

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

    您好、Bobby、

    再次查看 TCA9517的数据表、它没有在任何地方提及仲裁支持。 而弃用的 PCA9517则表示它将支持它。 这是否是由于您提到的传播延迟问题引起的?

    谢谢、

    David

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

    嗨、David、

    "对于实施软件修复、您是否有任何建议?"

    我在这方面没有太多经验。 我可以想到的任何解决方案都围绕硬件旋转、在硬件中、主器件共享一个开漏通道。 我能想到的唯一其他解决方案是有一个专用主器件、它可以与其他从器件主器件通信、从而使它们能够经常地控制总线、并且在从器件主器件完成后、 它们与专用主器件通信、因为它们不再使用 I2C 总线。 否则、我不能想到一种高效的方法...

    "再次查看 TCA9517的数据表、它在任何地方都没有提到仲裁支持。而弃用 的 PCA9517 确实表示它将支持仲裁支持仲裁。 这是因为您提到的传播延迟问题吗?"

    TCA9517不会直接处理仲裁(PCA9517也不会直接处理仲裁)、而只是会从任一端传递高电平到低电平信号。 在传播延迟方面、由于 TCA 系列使用的是更新的过程、我希望 TCA9517会更好一点。

    -Bobby

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

    您好、Bobby、

    这种移交方法正是我们对软件定义的多主系统的想法、它似乎是最佳解决方案。 如果某种情况发生成对形状、则仲裁也可以作为备份进行。  

    也感谢对 TCA/PCA 器件的澄清。

    谢谢、

    David