首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

SPI通讯错误问题解决

SPI通讯错误问题解决

SPI接口,与串口接口相似,是单片机中最基本的两个通讯接口,都有T(发)、R(收),
不同的是SPI还有时钟与片选

我初入研发时,设计过一个SPI接口的通讯板,但无论怎么都通不上,公司里的前辈们也找不出来问题,无意中看了眼原理图,才发现MISOMOSI接反了(可能前辈们没想到会犯这个低级的错误)。正确的接法是:





有的芯片没有标MOSIMISO,而是SDOSDI,而这里就要区分是主还是从了。主的SDO接从的SDI,主的SDI接从的SDO
注意
一、布线时,总长一般不超过10cm,有时要做源端匹配,阻抗匹配就不用做了,但匹配不好就......
二、不同的从元件有不同的速率要求,曾以20MHz去读取SPI存储器,总是要读取两次才能正确,后来发现是速度太快了。
三、SPI也可以远距离传输的,只要解决了信号在线路上的延时所导致的时序匹配。在加强驱动能力的同时,要用另一路的SPI(即主设备要有2SPI     口)的时钟将时序同步才可以。200m的屏蔽双绞线试验过,10MHz
正常。
四、要注意SPI4种模式,主从要一致。CPOLCPHA要匹配。
五、调试方式:先主设备的MOSIMISO短接起来,看能不能自发自收,要是可以就是SPI设置正确,要是不能,要下面的从设备肯定也不行,还是找找  程序上的错误吧。

这是一个很基本的通讯接口,但也常常出错,以上是本人在研发之路这些年总结的SPI上的问题,以上问题都解决了,SPI口也就没有什么问题了,再不行就是从设备协议的问题了。
返回列表