SPI通信问题

LHHS123 2010-07-27 04:47:13
SPI从机发送数据,主机接收数据。在SPI通信的过程中有时侯会出错,主机接收到的数不是从机发出来的,请教各位这是什么原因呢,怎么解决呢?
主机和从机的极性、相位、数据顺序配置都是一样的,我已经检查过了。。
...全文
297 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ylmmee 2011-12-11
  • 打赏
  • 举报
回复
我也遇到过这个问题,本来数据是00010001,读出来的结果是00001000,最后发现问题是:主机的时序不能够实现这种极性反转,所以读数据的时候少了一个时钟沿。最后我的解决方案是:用模拟SPI实现从器件的时序。
shagua0916 2010-07-29
  • 打赏
  • 举报
回复
总线是否与其它芯片共用?
guoyu_bo 2010-07-28
  • 打赏
  • 举报
回复
一个bit一个bit跟踪调试看看
还有SPI是MSB first
codesnail 2010-07-28
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 lhhs123 的回复:]
引用 1 楼 codesnail 的回复:
应该叫做主机去读从机的数据。
另:极性的配置应该是相反的吧。


我是用主机去读的从机,极性应该是相同才行。读错是不是时序不对呀,有时侯需要读的数时0100,读到的却是0010,这个要怎么解决呢
[/Quote]
请不要武断的认为应该极性相同。。。。。。。
LHHS123 2010-07-28
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 codesnail 的回复:]
应该叫做主机去读从机的数据。
另:极性的配置应该是相反的吧。
[/Quote]

我是用主机去读的从机,极性应该是相同才行。读错是不是时序不对呀,有时侯需要读的数时0100,读到的却是0010,这个要怎么解决呢
zyzhang365 2010-07-28
  • 打赏
  • 举报
回复
SPI是由极性(polarity确定空闲时的电平)和相位(phase确定第1个或第2个时钟沿数据有效)两个共同决定的.楼主自己看看slave设备是怎么要求的,然后正确配置Master的相关寄存器吧。
Great_Bug 2010-07-27
  • 打赏
  • 举报
回复
有时候会出错......是不是受到了干扰?
codesnail 2010-07-27
  • 打赏
  • 举报
回复
应该叫做主机去读从机的数据。
另:极性的配置应该是相反的吧。

27,374

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧