13658|25

49

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

spi片选使能问题??? [复制链接]

操作spi通信时,在每次发送数据前都要对spi进行片选使能,为什么不能一次选中,之后进行多次的传输,和硬件特性有关吗???

最新回复

找到原因,硬件不支持连续的传输,必须在每次传输时,使能一下。这个设计有点弱啊。  详情 回复 发表于 2010-4-14 09:25
点赞 关注

回复
举报

83

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
SPI有硬件的,也有软件模拟的。

可以一次片选使能,多次传输数据。
但是为了通讯安全起见,还是发送一帧数据的时候进行片选使能。发送完毕的时候,片选使不能。
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
以前用SPIFLASH的经验,还是每次都选择的好
 
 
 

回复

56

帖子

0

TA的资源

一粒金砂(初级)

4
 
规定的

任何一个操作开始于片选有效,终止于片选无效.

如果你发一个读指令,读完之后不另片选无效,设备会一直发数据给你,读过程无法结束.
那么,你后续的任何操作都是是非法的

和硬件无关,和SPI协议有关
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

5
 
2楼以前如果有片选一直有效的经验,那么可以推论:#2 以前的对SPI的操作只有第一次得到正确的结果
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

6
 
引用 1 楼 bluepei28 的回复:

SPI有硬件的,也有软件模拟的。

可以一次片选使能,多次传输数据。
但是为了通讯安全起见,还是发送一帧数据的时候进行片选使能。发送完毕的时候,片选使不能。
我这边配置的spi字长是8位,每传8位,都要从新使能,这样效率岂不是很低。
 
 
 

回复

59

帖子

0

TA的资源

一粒金砂(初级)

7
 
引用 4 楼 gelu1040 的回复:

2楼以前如果有片选一直有效的经验,那么可以推论:#2 以前的对SPI的操作只有第一次得到正确的结果


===============================================

我以前做过 三字节为一帧,在发送一帧前 片选使能。发送结束后片选使不能。通讯正常。
 
 
 

回复

85

帖子

0

TA的资源

一粒金砂(初级)

8
 
引用 5 楼 windriver3 的回复:

引用 1 楼 bluepei28 的回复:

SPI有硬件的,也有软件模拟的。

可以一次片选使能,多次传输数据。
但是为了通讯安全起见,还是发送一帧数据的时候进行片选使能。发送完毕的时候,片选使不能。
我这边配置的spi字长是8位,每传8位,都要从新使能,这样效率岂不是很低。


===========================================================
可以一次传N字节(一帧)。传送完毕N字节(一帧)后,片选使不能。

如果要了连续传输大量的数据,只需要片选使能,连续传输即可。传输完后片选使不能。
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

9
 
引用 7 楼 bluepei28 的回复:

引用 5 楼 windriver3 的回复:

引用 1 楼 bluepei28 的回复:

SPI有硬件的,也有软件模拟的。

可以一次片选使能,多次传输数据。
但是为了通讯安全起见,还是发送一帧数据的时候进行片选使能。发送完毕的时候,片选使不能。
我这边配置的spi字长是8位,每传8位,都要从新使能,这样效率岂不是很低。


======================……
我这样试过,不可以的,这样只能传8位数据,剩下的传不出去。
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

10
 
引用 8 楼 windriver3 的回复:

引用 7 楼 bluepei28 的回复:

引用 5 楼 windriver3 的回复:

引用 1 楼 bluepei28 的回复:

SPI有硬件的,也有软件模拟的。

可以一次片选使能,多次传输数据。
但是为了通讯安全起见,还是发送一帧数据的时候进行片选使能。发送完毕的时候,片选使不能。
我这边配置的spi字长是8位,每传8位,都要从新使能,这样效率岂不是很低。

……

====================================
你的接受方是硬件做的?
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

11
 
硬件,一个dsp
 
 
 

回复

49

帖子

0

TA的资源

一粒金砂(初级)

12
 
通讯是双方的事情,
要看接收方是怎么处理数据的。
如果它接收到一字节马上处理,需要花费一段时间,那么你连续传的第二字节可能就出问题了。

所以,你得看看接收方是怎么处理接收到得数据。

我有一次片选,传输多字节的项目经验。
 
 
 

回复

55

帖子

0

TA的资源

一粒金砂(初级)

13
 
引用 11 楼 bluepei28 的回复:

通讯是双方的事情,
要看接收方是怎么处理数据的。
如果它接收到一字节马上处理,需要花费一段时间,那么你连续传的第二字节可能就出问题了。

所以,你得看看接收方是怎么处理接收到得数据。

我有一次片选,传输多字节的项目经验。
不是处理不过来的问题,是收不到的问题。每次发送都要伴随一次使能操作。
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

14
 
那还是要看接收方的处理。
比如说,接收到了一字节是否转移此数据。是否清空相关寄存器,标志位好再接收。
 
 
 

回复

89

帖子

0

TA的资源

一粒金砂(初级)

15
 
[quote]引用 13 楼 bluepei28 的回复:

那还是要看接收方的处理。
比如说,接收到了一字节是否转移此数据。是否清空相关寄存器,标志位好再接收。
[/Quote那边是中断接收,应该不会出现这种问题,接收端不是我弄的,具体不太清楚。
如果说是没准备好的话,我这边加大延时应该可以,但还是不可以的,必须重新片选使能。
 
 
 

回复

89

帖子

0

TA的资源

一粒金砂(初级)

16
 
问题明确了:

双方的通讯协议没有明确。

你应该联系接收方的开发工程师,看是怎么处理的。

如果人家设计的是片选一次只接收一字节,你弄死也传不过去两字节。
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

17
 
引用 15 楼 bluepei28 的回复:

问题明确了:

双方的通讯协议没有明确。

你应该联系接收方的开发工程师,看是怎么处理的。

如果人家设计的是片选一次只接收一字节,你弄死也传不过去两字节。
问题是他那边也不知道是什么原因,不片选试了一下不行,加上片选ok了,就先这么用着了,现在想查一下原因,对方也是想一次片选多次接收的,不过我是真不知道他那边是怎么设置的。不知道有什么设置和这个相关。
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

18
 
用示波器看data线,以确定你的数据发出去没有。
另外,很多IC的SPI接口都支持self-test模式,就是自己发自己收,你可以把发送和接受的程序都写了,试试看。
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

19
 
ps:
1. 不片选是绝对不行的
2. 片选是耗电的
3. 协议规定,数据开始要使能片选,数据结束要禁止片选。一次N个数据的问题,你可以仔细看看IC资料,加上用我上面说的方法来调试。
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

20
 
再者,
注意master和slave模式的区别,具体请看IC资料说明。
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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