打印

Get_Descriptor应答后,不再继续枚举!

[复制链接]
1289|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xiasolar|  楼主 | 2013-11-14 16:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位!
我现在正在做USB 2.0的枚举,在反馈了Get_Descriptor的应答后,不再继续枚举,什么原因??
请各位大侠看看是什么原因啊?急了几天了?
PC:2D  00 10
PC:C3 80 06 00 01 00 40 00 DD 94
设备:D2

PC:69 00 10
设备:4B 12 01 00 01 00 00 00 10 14 1B 66 06 00 01 00 B8 1B
PC:D2

PC:E1  00  10
PC:4B 00 00
设备:D2

在设备应答了PC的空响应后,PC就不再继续枚举下去了

相关帖子

沙发
xiasolar|  楼主 | 2013-11-14 17:38 | 只看该作者
自己先顶一些,千万别沉了

使用特权

评论回复
板凳
microxh| | 2013-11-14 21:09 | 只看该作者
你运气! 这问题我刚解决, 返回设备描述符后, 如果主机接收到正确的设备描述符, 主机会发一个0字节的数据给端点0输出口, 而后主机会对设备总线复位, 接着设置地址SET ADDRESS, 读取端点0输出缓冲器代码0字节的数据如果没有进行判0, 会读取256次, 必然出错, 我已解决了, 不知能帮到你不?前提是USB协议编程正确, 设备描述符正确无误, 祝你枚举成功, 一起努力, 加油!

使用特权

评论回复
地板
雪中望月亭| | 2013-11-16 22:20 | 只看该作者
主机发送获取设备描述符请求(80 06 00 01 00 40 ),从机正确响应后主机会复位从机,然后发送设置地址请求(00 05 01 00 00 00),01为地址 也可能为其它值。先确定你响应获取设备描述符请求后有没有进复位中断!!下面是我的枚举时的Debug信息:
04 USB_Resume...
01 USB_Reset...
7 05 USB_Suspend...
04 USB_Resume...
7 01 USB_Reset...
06 USB SetupTransfer...
  DataOut: 0x680, 0x100, 0x0, 0x40,
  STD Request : GetDescriptors Type=1 Index=0 ...
    _GetDeviceDesc ...
  DataIn: 0x112, 0x200, 0x0, 0x4000,
06 InTransfer ...
06 OUT_Transfer...
01 USB_Reset...
6 06 USB SetupTransfer...
  DataOut: 0x500, 0x4, 0x0, 0x0,
  STD Request : SetAddress ...
06 InTransfer ...
06 USB SetupTransfer...
  DataOut: 0x680, 0x100, 0x0, 0x12,
  STD Request : GetDescriptors Type=1 Index=0 ...
    _GetDeviceDesc ...
  DataIn: 0x112, 0x200, 0x0, 0x4000, 0x483, 0x5710, 0x200, 0x201, 0x103,
06 InTransfer ...
06 OUT_Transfer...

              。。。
              。。。

使用特权

评论回复
5
xiasolar|  楼主 | 2013-12-1 23:31 | 只看该作者
呵呵,问题已经解决了
是在该阶段是,HOST会启动一次总线的复位,而我的Device没有做出相应!

使用特权

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

本版积分规则

4

主题

8

帖子

0

粉丝