metalwing
驱动中牛
驱动中牛
  • 注册日期2003-10-13
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分178分
  • 威望58点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
阅读:1378回复:3

usb bulk传输问题,大家帮帮忙!!!

楼主#
更多 发布于:2004-07-13 15:52
我在用USB进行BULK传输时,碰到一个问题,希望
大家帮忙看看.具体情况是:
当我收到一个BULK REQUEST(0471,
PHILIPS的VENDER REQUEST,
方向是由DEVICE TO HOST)后,我开始进行
DMA传输,传输完成后,设置端点缓存有效,以待下一个
IN令牌将数据取走.之后,由测试程序执行READFILE函数,驱动程序BUILDBULKTRANSFER向实验板发一个IN请求,这时收到端点IN中断,可是数据并没有传输出去,
必须再来一次才可以,(第一次发送一次就可以实现,以后
的都必须要两次才能实现),为什么?
我用的是PHILIPS ISP1581芯片.
谢谢!!!
新手上路,请多关照.
darydl
驱动小牛
驱动小牛
  • 注册日期2003-06-29
  • 最后登录2017-05-02
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2004-07-13 16:55
我和你用同样的芯片,你用的是那个测试程序?我的测试程序刚开始不能中断传输,只能批量,刚开始也是利用一个厂商请求传输出bmrequest0471和mIndex 0x0c。然后UILDBULKTRANSFER,基本没有问题,这些参数是固件程序中设置好了的,你不是也是这样做的吗?怎么会呢?
metalwing
驱动中牛
驱动中牛
  • 注册日期2003-10-13
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分178分
  • 威望58点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-07-13 18:02
谢谢。
我是用DS生成的测试程序进行试验的。
先给他发一个i 1(向驱动程序发送DMA请求,并通知传输16Bytes字节数据。固件程序接收到后,DMA控制将SRAM中的16个字节的数据送到BULK IN BUFFER中,并设置VENDP为1)。完毕后,再发r 16(从USB读取16Bytes数据),但这时却接收不到数据(应用程序结果显示接受了0Bytes字节数据),可ISP1581却产生了In管道中断。若再发r 16命令,数据却能正确接收(但用Bus Hound观察响应时间却在1sec以上)。感觉上好像是当发第一个r 16时,USB返回NAK,发第二个r 16时才接收数据。不知为何。

[编辑 -  7/13/04 by  metalwing]
新手上路,请多关照.
darydl
驱动小牛
驱动小牛
  • 注册日期2003-06-29
  • 最后登录2017-05-02
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
地板#
发布于:2004-07-14 08:19
建议你自己编写一个应用程序测试吧
游客

返回顶部