SPI 总线终端问题

电器工程 spi 公共汽车 信号完整性
2022-01-18 10:15:12

我一直在从事一个 OMAP Linux SPI 主设备与 6 个 SPI 从设备外设(5 个 A/D 转换器和单个磁力计)交互的项目。

我可以设置 SPI 时钟频率,并尝试了 50 kHz、100 kHz 和 1MHz。

我附上了一个接线/板图,显示了 SPI 主设备和所有外围设备的长度。对于我的实验案例,距主机的 SPI 总线长度(所有线长)大约为 970 毫米。

在此处输入图像描述

我发现的问题是与 1 个外围设备的通信失败,因为我在总线上添加了更多其他外围设备。即使通信通过总线远端的磁力计,与另一侧的 A/D 转换器的通信也会失败,直到磁力计线束短线被移除,然后 A/D 部分返回。

我在这里做了一些阅读: SPI Bus Termination Considerations 和这里: 短距离板对板通信

建议将 RC LPF 放置在靠近任何驱动节点的位置,因此主侧的 SCLK 和 MOSI 以及我的每个 6x MISO/SOMI 信号。我已经看到使用 47pF/27R RC 网络的 USB 完成了类似的方法。我的目的是在我的电路上尝试这个,以努力减少锐边快速~100nsec 边缘转换。

这是我在这里添加 RC LPF 的正确程序吗?这看起来真的很不稳定,有更好的做法吗?我看到 TI 的一个应用说明,他们谈论将 SPI 扩展为更长的总线距离,这是一个合适的解决方案,还是我的问题只是来自高速边缘转换的高频谐波之一? http://www.ti.com/lit/an/slyt441/slyt441.pdf

谢谢,尼克

来自磁力计的干净 CLK/MISO 测量

测量 CLK 信号的时钟转换时间

这条 MISO 线(通道#1)是否显示反射? 楼梯的水平看起来不像数字,这是反射

1个回答

没有所有细节很难回答这个问题,但这里是对这个问题的一般看法,我相信这也可能是这个网站更有用的答案类型。

应始终模拟多节点网络。他们很难预测。并且花了大约 3 分钟的时间才发现您的设计可能不是最优的。

这是从主设备到所有从设备的时钟的模拟设置(值只是粗略的估计,如果你在构建任何东西之前这样做就是这种情况):

在此处输入图像描述

以及由此产生的模拟图(我们忽略什么是什么,单位等,因为它显然不值得构建):

在此处输入图像描述

想到的第一个想法是所有输入的菊花链和简单的并行终止。如果你愿意,一个飞越计划。这在模拟设置中看起来像这样:

在此处输入图像描述

结果图看起来好多了:

在此处输入图像描述

如果你能忍受戴维南终端的功耗增加和各种设备时钟输入电压摆幅的降低......(只有你知道实际的限制)......那么这方面的一些变化实际上可能是值得的建筑。

还有其他可行的解决方案,但关键是要了解多节点网络不容易预测。在你构建东西之前在这里进行 5 分钟的模拟可以在以后节省大量时间。不幸的是,这种类型的模拟器并不便宜。

我在这里使用 Cadence SigXplorer。通常的免责声明适用:我确实教授信号完整性课程,并且经常为这些课程获得 Cadence 或 Mentor 赞助软件许可证。