可用于连接两个I2C设备(I2C主站-> I2C从站)的电缆的最大长度是多少?
是的,我知道I2C确实是为板内通信设计的。我的任务是“设计目标”,即为多个I2C从设备使用通用I2C总线来支持演示。
为了清楚起见,我们假设标准I2C总线速率为100 kHz。
可用于连接两个I2C设备(I2C主站-> I2C从站)的电缆的最大长度是多少?
是的,我知道I2C确实是为板内通信设计的。我的任务是“设计目标”,即为多个I2C从设备使用通用I2C总线来支持演示。
为了清楚起见,我们假设标准I2C总线速率为100 kHz。
Answers:
根据该恩智浦文档 I2C总线规范和用户手册,对于快速模式和电阻上拉,电容应小于200pF 。
使用电流源上拉电阻可以达到400pF,但不能使用电阻。
如果电线为20pF / 30cm,并且还有50pF的杂散和输入电容,则电缆长度限制为2.25m。不同的假设将得出不同的数字。
像10,25和100m这样疯狂的探测长度是完全可能的,当我需要快速整理东西时,我经常使用该方法(使用UART而不是I2C,但该方法有效)。不过,这并非最佳方法。
关键是要知道您的输入电压阈值。确保接地线中的电压降远低于此值,否则接地电位高的变送器将无法将电压拉到足够低的水平。缺少接地偏移公差IMHO是使用RS485或CAN收发器的最大原因(一些应用笔记中提到了CAN上的I2C)。
理想情况下,所有设备都将具有自己的壁式疣和电池,并且设备之间的地线将不会发送任何功率。
但是,以CAT5为例。CAT5不能高于52pf / m,或者不是CAT5。
100m的52pf电缆的电容为5200pf或5.2nf。
5.2n倍20kohms(上拉)给出的时间常数约为104微秒。这将速度限制在大约10kHz左右。
使用2.2kohm上拉电阻,您可能会达到100kHz。
我听说设备在SDL和SCK上应该有一个电阻,因为它们驱动的电容负载很大,大约为180或200欧姆。
但老实说,I2C并非遥不可及。与普通UART一起使用的CAN收发器或RS485是一个强大的解决方案,具有非常好的故障保护,ESD电阻,速度,距离等,每片芯片的成本仅为一美元左右,接地偏移几乎没有多大关系免费随身携带数据。
唯一的缺点是,can收发器的发射能力可以达到70ma,而收听时则可以达到1或2ma,因此I2C或直接TTL UART在极低功耗的情况下可能很有用,但请考虑您实际花费了多少时间进行发送。
我在一家制造USB传感器的公司工作。它们大多数基于I2C传感器芯片,这些设备可以分成两部分,因此您可以将CPU部件安装在一个位置,将传感器部件安装在另一个位置。我们对设备CPU和I2C传感器之间的I2C连接进行了很多测试。在100 kHz的频率下,具有良好的错误恢复协议,可以使用基本导线轻松达到25m。使用CAT5电缆,我们甚至可以达到100m。
IIC是一种同步协议,因此,它可以任意缓慢运行,以满足有关距离和噪声的系统要求。
从1990年代的ACCESS.bus一直到今天的如何使用IIC通过电缆使用IIC的方式,一直到今天如何从视频显示器中检索EDID信息。