板载SPI通信有哪些设计方面的考虑?


8

概述:

我正在使用SPI在3个具有dspic33的定制PCB板之间进行通信。我有一个主设备和2个从设备,但是我要向两个从设备发送相同的数据(并让他们选择要注意的内容)。

硬件设置:

这两个从机均内置有BLDC电机控制器,而主机则通过SPI控制这些电机控制器。电线从主机到每个从机大约3英尺,并且插头的通孔SAMTECH插头通常为.1“间距。每个电机控制器都有自己的3.3伏调节器,用于运行dsPIC / LV电子产品。我使用一个电机控制器调节器(让他叫A)也为SPI主DSPIC供电。对于另一个电机控制器(让他叫B),我只运行了SPI线并从主接地,SPI clk的运行频率为100KHz

到达重点(最后):

在没有电动机运行的情况下,所有这些都可以正常工作,所有数据均按预期传递给两个从站。但是,当我启动电动机时,Bslave不再获得正确的数据。他正在拾起多余的时钟或丢掉它们,我想这样做是为了消除多余的噪音。无论如何,他的校验和都会开始失败。无论如何,阿斯拉夫都像冠军。

1)您是否希望所有这些设备都需要使用相同的3.3伏电源?如果是这样,您能说说更长的电感环路和诸如此类的黑魔法吗?

2)对于我期望能够以多快的速度运行SPI clk并成功完成上述硬件设置,您有任何经验法则吗?


需要进行仿真以估计时钟能够运行多快。假设您使用的是双层板或单层板,一个好的经验法则是在SPI线的下方或附近铺设接地走线或接地铜平面(在相对层上),以减少耦合到走线中的噪声。
Steinar 2013年

Answers:


5

我已经从一个盒子到另一个盒子运行了大约5m的SPI(2MHz时钟),并且我毫不犹豫地将时钟和数据设计为平衡输出。两者之间的(定制)电缆在数据和时钟上也使用双绞线和屏蔽电缆。

我还通过DC-DC转换器将隔离的电源发送到远程盒。我没有足够的时间来弄错这个错误,因此我的解决方案可能会过大,但是嘿,它奏效了。我做出此决定的理由是,我不希望“电流消耗”尖峰在双绞线的屏幕上掉下来。屏幕在PC发送端未接地。将数字信号像珍贵的模拟信号一样对待以获得最佳性能-始终在接收端终止屏幕,并且如果(由于某种原因)必须(在某种程度上)在发送端勉强终止。

它用于将128通道的低速模拟信号从PC传输到接线盒。我怀疑,如果需要的话,我可以在20MHz的时钟下运行它。


当您说“屏幕”时,是指自定义电缆时的“屏蔽”吗?
JYelton

1
@JYelton在英国叫做屏幕。你在哪个国家?
安迪(aka Andy)

我在美国。我最好的朋友之一是英国人,因此我们经常就字词选择进行不寻常的讨论。:)对我来说,“屏幕”可以是显示器,也可以是监视器,也可以是网状的布,当窗户打开时,它会阻止房屋外出。
JYelton

@杰尔顿 啊哈,网布遮住了东西。对我来说,这听起来像是屏幕大声笑
Andy又名

之所以选择答案,是因为这是同时解决了1)和2)的唯一答案。虽然,正如许多人建议的那样,如果我要重新设计电路板,我可能只会更改协议,而不是使用差分信号。我确实相信这会起作用。在这种情况下,我只是使用SPI,因为它在我的原型中已经可以使用。
马特

5

SPI与其他任何电气接口没有什么不同。注意通常的信号完整性问题(屏蔽,环路面积,阻抗,信号端接等),您可以在合理的距离内运行。合理的距离取决于您在做什么,以及您如何控制各种因素。

你能跑三英尺吗?当然。你应该?好吧,还有更好的东西要使用。正如其他人指出的那样,有一些RS-4xx可以很好地工作。您也可以运行SPI,但可以通过电缆(如RS-4xx)使用差分信号。这将消耗更多的电线,但这些只是中断。您也可以使用UART等来执行普通的RS-485。

我个人已经在机箱内的1英尺电缆上运行了SPI,速率高达32 MHz,没有问题。在高EMI环境中,我还以100 KHz的频率在4英尺远处运行过I2C,SPI比I2C更好-因此可以做到。但是,如果您不注意细节,则很容易遇到问题。但老实说,无论您使用什么,都需要注意细节。


RS232之类的许多接口都相对不受振铃和过冲之类的影响,只要由线路转换引起的任何此类影响都能在半秒钟内得到解决。即使一条线路不能支持高波特率,降低波特率也会有所帮助。相比之下,如果振铃之类的问题以任何速度导致SPI问题,那么除非降低线性过渡的斜率,否则降低其速度可能无济于事。
2013年

这是一个很好的答案,尤其是已实施的系统数量。我想我会在驱动器端尝试串联电阻,看看是否有帮助。但是,我担心噪声会导致额外的时钟...因此,在这种情况下可能无济于事。
马特

5

仔细考虑您的接地方案。屏蔽数据线(如果有帮助的话),并将屏蔽层正确接地。不要在同一双绞线上运行数据和时钟。如果需要,请使用电流隔离。除此之外,我没有任何经验法则。

SPI设计用于(1)通常在一个PCB内的短距离通信,以及(2)在没有很多EMI的环境中。也许,在存在EMI的情况下,唯一比SPI性能差的总线是I 2 C和1-wire。有些总线设计用于在存在EMI(RS-485,CAN,以太网)的情况下进行远程通信。

可以扩展和加固SPI。这是一个应用笔记,其中显示了带有差分线的SPI总线。


我将尝试掩盖界限。关于电流隔离,当我不接地时,从设备永远不会注册主设备发送的任何时钟。
马特

1

有几种方法可以最大程度地减少噪声对信号线的影响。最简单的方法是在信号走线附近布线铜平面或铜走线。这样可将走线和环路面积的电感降至最低。

在高频下,返回电流喜欢沿着信号线本身附近的最小阻抗路径流动。我假设您的电路之间具有公共接地,但是如果您的公共接地仅仅是电路之间的“电源”接地连接,则可能会引起高频信号传输问题。由于杂散磁耦合,这将导致很大的信号电流环路面积,从而可能导致大量噪声注入。

如果可以的话,除了在板子内部的线路附近保持铜制接地层或走线之外,还应在SPI信号线附近的接地之间连接额外的接地连接。您的电路对电机的敏感程度可能会有所不同。


我不明白“与SPI信号线相邻的地之间”的说法。具体来说,“相邻”一词对我来说并不明确。
马特
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.