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**** 2454880 points


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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/618681/why-the-i2c-lines-are-open-drain

主题中讨论的其他部件:ash

i2c线路为漏极开路的原因是(如果我漏掉任何一点,请查看并纠正)-

I2C是多主和多从协议。如果线路不是开路漏极,则可能有一个从设备拉低,另一个从设备拉高同一线路的机会。这种情况称为总线争用。

但实际上i2c是 漏极开路配置,设备不能拉高线,只能拉低线。无论从拉低线,都能控制总线。

此致

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

    您需要双向控制的原因是数据从主设备传输到从设备,从设备传输到主设备。 例如,主中继器向从属设备发出命令,而在命令结束时,从属设备必须将SDA线拉低,以显示已收到并理解该数据。

    注意I2C是一种基于地址的通信协议,当同一总线上有两个从属设备具有相同地址时,就会发生总线争用。 主中继器控制总线的控制,因为它同时控制SCL和SDA。
    Francis Houde
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Francis:

    感谢您的回复。

    您的说法是正确的。但是这与i2c线路的漏极开路有何关系?我现在想正确回答为什么i2c引脚是漏极开路配置?

    谢谢
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    灰,
    举例来说,您的师父开着推拉式驱动器驾驶巴士。 说它在总线上放置高电压,这是I2C总线上由于上拉而发生的情况。 这意味着输出通过具有低电阻的内部p-FET驱动为高电阻。 如果从控制器尝试使用其内部FET将其拉低,则两个FET会相互冲突。 假设主FET驱动高的电阻与从属FET驱动低的电阻大致相同。 这意味着总线电压为Vcc/2。 如果从机在高速行驶时,主控制器在低速行驶时,也会发生同样的情况。 这意味着您不知道谁控制着总线。 如果使用漏极开路,则主控制器会知道何时处于低行驶状态,并假设如果它未处于低行驶状态,则他们会看到低行驶速度,这必须来自从属控制器。 您是否理解我要尝试的内容? 这对您是否有意义? 我不确定您的"正确"答案是什么?????
    Francis Houde
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好Ash:
    我还提供了一些其他阅读材料的链接,这些材料可能更有助于理解为什么您需要开放式排污装置。
    www.ti.com/.../slva704.pdf
    Francis Houde