您的位置: OpenADSP社区论坛 -> Blackfin专区 -> 新手上路 -> 请问SPORT RX 中断读取数据的理解:
本帖共有630个阅读者
发表帖子 发表投票 回复主题
请问SPORT RX 中断读取数据的理解:
xuanjinjin(论坛新手)
xuanjinjin
头衔:社区公民
帮派:无帮无派
帖数:57
金钱:562
积分:72
注册时间:2013/9/23
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
请问SPORT RX 中断读取数据的理解:

The SPORT RX interrupt is generated when RSPEN = 1 and the RX FIFO
has received words in it. When the core processor has read all the words in
the FIFO, the RX interrupt is cleared.

请问:当SPORT中断产生,进入中断服务函数,假设FIFO中有三个数据,请问是不是这三个数据可以同时读出,还是分三次进入中断读出数据。谢谢大神指导

我的底牌是什么
等级:论坛新手 参考IP地址:*.*.*.*
2013/10/22 16:48:53
xuanjinjin(论坛新手)
xuanjinjin
头衔:社区公民
帮派:无帮无派
帖数:57
金钱:562
积分:72
注册时间:2013/9/23
1信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
我觉得应该是分三次读出,请问是不是这样?这些手册没有说明白,可能是很常识的事情

我的底牌是什么
等级:论坛新手 参考IP地址:*.*.*.*
2013/10/22 16:50:08
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
2信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
SPROT的FIFO是32bit的,一次只能存储一个数据,如果你是8位的,每次进入fifo的数据也是8bit,如果fifo中的这个数据没有被读取,此时Fifo的状态是满,其他数据如果通过SPORT口传输过来后,会被丢弃,所以必须在下一个数据传输到来前,读取这个FIFO的数据,当数据被读取后,FIFO状态变为空,此时如果有数据过来,会被存入FIFO。
所以,每次中断只能读取FIFO中一个数据,不存在FIFO中有3个数据等待的情况,如出现,后到的数据会被丢弃。

这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2013/10/24 16:28:34
xuanjinjin(论坛新手)
xuanjinjin
头衔:社区公民
帮派:无帮无派
帖数:57
金钱:562
积分:72
注册时间:2013/9/23
3信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
FIFO不是一个缓存的作用吗?假设里面已经缓存了三个数据,此时进入中断,中断服务函数里面是不是可以连续的把三个数据都取出来,直到FIFO为空,还是分三次触发中断读数据。或许我理解你的意思了“
SPROT的FIFO是32bit的,一次只能存储一个数据,如果你是8位的 ”也就是说在中断中FIFO只能存一个数据,不存在缓存数据情况。只有在DMA模式FIFO缓存才起作用,是这样理解吗 ?


我的底牌是什么
等级:论坛新手 参考IP地址:*.*.*.*
2013/10/25 17:06:44
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
4信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
不管哪个模式,FIFO都起作用,你用CORE读取SPORT_RX寄存器,读取的值就是他的FIFO,DMA也是读这个FIFO,只不过DMA不是每个数据都进一次中断,而是完成DMA描述的数据量后进入中断。FIFO每次只能存一个数据,不及时读取,后面数据无法进入FIFO

这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2013/10/25 20:50:13
Powered by OpenADSP Copyright © 2010 www.Openadsp.com. All rights reserved.159201 Call, 1 Queries, Processed in 0.015991 second(s),