6151|14

68

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

学习SPI通信的疑问,简单,请各位指点,马上揭帖给分 [复制链接]

看到书上这么说:在一次传输过程中,主机向从机发送一字节的数据,从机也向主机返回一字节数据。

我想问,从机返回的数据是什么,是主机发给它的数据吗,如果是有什么意义呢,如果不是,那返回的是什么,如果从机不想返回任何数据呢

当主机想一次发送多个字节的数据怎么办 呢

最新回复

我现在遇到了SPI通信丢帧的问题。两帧数据之间如果时间间隔不大,第2帧数据就收不到,第2帧SPI中断触发不了。  详情 回复 发表于 2009-4-11 14:18
点赞 关注

回复
举报

78

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
SPI没有这个需求,即主机发送一个字节,从机也发送一个字节。

SPI是收、发单向的,有时钟信号同步,不需要握手,不需要应答,不需要反馈。

如果根据项目的具体需求,可以自己设置一些类似握手,帧头,数据,帧尾,CRC校验,应答,错误,重发,等等等等。完全自己设计,自己掌握。

不过这种方法需要主、从端都是自己开发,才能实现。
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
  我想二楼没有太明白楼主的意思,楼主指的这种SPI的确在一些IC中用过,比如74HC595,它就是这样的通信格式的.从机把接收到的数据又返回给主机.但是这次返回的是上次接收到的数据,通过移位脉冲和数据输出来实现的.这样做的目的,主机可以检查是否先前发送的数据,从机是否正确接收了.如果主机不想得到从机的返回数据,那个引脚不接就好了.
而且这样的返回数据在做级联的时候非常管用,就是用从机的数据输出把多个595串联起来,
实现多位串进并出.
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(中级)

4
 
SPI协议提供了这个功能,使得用户可以通过这个功能实现主机和从机之间的通信,这是一种机制.你可以 使用它来发送数据给从机也可以从从机中读取数据,具体在实际使用中是要读取还是发送要看情况而定.对于协议中提到的从机返回一字节数据,不同的器件的处理方法不同,不同的环境处理方法也不同.不必过于细究
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

5
 
实际上数据格式是自己定义的
 
 
 

回复

59

帖子

0

TA的资源

一粒金砂(初级)

6
 
spi可以只发不收,他只是规定了发送的时序,其他要发什么,发几个都自己写程序
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

7
 
引用 2 楼 raker0101 的回复:
  我想二楼没有太明白楼主的意思,楼主指的这种SPI的确在一些IC中用过,比如74HC595,它就是这样的通信格式的.从机把接收到的数据又返回给主机.但是这次返回的是上次接收到的数据,通过移位脉冲和数据输出来实现的.这样做的目的,主机可以检查是否先前发送的数据,从机是否正确接收了.如果主机不想得到从机的返回数据,那个引脚不接就好了.
而且这样的返回数据在做级联的时候非常管用,就是用从机的数据输出把多个595串联起来,
实现多…


lz说的是SPI,而SPI没有这个规定。而74HC595这样的器件,是在满足SPI的协议基础上,提供了更高一点的功能。但这个不是SPI的规定。一般项目中能碰到的SPI器件,基本都不会有这样的功能。
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

8
 
好像感觉楼主是对SPI的协议不是很熟悉. 其实楼主下个有SPI的接口的芯片数据手册应该就能找到答案. 至于他们发什么,回什么这些命令都是已经定义好的,照协议走就可以了.
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

9
 
回答楼主第一个问题,主机发一个有效数据,从机也同时发一个,从机发送的是他内部发送寄存器的数据,是靠主机这边提供时钟和驱动的。只要看你需要从机数据不?需要就在主机发的时候往从机寄存器里写东西,主机接受存到缓冲就可以实现了,不需要就不要对他操作就行。
回答楼主第二个问题,想发送多个数据就应该对主机程序加上发送FIFO,用程序让他不停的发就行。建议还是自己多调试下就明白其中的道理,我当时学了2礼拜
 
 
 

回复

83

帖子

0

TA的资源

一粒金砂(初级)

10
 
  这个要看你器件的datasheet,SPI只是一个通讯接口,SPI规定了的这是物理接口的传输方式!
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

11
 
随便找个SPI接口的芯片比如X5045的手册看下。。。
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

12
 
学习了,刚好也碰到SPI方面的问题
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

13
 
SPI传输分为全双工和半双工

全双工的情况下 你发送一个字节 你的Buffer中就同时有了对方回传的数据(由MISO传回) 从机返回的数据通过你发送的数据运算得到的新数据 可能和以前相同或不同

半双工的情况下 你发送一个字节 这时由你自己控制从机什么时候回复你

所有的通信协议可以由你自己来定义

你可以参考SPI接口的Flash 那就是一个特殊的从机 你可以把CS(NSS)拉低后传输一次数据(很多字节) 结束后再拉高
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

14
 
你可以参考SPI接口的Flash 那就是一个特殊的从机 你可以把CS(NSS)拉低后传输一次数据(很多字节) 结束后再拉高
////////////////
这个,我blog里有个完整的例子 呵呵


SPI 其实就是接口而已, 一般的书都会介绍的

开发时,注意看datasheet, 注意下时序, 看看相位啊,速率啊,基本没大问题
你其实你的问题,关键还是看从器件的工作方式咯
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

15
 
我现在遇到了SPI通信丢帧的问题。两帧数据之间如果时间间隔不大,第2帧数据就收不到,第2帧SPI中断触发不了。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表