nn_buaa
驱动牛犊
驱动牛犊
  • 注册日期2002-03-04
  • 最后登录2005-06-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1511回复:10

关于68013SLAVEFIFO问题

楼主#
更多 发布于:2003-09-19 12:16
我将EP2FIFO设置成IN,AUTOIN,,BULK,1024,DOUBLE.
请问:
1、如果我通过SLWR往EP2FIFO中写入数据,何时主机才能将EP2FIFO中的数据取走,是写到512时,还是1024呢?(主机连续发送IN请求)。
2、如果在EP2FIFO满1024时发生中断,主机未去数据,同时SLWR应该可以继续往FIFO中写入数据,当再次写满1024时是否会再次发生中断?而且此时主机开始读取FIFO,可以读回2048个数据吗?
flytomoon
驱动巨牛
驱动巨牛
  • 注册日期2003-07-09
  • 最后登录2004-10-18
  • 粉丝1
  • 关注1
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-09-19 12:27
1,到1024时取走。
2,不可以,FIFO满后不能再写了!
babyblue
驱动中牛
驱动中牛
  • 注册日期2003-05-06
  • 最后登录2005-12-21
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望3点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-09-19 13:43
1,到1024时取走。
2,不可以,FIFO满后不能再写了!


如果继续写会有什么现象?是把前面的数冲掉吗?
nn_buaa
驱动牛犊
驱动牛犊
  • 注册日期2002-03-04
  • 最后登录2005-06-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-09-19 13:43
那DOUBLE有什么用?
flytomoon
驱动巨牛
驱动巨牛
  • 注册日期2003-07-09
  • 最后登录2004-10-18
  • 粉丝1
  • 关注1
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-09-19 14:52
双缓冲啊,使512b变成1024b啊!
babyblue
驱动中牛
驱动中牛
  • 注册日期2003-05-06
  • 最后登录2005-12-21
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望3点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-09-19 14:54
双缓冲啊,使512b变成1024b啊!


可以4倍缓冲吗?
free_man_free
驱动小牛
驱动小牛
  • 注册日期2003-08-19
  • 最后登录2005-04-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-09-19 16:30
一般我们把EPx设置成大小512,两倍Buffer!
所以一般当EPx接收到1024大小的时候,EPx的满标志变低(有效),表示数据已经满了!但是我们的应用程序一般是设置512大小就接收,就是说当FIFO半满的时候,把数据取走了!
如果是四倍Buffer时,EPx要写满2048的数据,满标志位才会变低(有效),而我们的应用程序还是接收512大小的数据,也就是说给了系统更多的时间来读取数据!这种要四倍Buffer的情况,一般用在速度很快的情况下! :D :D :D
nn_buaa
驱动牛犊
驱动牛犊
  • 注册日期2002-03-04
  • 最后登录2005-06-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-09-19 16:34
那1024,quare是什么意思呢?
ep2,ep6本来就可以配置成1024,并不是double才使之成为1024的吧?
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-09-19 18:01
[quote]1,到1024时取走。
2,不可以,FIFO满后不能再写了!


如果继续写会有什么现象?是把前面的数冲掉吗? [/quote]

写满了后就写不进去了,不是冲掉!必须端点空了后才能再写进去。
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-09-19 18:34
那1024,quare是什么意思呢?
ep2,ep6本来就可以配置成1024,并不是double才使之成为1024的吧?


你说的是iso模式吧,bulk模式只能是512,只不过有2、3、4重缓冲的说法,这样也就是1024、2048等。
free_man_free
驱动小牛
驱动小牛
  • 注册日期2003-08-19
  • 最后登录2005-04-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2003-09-20 07:53
完全同意专家的话!!!
可以看看读写FIFO的时序图,只要满标志为低(有效),数据是写不进FIFO的!
不相信可以自己做实验,试一试不就全明白了! :D :D :D

实践是检验真理的唯一标准!(伟人的话确实经典)
游客

返回顶部