4908|14

61

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

WINCE下10Mbps的SPI数据流采用中断的接收工作方式(等到了中断然后一个个地读接收SFR)能不能处理的过来?难道必须用DMA工作方式吗? [复制链接]

WINCE下10Mbps的SPI数据流采用中断的接收工作方式(等到了中断然后一个个地读接收SFR)能不能处理的过来?难道必须用DMA工作方式吗?
此帖出自WindowsCE论坛

最新回复

问一下楼主,现在有没有解决spi丢数据的问题的  详情 回复 发表于 2010-3-6 16:08
点赞 关注
 

回复
举报

68

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
谁解决过这种高速接收的问题?我的SPI有64个FIFO按道理应该可以协调外围总线跟系统总线了.但为什么我的SPI接收丢数据/漏数据很严重
此帖出自WindowsCE论坛
 
 
 

回复

92

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
按道理我的SPI的FIFO有64个字节,有了FIFO就应该可以接到高速系统里面去.FIFO的存在就是为了协调系统总线跟外围总线的速度不一致而存在的.FIFO满了才请求CPU来处理(进行读取),CPU处理的速度是用的系统总线的频率,应该很快的,SPI数据的接收(一位位数据的移入跑的是外围总线,速度应该是更慢一点的).难道有了FIFO还是处理不过来?还是不能协调系统总线跟外围总线?(丢数据/漏数据现象严重)应该不至于吧?谁给讲讲这方面的理论啊!!!难道有了FIFO还得去用DMA方式?


不过我目前的接收触发中断的水平是设置为接收到7个字节就触发中断,没有设置为64个字节,FIFO的功能没有全部用到.
此帖出自WindowsCE论坛
 
 
 

回复

56

帖子

0

TA的资源

一粒金砂(初级)

4
 
DMA接收方式必须先知道要接收多少个数据,当指定的数据个数接收完成才触发DMA中断产生什么的.但我的系统DMA接收的数据个数是变化的,不好指定DMA接收的数据个数啊!这样整的我的系统不知道该怎么去用DMA工作方式.
此帖出自WindowsCE论坛
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

5
 
用中断方式是可以处理的过来。你可以把fifo的长度设置长一些比如用64。然后触发中断设置为48.
不要相等。试试看。
7个字节也可以的,应该不会有漏数据的现象。我觉得你是不是每次接收数据就把FIFO给清掉的原因造成。比如说FIFO接到7个就通知中断处理了,然后FIFO还会继续接收后面的字节。但是你中断接完7个字节,就直接把fifo清掉了。后面几个字节可能就丢失了。

其实用DMA的方式跟中断也一样。等FIFO满了,直接从总线传到Memory,不用通过CPU来转。速度快一些。触发的原理还是跟中断一样的。
此帖出自WindowsCE论坛
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

6
 
直接把fifo清掉???


没有这样的操作啊!FIFO在软件层面是清不到的,FIFO是底层固件接口.FIFO满了就会产生什么RXRDY信号,请求CPU来处理.FIFO的实现应该是什么LSI/VLSI来实现的.

FIFO这样的器件是由硬件决定的,是固定大小的,像我的SPI的FIFO就是64个字节的大小.


//=========
漏数据也不是完全的,有时候还是可以接到一个完整的包的,并且对应的校验和也是对的.觉得接收应该是没有问题,不知道问题是不是出在MCU发送那端,问题确定不了很烦.
此帖出自WindowsCE论坛
 
 
 

回复

86

帖子

0

TA的资源

一粒金砂(初级)

7
 
顶起来一下
此帖出自WindowsCE论坛
 
 
 

回复

85

帖子

0

TA的资源

一粒金砂(初级)

8
 
如果怀疑发送的问题,
你就重复传一个包,然后用示波器测测看。是否有数据丢失!

此帖出自WindowsCE论坛
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

9
 
有逻辑分析仪就好了,就可以勾几K的数据看看发送丢不丢数据.
此帖出自WindowsCE论坛
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

10
 
呵呵。这个还是要靠自己慢慢找。
此帖出自WindowsCE论坛
 
 
 

回复

86

帖子

0

TA的资源

一粒金砂(初级)

11
 
SPI没有所谓的忙不过来
此帖出自WindowsCE论坛
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

12
 
今天拿两台ARM+WINCE的设备试了一下,真的会丢数据啊!10帧1K的数据就有1-2帧收不完全.SPI频率还只是跑到了5.54MHZ,中断方式真的处理不过来?应该不存在SPI数据没发出的现象?!
此帖出自WindowsCE论坛
 
 
 

回复

58

帖子

0

TA的资源

一粒金砂(初级)

13
 
SPI通信线太长?SPI通信信号线不稳定有干扰?觉得都不大可能是!
此帖出自WindowsCE论坛
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

14
 
500khz都会丢数据!怪怪!难道中断接收真的处理不过来?
此帖出自WindowsCE论坛
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

15
 
问一下楼主,现在有没有解决spi丢数据的问题的
此帖出自WindowsCE论坛
 
 
 

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

随便看看
查找数据手册?

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
快速回复 返回顶部 返回列表