在我当前的项目中,我需要通过 I2C 在微控制器和一些传感器之间进行通信。其中之一是温度传感器,它需要放置在距离微控制器大约 2 米处。我无法选择其他协议(传感器位于具有给定连接器/引脚/协议的模块上)。
您认为在这种配置下可以进行通信吗?我应该查看哪些信息以确保它可以或不可能?你有什么建议吗?
这是我第一次与 PCB 外的 IC 通信。
在我当前的项目中,我需要通过 I2C 在微控制器和一些传感器之间进行通信。其中之一是温度传感器,它需要放置在距离微控制器大约 2 米处。我无法选择其他协议(传感器位于具有给定连接器/引脚/协议的模块上)。
您认为在这种配置下可以进行通信吗?我应该查看哪些信息以确保它可以或不可能?你有什么建议吗?
这是我第一次与 PCB 外的 IC 通信。
I2C 不是为长距离使用而设计的,但我知道一些实际使用距离约为 2 米的应用。我也知道一个他们有问题的案例,我相信它最终通过修复接地回路来解决。
为确保它能够正常工作,您应该使用 I2C 总线扩展器,如 P82B715。
但是,PB2B715的数据表在第 8.2 节中说明了以下内容:
对于用于电话或以太网 (Cat5e) 布线的典型双绞线或扁平电缆,其电容约为 50 pF 至 70 pF/米,因此理论上电缆最长可达 50 m。从实践经验来看,30 m 已证明以这种简单方式驱动的安全电缆长度最高可达 100 kHz,如图所示。更长的距离和更高的速度是可能的,但需要更仔细的设计。
所以专家(NXP是前飞利浦,I2C的发明者)说30米已经被证明是可行的距离。我的经验表明 2 米是可行的距离,并且反馈给我的经验表明负载更重的 I2C 总线也可以不带任何扩展器。
长距离工作 I2C 总线的关键点是:
Texas Instruments 有一个很好的关于上拉计算的应用说明 (SLVA689)。
可以,但不推荐。
与 SPI 一样,I2C 设计用于在一个板或一组板内进行通信(想想 Raspberry Pi 及其帽子或 arduino 及其盾牌)。它可以在更长的距离上工作(请参阅其他答案),但不应该在这些情况下使用,因为这不是它的设计、优化和合格的。
您承担的风险是您将来可能无法添加更多传感器,或者您的系统无法在任何地方工作,或者在某些情况下会失败。
您应该寻找的是现场总线,例如 1-wire、CAN、RS-485、以太网等。
蓝牙或 zigbee 等无线系统也是一种选择。
您通常受到 400 pF 最大总线电容的限制。
如果您将频率降低到 1 kHz 并在传感器旁边提供电源去耦,它应该可以正常工作。
如果您需要更强大的功能,则可以在两端使用差分 I2C 转换器,例如PCA9615。