fengzhongzhige
驱动小牛
驱动小牛
  • 注册日期2003-10-10
  • 最后登录2008-04-15
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望10点
  • 贡献值0点
  • 好评度40点
  • 原创分0分
  • 专家分0分
阅读:1094回复:6

各位侠客我感觉自己碰见的问题比较的简单,就是解决不了了,您能解决吗?

楼主#
更多 发布于:2003-10-27 09:14
资源:cy68013开发板,控制面板,厂家附带的例子

问题:

1。如何把EP2设置为输入端口?
2。如何把数据用内部mpu写向EP6端口?

各位侠客也给了建议,可我总是不能成功,
开发过这类的高手您可以实现吗?
PCI卡 http://blog.21ic.com/blog.asp?name=zhangdage
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-10-27 11:24
1,你那个“输入”是对谁说的,是 OUT 端点的意思吗?如果是把下面几行加入加入TD_Init()函数:
  EP2CFG = 0xA2;
  SYNCDELAY;                    
  EP2BCL = 0x80; // arm EP2OUT by writing byte count w/skip.
  SYNCDELAY;                    
  EP2BCL = 0x80;
  SYNCDELAY;  
其实ep2默认的就是out端点。

2, 参考cy的例子bulkloop或者bulksrc,你想要的内容在TD_Poll()函数里。                
fengzhongzhige
驱动小牛
驱动小牛
  • 注册日期2003-10-10
  • 最后登录2008-04-15
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望10点
  • 贡献值0点
  • 好评度40点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-10-27 11:56
默认的EP2是输出(即host to usb)
我要把EP2改为输入(usb to host)
改了描述符和EP2CFG都不好使

还有一问题:
要ARM一个通道,比如EP2
就要向这个相应的计数器EP2BCL里写一个数字
请问这个数字是随便写的吗?
随便写的这个数字在以后的应用中比如(bulkloop里)
又把EP2BCL和EP2BCH都复制给count,
那这个count里的值是什么东西?
好象很乱

[编辑 -  10/27/03 by  fengzhongzhige]
PCI卡 http://blog.21ic.com/blog.asp?name=zhangdage
zhanggy_zju
驱动牛犊
驱动牛犊
  • 注册日期2003-10-04
  • 最后登录2004-10-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-10-27 16:33
除了在TD_Init()里设置相应寄存器外,
还要在dscr.a51里修改端口描述符,把ep2传输方向改为IN。

在bulkloop例子中,EP2BCL = 0x80 来re-arm端口,是为了使buffer立即准备接收下一个OUT封包。参见技术手册的P8-13。
至于count是用来计算接收到多少字节的OUT数据count = (EP2BCH << 8) + EP2BCL;然后将这些放入IN端口的缓冲里啊。

[编辑 -  10/27/03 by  zhanggy_zju]
fengzhongzhige
驱动小牛
驱动小牛
  • 注册日期2003-10-10
  • 最后登录2008-04-15
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望10点
  • 贡献值0点
  • 好评度40点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-10-27 17:34
其实我就是这样改的 初始和 描述符都改了可用控制面板栗的getpip按钮一看ep2还是输出....????

/************
在bulkloop例子中,EP2BCL = 0x80 来re-arm端口,是为了使buffer立即准备接收下一个OUT封包。参见技术手册的P8-13。
至于count是用来计算接收到多少字节的OUT数据count = (EP2BCH << 8) + EP2BCL;然后将这些放入IN端口的缓冲里啊。*///////

 可是上一步已经给EP2BCL赋值了,这样怎么能精确的知道接受多少个字节?

PCI卡 http://blog.21ic.com/blog.asp?name=zhangdage
zhanggy_zju
驱动牛犊
驱动牛犊
  • 注册日期2003-10-04
  • 最后登录2004-10-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-10-27 19:04
奇怪,我自己试了一下没什么问题啊。
你确定在dscr.a51里把高速和全速的端口描述符都改了吗?
EP2CFG的DIR位确定为1吗?


[编辑 -  10/27/03 by  zhanggy_zju]
fengzhongzhige
驱动小牛
驱动小牛
  • 注册日期2003-10-10
  • 最后登录2008-04-15
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望10点
  • 贡献值0点
  • 好评度40点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-10-28 08:02
好了,十分的感谢,我决定给你50分以表内心感激,原因是没改全速的描述符,可我用的是高速的usb2.0,为什么还要改全速的哪个描述副?????。(奇怪,怎么给分?以前发的帖子下面有一个给分的选项,这个怎么没有?)
还有一点就是:即使改对了,但是还要把那个USB插头拔下来,然后重新插上,重新download新改过的.hex,才可见修改过后的效果,不知道是不是和斑竹说过的可能没再枚举有没有关系?可一download,控制面板显示mcu已经复位了,应该是枚举了吧?
[编辑 -  10/28/03 by  fengzhongzhige]

[编辑 -  10/28/03 by  fengzhongzhige]

[编辑 -  10/28/03 by  fengzhongzhige]
PCI卡 http://blog.21ic.com/blog.asp?name=zhangdage
游客

返回顶部