SPI 总线连接 - 循环还是不循环?

电器工程 图片 spi 终止 最佳实践
2022-01-24 00:26:05

我有一个关于 SPI 总线的物理连接的问题。

我有一个 SPI 主设备(一个 PIC32 设备)和一些从设备(在本例中为 PIC16 设备)。我只写信给从机,协议会处理哪个在什么时候做什么,所以不用担心 MISO 或 SS 信号,我只是将数据和时钟线并行到所有从机。总线的总长度不超过几英尺(比如 60 厘米),我正在以 8MHz 的频率运行 SCK。

现在,从设备(实际上是其他板上的接口节点)的物理布局使得 SPI 总线直接循环回主设备,这样就可以将每个循环的两端分别连接到 MOSI 和 SCK。

下图显示了我的意思——我说的是红色虚线连接——问题是:这样做是好事还是坏事?

SPI总线

我有电源和接地进行类似的旅程,这显然 - 并且明显 - 有用,因为它最大限度地减少了奴隶造成的电压降。但是,我不知道对这些信号线做同样的事情是好事还是坏事。我应该改为允许某种终端 - 接地电阻(?) - 或者串联电阻以抑制反射,还是什么?

可以说,无论是否连接点,我都试过了,没有功能差异,我在'范围内看不到任何变化,但也许它比 60 厘米长一点或比 8Mhz 快一点,我会有问题吗?因此,我正在寻找有关如何做的建议,如果有任何变化,我将不会遇到麻烦。

虽然对于 60cm SPI bus @ 8Mhz 这个问题特别困扰我,但对于其他情况有什么一般原则吗?也许 I2c 总线上的上拉电阻应该以不同的方式放置?

任何指向合适阅读材料的链接也将受到欢迎 - 我没有找到任何涵盖这个特定问题的内容。

3个回答

循环回来?不。如果线路足够长以至于需要终止(长于上升时间*c/10 左右),则驱动它足够强以正确终止它,并合理地匹配线路和终止。如果线路足够短而不需要终止,那么它就不需要您似乎正在寻找环回连接的“额外”导电性。

串联电阻?不。这种源端终止方式仅适用于线路末端的单点接收器。在线路上的较早点,您的接收器可能会得到最差的波形,这是一步到一半电压,然后是停顿,然后是另一步到全电压。

我在环路拓扑中看到的问题是很难正确放置端接器以抑制反射。这在 8MHz 时无关紧要,但在更高频率或更长线路时可能会成为问题。

我看到虚线可以提供帮助的唯一情况是当从主设备到传播延迟SLAVE 6不可接受时。在这种情况下,您将连接虚线,但在中间某处(例如,在SLAVE 3and之间SLAVE 4)中断循环,并独立终止每个分支。

对于快速信号或长线路,信号反射成为一个问题。在这些情况下,您必须通过放置一个连接线路末端和地(而不是线路的开头)的电阻来正确终止线路。终端使线路“看起来无限电”,因此信号不会回来。端接有时还需要 LC 元件来对抗电抗阻抗。

但是,对于您的情况,不需要终止(假设您没有在电噪声环境中操作,您的信号速度短线)。这就是为什么你看不出有什么不同。循环信号也是不好的设计实践。这样做会使信号循环,在您的电路中引入噪声(并且它会在两个方向上循环)。它还可以更轻松地捕获线路中的射频噪声。

此外,将地线和电源线连接起来通常也很糟糕。数字开关噪声和接地回路也存在,它们会对模拟电路产生巨大影响。如果需要,您可以使用 Y 叉(远端没有连接)来降低电压降。如果这还不够,请使用更宽的走线(更宽的走线-> 更少的电阻-> 更少的电压降)。