阅读:1511回复:10
关于68013SLAVEFIFO问题
我将EP2FIFO设置成IN,AUTOIN,,BULK,1024,DOUBLE.
请问: 1、如果我通过SLWR往EP2FIFO中写入数据,何时主机才能将EP2FIFO中的数据取走,是写到512时,还是1024呢?(主机连续发送IN请求)。 2、如果在EP2FIFO满1024时发生中断,主机未去数据,同时SLWR应该可以继续往FIFO中写入数据,当再次写满1024时是否会再次发生中断?而且此时主机开始读取FIFO,可以读回2048个数据吗? |
|
沙发#
发布于:2003-09-19 12:27
1,到1024时取走。
2,不可以,FIFO满后不能再写了! |
|
板凳#
发布于:2003-09-19 13:43
1,到1024时取走。 如果继续写会有什么现象?是把前面的数冲掉吗? |
|
地板#
发布于:2003-09-19 13:43
那DOUBLE有什么用?
|
|
地下室#
发布于:2003-09-19 14:52
双缓冲啊,使512b变成1024b啊!
|
|
5楼#
发布于:2003-09-19 14:54
双缓冲啊,使512b变成1024b啊! 可以4倍缓冲吗? |
|
6楼#
发布于:2003-09-19 16:30
一般我们把EPx设置成大小512,两倍Buffer!
所以一般当EPx接收到1024大小的时候,EPx的满标志变低(有效),表示数据已经满了!但是我们的应用程序一般是设置512大小就接收,就是说当FIFO半满的时候,把数据取走了! 如果是四倍Buffer时,EPx要写满2048的数据,满标志位才会变低(有效),而我们的应用程序还是接收512大小的数据,也就是说给了系统更多的时间来读取数据!这种要四倍Buffer的情况,一般用在速度很快的情况下! :D :D :D |
|
7楼#
发布于:2003-09-19 16:34
那1024,quare是什么意思呢?
ep2,ep6本来就可以配置成1024,并不是double才使之成为1024的吧? |
|
8楼#
发布于:2003-09-19 18:01
[quote]1,到1024时取走。 如果继续写会有什么现象?是把前面的数冲掉吗? [/quote] 写满了后就写不进去了,不是冲掉!必须端点空了后才能再写进去。 |
|
9楼#
发布于:2003-09-19 18:34
那1024,quare是什么意思呢? 你说的是iso模式吧,bulk模式只能是512,只不过有2、3、4重缓冲的说法,这样也就是1024、2048等。 |
|
10楼#
发布于:2003-09-20 07:53
完全同意专家的话!!!
可以看看读写FIFO的时序图,只要满标志为低(有效),数据是写不进FIFO的! 不相信可以自己做实验,试一试不就全明白了! :D :D :D 实践是检验真理的唯一标准!(伟人的话确实经典) |
|