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

xqhrs232 2009-10-23 10:04:21
WINCE下10Mbps的SPI数据流采用中断的接收工作方式(等到了中断然后一个个地读接收SFR)能不能处理的过来?难道必须用DMA工作方式吗?
...全文
120 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
greenangel1113 2011-03-29
  • 打赏
  • 举报
回复
SFR是什么?
shellgo 2010-03-06
  • 打赏
  • 举报
回复
问一下楼主,现在有没有解决spi丢数据的问题的
xqhrs232 2009-10-29
  • 打赏
  • 举报
回复
500khz都会丢数据!怪怪!难道中断接收真的处理不过来?
xqhrs232 2009-10-29
  • 打赏
  • 举报
回复
SPI通信线太长?SPI通信信号线不稳定有干扰?觉得都不大可能是!
xqhrs232 2009-10-28
  • 打赏
  • 举报
回复
今天拿两台ARM+WINCE的设备试了一下,真的会丢数据啊!10帧1K的数据就有1-2帧收不完全.SPI频率还只是跑到了5.54MHZ,中断方式真的处理不过来?应该不存在SPI数据没发出的现象?!
gelu1040 2009-10-27
  • 打赏
  • 举报
回复
SPI没有所谓的忙不过来
wohuazhen 2009-10-26
  • 打赏
  • 举报
回复
呵呵。这个还是要靠自己慢慢找。
xqhrs232 2009-10-26
  • 打赏
  • 举报
回复
有逻辑分析仪就好了,就可以勾几K的数据看看发送丢不丢数据.
skynet000 2009-10-26
  • 打赏
  • 举报
回复
如果怀疑发送的问题,
你就重复传一个包,然后用示波器测测看。是否有数据丢失!

xqhrs232 2009-10-26
  • 打赏
  • 举报
回复
顶起来一下
xqhrs232 2009-10-24
  • 打赏
  • 举报
回复
直接把fifo清掉???


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

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


//=========
漏数据也不是完全的,有时候还是可以接到一个完整的包的,并且对应的校验和也是对的.觉得接收应该是没有问题,不知道问题是不是出在MCU发送那端,问题确定不了很烦.
skynet000 2009-10-24
  • 打赏
  • 举报
回复
用中断方式是可以处理的过来。你可以把fifo的长度设置长一些比如用64。然后触发中断设置为48.
不要相等。试试看。
7个字节也可以的,应该不会有漏数据的现象。我觉得你是不是每次接收数据就把FIFO给清掉的原因造成。比如说FIFO接到7个就通知中断处理了,然后FIFO还会继续接收后面的字节。但是你中断接完7个字节,就直接把fifo清掉了。后面几个字节可能就丢失了。

其实用DMA的方式跟中断也一样。等FIFO满了,直接从总线传到Memory,不用通过CPU来转。速度快一些。触发的原理还是跟中断一样的。
xqhrs232 2009-10-23
  • 打赏
  • 举报
回复
DMA接收方式必须先知道要接收多少个数据,当指定的数据个数接收完成才触发DMA中断产生什么的.但我的系统DMA接收的数据个数是变化的,不好指定DMA接收的数据个数啊!这样整的我的系统不知道该怎么去用DMA工作方式.
xqhrs232 2009-10-23
  • 打赏
  • 举报
回复
按道理我的SPI的FIFO有64个字节,有了FIFO就应该可以接到高速系统里面去.FIFO的存在就是为了协调系统总线跟外围总线的速度不一致而存在的.FIFO满了才请求CPU来处理(进行读取),CPU处理的速度是用的系统总线的频率,应该很快的,SPI数据的接收(一位位数据的移入跑的是外围总线,速度应该是更慢一点的).难道有了FIFO还是处理不过来?还是不能协调系统总线跟外围总线?(丢数据/漏数据现象严重)应该不至于吧?谁给讲讲这方面的理论啊!!!难道有了FIFO还得去用DMA方式?


不过我目前的接收触发中断的水平是设置为接收到7个字节就触发中断,没有设置为64个字节,FIFO的功能没有全部用到.
xqhrs232 2009-10-23
  • 打赏
  • 举报
回复
谁解决过这种高速接收的问题?我的SPI有64个FIFO按道理应该可以协调外围总线跟系统总线了.但为什么我的SPI接收丢数据/漏数据很严重

19,498

社区成员

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

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