打印

继续请教Cy例程中的bulkloop

[复制链接]
1714|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
doliphin|  楼主 | 2011-12-3 17:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
CD, TE, ARM, se, TI
EP1OUTCFG = 0xA0;    //可以不写,默认的bulk模式
  EP1INCFG = 0xA0;    //为什么要设置EP1??
  SYNCDELAY;                    // see TRM section 15.14
  EP2CFG = 0xA2;
  SYNCDELAY;                    //也没有用自动模式
  EP4CFG = 0xA0;
  SYNCDELAY;                    
  EP6CFG = 0xE2;
  SYNCDELAY;                    
  EP8CFG = 0xE0;
  // out endpoints do not come up armed
  
  // since the defaults are double buffered we must write dummy byte counts twice
  SYNCDELAY;                    
  EP2BCL = 0x80;                // arm EP2OUT by writing byte count w/skip.
  SYNCDELAY;                    
  EP2BCL = 0x80;
  SYNCDELAY;                    
  EP4BCL = 0x80;                // arm EP4OUT by writing byte count w/skip.
  SYNCDELAY;                    
  EP4BCL = 0x80;   
  // enable dual autopointer feature
  AUTOPTRSETUP |= 0x01;
Cypress例程里面的bulkloop中TD_Init()的主要部分如上所示,请问各位大神:1)它为什么没有从FIFOADR[1:0]选择应该挂载哪个FIFO,这样一路下来不只有一个FIFO在上面么?而它要实现EP2/4做out,6/8做IN  2)它没有选择自动模式(AUTOIN/OUT=1)。请问使用了AUTO模式省什么事了么?
3)它没有定义FLAGA、b、c,请问这又是为什么?

相关帖子

沙发
dqyubsh| | 2011-12-3 19:00 | 只看该作者
bulkloop是8051参与USB数据收发的例子,你把手册的三章内容混为一谈,其实那是三种不同的工作模式。

继续看书。。。

使用特权

评论回复
板凳
doliphin|  楼主 | 2011-12-7 11:19 | 只看该作者
1)AUTO是什么都不管
2)不用AUTO是可以按照需求对数据进行简单加工或取舍
3)FLAG之类是外部逻辑参与到控制数据传输
上述理解是否正确?
还有个问题,EP2/6 buffer的地址是不一样的,bulkloop中为什么发送到EP2的数据能够从EP6读出来?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:路漫漫其修远兮,吾将上下而求索

0

主题

195

帖子

2

粉丝