我一直在一个OMAP Linux SPI主设备与6个SPI从设备外围设备(5个A / D转换器和单个磁力计)交互的项目中进行工作。
我可以设置SPI时钟频率,并尝试了50 kHz,100 kHz和1MHz。
我附上了一个接线图/电路板图,显示了SPI主设备和所有外设的长度。在我的实验案例中,与主机之间的SPI总线长度(所有导线长度)约为970mm。
我发现的问题是,当我在总线上添加更多其他外围设备时,与1个外围设备的通信失败。即使通讯通过总线远端的磁力计,与另一侧的A / D转换器的通讯也会失败,直到卸下磁力计线束根,然后A / D部分恢复。
我在这里做了一些阅读: SPI总线端接注意事项, 以及: 短距离板对板通信
建议将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
谢谢,尼克