szzwm
驱动牛犊
驱动牛犊
  • 注册日期2003-06-12
  • 最后登录2005-05-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1324回复:2

三星S3FB42F单片机做U盘,在收到CBW之后,为何不能返回数据给主机?

楼主#
更多 发布于:2003-07-07 22:06
我用S3FB42F做U盘,在通过了设备枚举之后(用EP0),收到了CBW命令(用EP2),但是无论如何用EP3或者EP2无法返回数据给主机,直至超时停止。

请问有同行做过类似的开发吗?可否给小弟指一条路子?

谢谢!
szzwm
驱动牛犊
驱动牛犊
  • 注册日期2003-06-12
  • 最后登录2005-05-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-07-08 22:45
to hustdj:我把 EP0 设为控制型端口,EP0FIFO为 16 BYTES,用于完成设备枚举等;EP2设为BULK_OUT,EP2FIFO为64BYTES,用于接收主机传来的CBW命令及数据;EP3设为BULK_IN,EP3FIFO为64BYTES,用于返回CSW及数据给主机。至于EP1,则设为INTERRUPT_IN,EP1FIFO随意,目前暂时未用到。EP2当收到CBW之后,往EP3FIFO送入数据,执行INCSR|=IN_PKT_RDY,在发送完之后,INCSR的IN_PKT_RDY位和IN_PKT_RDY2位应由1变0,但是永远等不到变0,持续为1,除非断掉USB电缆之后再连接上,这等价于由主机发送复位信号令设备复位。同时,BusHound拦截不到EP3发出的数据。

to NewTech:我目前还在查找程序流程的逻辑错误,也许是语法错误。驱动程序是市售无驱型U盘为98专配的,电脑市场上可以随便找到。
NewTech
驱动大牛
驱动大牛
  • 注册日期2002-10-02
  • 最后登录2010-03-27
  • 粉丝0
  • 关注0
  • 积分16分
  • 威望263点
  • 贡献值0点
  • 好评度86点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-07-09 10:13
我试过很多的驱动都不太正常,能否将你现在用的发一个给我,我来测测看!
游客

返回顶部