远距离 I2C 信号和电源(10 米电缆)

电器工程 力量 i2c
2022-01-29 17:12:07

经过一些阅读/测试后,我设法在 2 个使用 I2C 和 FTP CAT5 铜双绞线电缆的设备之间建立了稳定的通信。

  • 绿线 - SCL
  • 白/绿线 - GND
  • 蓝线 - SDA
  • 白/蓝线 - GND

GND 仅连接在电缆一端,I2C 总线时钟为 10Khz,我使用 10Kom 上拉电阻连接到 VCC

它运行良好且稳定。当我决定使用其他 2 对电缆供电 (+12V) 时,它停止工作。我在另一对的一对 GND 上测试了 +12V,也在同一对上测试了 +12V/GND:同样的结果,它停止工作了。整个 I2C 总线停止工作,其他设备也连接到它。

想知道我是否可以使用相同的电缆或选择最安全的选择 - 另一根电缆供电。

4个回答

如果它以前工作过,可能会矫枉过正,但一种选择是使用 I2C 到差分转换器,例如PCA9615LTC4331等。如果使电阻变小不起作用或者您需要延长电缆,请考虑不直接使用 I2C。

不仅范围会扩大,而且您还将拥有更好的抗噪能力。

在此处输入图像描述 在此处输入图像描述

正如我在评论中指出的那样,如果没有示波器跟踪就很难进行调试,但是从您的问题中脱颖而出的第一件事是 10 kOhm 上拉电阻。这对于 I2C 来说异常高,尽管它在许多情况下很容易工作。

我会先尝试将它们降低到 1 kOhm,看看它是否会影响任何事情。如果有帮助,您可以逐渐提高它们,尽管这样做会影响您的上升时间。

你绝对需要在长距离上放下你的上拉电阻,10m 是很长的路,而 10k Ohm 是非常高的。

上拉电阻的值与三件事有关:

  1. 电缆电容
  2. 瞄准电压和 Rx 电平感应。
  3. 速度

尝试使用任何可用的计算器,并在此处使用 TI 关于上拉值的应用笔记或此处使用 NXP I2C 标准 (7.1) 开始阅读。

就您遇到的问题而言,很明显,将电缆中的附加对(12V,Gnd)接地会改变 I2C 信号线的电容。

几点注意事项:

获得正确的上拉值至关重要,尤其是对于 SDA。不同的设备可以吸收不同量的电流。在切换到较小的传感器芯片后,我已经看到由于上拉电阻太小而在数据中产生额外 1 的设置。较小的几何形状意味着它无法将总线拉低到一个干净的零。

速度杀人。长电缆实际上是低通 LRC 滤波器。对于许多 I2C 应用程序,您可以减慢时钟速度而不会丢失任何东西。较慢的时钟可以补偿弱上拉和大电容(但不能补偿太强的上拉)。

长电缆运行是对 EMI 的邀请。我见过需要铁氧体钳位才能通过抗扰度测试的 I2C 实现。端接、屏蔽电缆或过滤器可以提供帮助。

当心并联电阻。如果您在主设备上有一个 1k 的上拉电阻,然后在总线上的四个客户端设备中的每一个都有一个 1k 的电阻,那么您就有一个 200 欧姆的净上拉电阻。不去上班。