我正在考虑一个需要多个 AVR 通过总线相互交谈的项目。他们将相隔多达6英尺。
似乎 I2C 和 SPI 都可以让一系列微控制器通过总线进行通信,但我还没有看到任何关于那会持续多长时间的消息。有没有人尝试在几英尺的距离内连接这些协议?
我正在考虑一个需要多个 AVR 通过总线相互交谈的项目。他们将相隔多达6英尺。
似乎 I2C 和 SPI 都可以让一系列微控制器通过总线进行通信,但我还没有看到任何关于那会持续多长时间的消息。有没有人尝试在几英尺的距离内连接这些协议?
几英尺应该没有问题,如果可以的话,只需使用双绞线。SPI 比 I2C 更容易缓冲(如果需要),因为 SPI 信号都是单向的,而 I2C 的信号在共享线上。
AVR 微控制器可以处理 I2C 和 SPI 从模式以及主模式吗?(你需要两个)
对于长距离的 I2C,您可能需要寻找一些“I2C 总线中继器”解决方案。请记住,您可能发现的 I2C 或 SPI 通信的任何最大距离主要是指总总线距离,而不是总线中两个节点之间的距离。
您可能需要研究 RS485 来解决此类问题。它是一种通过差分线路进行通信的串行总线协议,因此在使用双绞线时,噪声的可能性降到最低。通过这种方式可以到达很远的距离。缺点是您的电路中需要额外的 RS485 编码器 IC(如 MAX485,不是很贵)。
仅供参考,无线 Nintendo Wii 遥控器与其 Nunchuck 伴侣之间的接口通过约 3 英尺长的电缆使用 I2C。还有 3 英尺的延长电缆可将总长度延长至约 6 英尺。与您的设置不完全相同(只有两个设备连接在一起),但它是广泛使用的消费产品中通过电缆的 I2C 的一个示例。