LikeDDK
驱动牛犊
驱动牛犊
  • 注册日期2001-09-30
  • 最后登录2004-11-30
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1781回复:7

用D12收到GET_DESCRIPTOR,但是还多了点东西,不知道是什么……

楼主#
更多 发布于:2004-08-12 12:22
用D12,打开soft_connect之后,我读缓冲区连续读了16bytes,读出数据如下:
C0 08 80 06 00 01 00 00 40 00 00 00 00 00 00 00
从80 06开始的8bytes应该就是GET_DESCRIPTOR了,但是前面的C0 08是什么?

还有,我想用bushound来抓这些数,但是device里面只有usb root hub可以选择,没有看到Get_Descriptor.请问用什么可以抓到?
egrias
驱动牛犊
驱动牛犊
  • 注册日期2004-06-23
  • 最后登录2009-02-26
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-08-13 09:10
0xFD在协议里是没有的,不过我看了许多的帖子提到,用于查看d12是不是正常工作,大家都说返回的是0x1210。
我的电路是模仿周立功的smart板的,没有使用74HCT123,所以程序中所有进入挂起状态的地方都去掉了,上电后SUSPEND都是低电平。
我用bus hound得到的数据如下:
Device  Phase  Data                      Description       Cmd.Phase.Ofs(rep)
------  -----  ------------------------  ----------------  ------------------
   9.1  DI     04                        .                        1.1.0        
   9.0  CTL    a3 00 00 00  02 00 04 00  GET STATUS               2.1.0(2)    
   9.0  DI     01 03 01 00               ....                     2.2.0        
   9.0  CTL    23 01 10 00  02 00 00 00  CLEAR FEATURE            4.1.0        
   9.0  CTL    a3 00 00 00  01 00 04 00  GET STATUS               5.1.0        
   9.0  DI     00 01 00 00               ....                     5.2.0        
   9.0  CTL    a3 00 00 00  02 00 04 00  GET STATUS               6.1.0        
   9.0  DI     01 03 00 00               ....                     6.2.0        
   9.1  DI     04                        .                        7.1.0        
   9.0  CTL    a3 00 00 00  02 00 04 00  GET STATUS               8.1.0(2)    
   9.0  DI     00 01 01 00               ....                     8.2.0        
   9.0  CTL    23 01 10 00  02 00 00 00  CLEAR FEATURE           10.1.0        
   9.0  CTL    a3 00 00 00  02 00 04 00  GET STATUS              11.1.0        
   9.0  DI     01 03 01 00               ....                    11.2.0        
   9.0  CTL    23 03 04 00  02 00 00 00  SET FEATURE             12.1.0        
   9.1  DI     04                        .                       13.1.0        
   9.0  CTL    a3 00 00 00  02 00 04 00  GET STATUS              14.1.0        
   9.0  DI     00 01 11 00               ....                    14.2.0        
   9.0  CTL    23 01 14 00  02 00 00 00  CLEAR FEATURE           15.1.0        
   9.0  CTL    a3 00 00 00  02 00 04 00  GET STATUS              16.1.0        
   9.0  DI     00 01 01 00               ....                    16.2.0        
   9.0  CTL    80 06 00 01  00 00 40 00  GET DESCRIPTOR          17.1.0        
   9.0  USTS   05 00 00 80               no response             17.2.0        
前面的应该是d12自动完成的,主控器请求设备描述符就失败了,在中断服务子程序中i_st = D12_ReadInterruptRegister()的值保存的下来,没有端点0OUT的中断信号,而且最后读到的中断寄存器值是0x40,似乎d12没有接收到这个包。d12的D+、D-都经过18欧姆的电阻接到总线,分别有1M的弱下拉和上拉。
LikeDDK
驱动牛犊
驱动牛犊
  • 注册日期2001-09-30
  • 最后登录2004-11-30
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-08-12 17:29
to egrias

D12好像没有0xFD这命令吧?

那SUSPEND脚有没有被置高呢?

[编辑 -  8/12/04 by  LikeDDK]
LikeDDK
驱动牛犊
驱动牛犊
  • 注册日期2001-09-30
  • 最后登录2004-11-30
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-08-12 17:27
to liuxiaoxi
谢谢你的回复。我猜想也是,只是对协议不熟悉。
liuxiaoxi
驱动牛犊
驱动牛犊
  • 注册日期2004-06-19
  • 最后登录2004-08-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-08-12 16:57
兄弟:
   C0是挂起和总线复位信号,因为你没有响应所以同时显示出来了.
在得到get description前收到挂起和复位信号是正常的,你可以参照USB协议集.不用理会复位和挂起信号. :D
egrias
驱动牛犊
驱动牛犊
  • 注册日期2004-06-23
  • 最后登录2009-02-26
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-08-12 16:31
试了下,还是老样子。
给d12发0xFD,能返回0x1210,d12工作正常,总线上的数据也正常。怀疑是固件程序的问题,但是调试了下,单片机确实没有接收到控制端点输入的中断信号。搞不懂哪里出的问题。
LikeDDK
驱动牛犊
驱动牛犊
  • 注册日期2001-09-30
  • 最后登录2004-11-30
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-08-12 15:50
试一下在softconnect之前,选择端点0用FAh命令使缓冲区有效。
我在softconnect之后得到的中断寄存器的状态是0xC1 。
egrias
驱动牛犊
驱动牛犊
  • 注册日期2004-06-23
  • 最后登录2009-02-26
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-08-12 13:40
我用bus hound5.0捕捉到get_descriptor为80 06 00 01 00 00 40 00,但是就没有了下文,我保存了最后的中断寄存器的状态,为0x4000,也就是总线复位中断,不知道为什么不是端点0输入中断,麻烦楼主提点提点。
游客

返回顶部