liuwenwyf
驱动牛犊
驱动牛犊
  • 注册日期2001-11-01
  • 最后登录2008-07-31
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望6点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
阅读:1923回复:11

急,为什么我枚举不成功?

楼主#
更多 发布于:2001-12-10 10:12
   我用D12开发Firmware,但是列举不成功,我监控了INTERRUPT REGISTER,ReadLastTransactionStatus,DCPDeviceRequest三个参数得如下数据,请帮忙看看出了什么问题。
INTERRUPT REGISTER=8000
INTERRUPT REGISTER=C000
ReadLastTransactionStatus=21
INTERRUPT REGISTER=100
bmRequestType=80,bRequest=6,wValue=1,wIndex=0,wLength=4000
INTERRUPT REGISTER=0
ReadLastTransactionStatus=41
INTERRUPT REGISTER=200
ReadLastTransactionStatus=21
INTERRUPT REGISTER=4100
bmRequestType=0,bRequest=5,wValue=200,wIndex=0,wLength=0
INTERRUPT REGISTER=0
ReadLastTransactionStatus=41
INTERRUPT REGISTER=200
ReadLastTransactionStatus=21
INTERRUPT REGISTER=100
bmRequestType=80,bRequest=6,wValue=1,wIndex=0,wLength=1200
INTERRUPT REGISTER=0
ReadLastTransactionStatus=41
INTERRUPT REGISTER=200
ReadLastTransactionStatus=A1
ReadLastTransactionStatus=1
INTERRUPT REGISTER=300
bmRequestType=80,bRequest=6,wValue=2,wIndex=0,wLength=900
ReadLastTransactionStatus=41
INTERRUPT REGISTER=200
ReadLastTransactionStatus=A1
INTERRUPT REGISTER=100
bmRequestType=80,bRequest=6,wValue=3,wIndex=0,wLength=FF00
INTERRUPT REGISTER=0
ReadLastTransactionStatus=41
INTERRUPT REGISTER=200
ReadLastTransactionStatus=A1
INTERRUPT REGISTER=100
bmRequestType=80,bRequest=6,wValue=303,wIndex=904,wLength=FF00
INTERRUPT REGISTER=0
ReadLastTransactionStatus=41
INTERRUPT REGISTER=200
ReadLastTransactionStatus=A1
ReadLastTransactionStatus=1
INTERRUPT REGISTER=300
bmRequestType=80,bRequest=6,wValue=2,wIndex=0,wLength=FF00
INTERRUPT REGISTER=0
ReadLastTransactionStatus=41
INTERRUPT REGISTER=200
ReadLastTransactionStatus=1
INTERRUPT REGISTER=200
ReadLastTransactionStatus=41
ReadLastTransactionStatus=41
INTERRUPT REGISTER=300
INTERRUPT REGISTER=0
INTERRUPT REGISTER=4000
INTERRUPT REGISTER=0
ReadLastTransactionStatus=21
INTERRUPT REGISTER=100
bmRequestType=80,bRequest=6,wValue=1,wIndex=0,wLength=4000
INTERRUPT REGISTER=0
ReadLastTransactionStatus=41
INTERRUPT REGISTER=200
ReadLastTransactionStatus=21
INTERRUPT REGISTER=4100
bmRequestType=0,bRequest=5,wValue=200,wIndex=0,wLength=0
INTERRUPT REGISTER=0
ReadLastTransactionStatus=41
INTERRUPT REGISTER=200
ReadLastTransactionStatus=21
INTERRUPT REGISTER=100
bmRequestType=80,bRequest=6,wValue=1,wIndex=0,wLength=1200
INTERRUPT REGISTER=0
ReadLastTransactionStatus=41
INTERRUPT REGISTER=200
ReadLastTransactionStatus=A1
ReadLastTransactionStatus=1
INTERRUPT REGISTER=300
bmRequestType=80,bRequest=6,wValue=2,wIndex=0,wLength=900
INTERRUPT REGISTER=0
ReadLastTransactionStatus=41
INTERRUPT REGISTER=200
ReadLastTransactionStatus=A1
INTERRUPT REGISTER=100
bmRequestType=80,bRequest=6,wValue=3,wIndex=0,wLength=FF00
INTERRUPT REGISTER=0
ReadLastTransactionStatus=41
INTERRUPT REGISTER=200
ReadLastTransactionStatus=A1
INTERRUPT REGISTER=100
bmRequestType=80,bRequest=6,wValue=303,wIndex=904,wLength=FF00
INTERRUPT REGISTER=0
ReadLastTransactionStatus=41
INTERRUPT REGISTER=200
ReadLastTransactionStatus=A1
ReadLastTransactionStatus=1
INTERRUPT REGISTER=300
bmRequestType=80,bRequest=6,wValue=2,wIndex=0,wLength=FF00
INTERRUPT REGISTER=0
ReadLastTransactionStatus=41
INTERRUPT REGISTER=200
ReadLastTransactionStatus=1
INTERRUPT REGISTER=200
ReadLastTransactionStatus=41
ReadLastTransactionStatus=41
INTERRUPT REGISTER=300
INTERRUPT REGISTER=0
INTERRUPT REGISTER=4000
ReadLastTransactionStatus=21
INTERRUPT REGISTER=100
bmRequestType=80,bRequest=6,wValue=1,wIndex=0,wLength=4000
ReadLastTransactionStatus=41
INTERRUPT REGISTER=200
ReadLastTransactionStatus=21
INTERRUPT REGISTER=4100
bmRequestType=0,bRequest=5,wValue=200,wIndex=0,wLength=0
INTERRUPT REGISTER=0
ReadLastTransactionStatus=41
INTERRUPT REGISTER=200
ReadLastTransactionStatus=21
INTERRUPT REGISTER=100
bmRequestType=80,bRequest=6,wValue=1,wIndex=0,wLength=1200
INTERRUPT REGISTER=0
ReadLastTransactionStatus=41
INTERRUPT REGISTER=200
ReadLastTransactionStatus=A1
ReadLastTransactionStatus=1
INTERRUPT REGISTER=300
bmRequestType=80,bRequest=6,wValue=2,wIndex=0,wLength=900
INTERRUPT REGISTER=0
ReadLastTransactionStatus=41
INTERRUPT REGISTER=200
ReadLastTransactionStatus=A1
INTERRUPT REGISTER=100
bmRequestType=80,bRequest=6,wValue=3,wIndex=0,wLength=FF00
INTERRUPT REGISTER=0
ReadLastTransactionStatus=41
INTERRUPT REGISTER=200
ReadLastTransactionStatus=A1
INTERRUPT REGISTER=100
bmRequestType=80,bRequest=6,wValue=303,wIndex=904,wLength=FF00
INTERRUPT REGISTER=0
ReadLastTransactionStatus=41
INTERRUPT REGISTER=200
ReadLastTransactionStatus=A1
ReadLastTransactionStatus=1
INTERRUPT REGISTER=300
bmRequestType=80,bRequest=6,wValue=2,wIndex=0,wLength=FF00
ReadLastTransactionStatus=41
INTERRUPT REGISTER=200
ReadLastTransactionStatus=1
INTERRUPT REGISTER=200
ReadLastTransactionStatus=41
ReadLastTransactionStatus=41
INTERRUPT REGISTER=300
INTERRUPT REGISTER=0
INTERRUPT REGISTER=8000
INTERRUPT REGISTER=0
数据到这就停止了输出,但列举没成功。
我已停留了好几天了,请各位大侠和斑竹帮帮我。

谢谢!

liuwenwyf
驱动牛犊
驱动牛犊
  • 注册日期2001-11-01
  • 最后登录2008-07-31
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望6点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2001-12-14 18:10
我没用dma方式,我只需块传输就可以了。
JH.quan
驱动牛犊
驱动牛犊
  • 注册日期2001-10-26
  • 最后登录2002-03-19
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2001-12-12 11:26
再问刘先生一下,你们的设备用D12的DMA吗,怎么实现的
jbchen
驱动牛犊
驱动牛犊
  • 注册日期2001-10-10
  • 最后登录2003-05-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2001-12-11 20:31
请问你是怎样成功的。
互相学习,互相进步! Email:tojbchen@hotmail.com
liuwenwyf
驱动牛犊
驱动牛犊
  • 注册日期2001-11-01
  • 最后登录2008-07-31
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望6点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2001-12-11 13:14
谢谢JH.quand的大力帮助,我刚才已经枚举成功了。
JH.quan
驱动牛犊
驱动牛犊
  • 注册日期2001-10-26
  • 最后登录2002-03-19
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2001-12-11 10:13
应该是配置描述符不对:U8 bLength不对,接口描述符也不对啊
liuwenwyf
驱动牛犊
驱动牛犊
  • 注册日期2001-11-01
  • 最后登录2008-07-31
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望6点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2001-12-11 09:18
typedef struct _USB_CONFIGURATION_DESCRIPTOR {
    U8 bLength;
    U8 bDescriptorType;
    U16 wTotalLength;
    U8 bNumInterfaces;
    U8 bConfigurationValue;
    U8 iConfiguration;
    U8 bmAttributes;
    U8 MaxPower;
} USB_CONFIGURATION_DESCRIPTOR

sizeof(USB_CONFIGURATION_DESCRIPTOR)应该为9,但是软件得到的却是A,是不是有问题?

liuwenwyf
驱动牛犊
驱动牛犊
  • 注册日期2001-11-01
  • 最后登录2008-07-31
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望6点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2001-12-10 13:32
我收到的PC请求如下:
(收到)0x80,0x06,0x0001,0x0000,0x4000
   我返回(0x12,0x01,0x00,0x01,0x00,0x00,0x00,0x10,0x84,
         0x05,0x01,0x00,0x00,0x01,0x01,0x02,0x03,0x01 )
(收到)0x00,0x05,0x0200,0x0000,0x0000
(收到)0x80,0x06,0x0001,0x0000,0x1200
   我返回(0x12,0x01,0x00,0x01,0x00,0x00,0x00,0x10,0x84,
         0x05,0x01,0x00,0x00,0x01,0x01,0x02,0x03,0x01)
(收到)0x80,0x06,0x0002,0x0000,0x0900
    我返回(0x0A,0x02,0x24,0x00,0x01,0x01,0x00,0x40,0x32)
(收到)0x80,0x06,0x0003,0x0000,0xff00
    我返回(0x04,0x03,0x09,0x04)
(收到)0x80,0x06,0x0303,0x0904,0xff00
    我返回(0x1A,0x03,0x30,0x00,0x30,0x00,0x30,0x00,0x30,
            0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,
            0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00)
(收到)0x80,0x06,0x0002,0x0000,0xff00
     我返回 (0x0A,0x02,0x24,0x00,0x01,0x01,0x00,0x40,0x32,
          0x00,0x04,0x03,0x09,0x04,0x1A,0x03,0x50,0x00,0x68,
          0x00,0x69,0x00,0x6C,0x00,0x69,0x00,0x70,0x00,0x73,
          0x00,0x20,0x00,0x41,0x00,0x50,0x00)

然后pc重复三次就停止发送。


[编辑 -  12/10/01 作者: liuwen]

[编辑 -  12/10/01 作者: liuwen]
JH.quan
驱动牛犊
驱动牛犊
  • 注册日期2001-10-26
  • 最后登录2002-03-19
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2001-12-10 11:51
有没有收到获取配置描述符请求:08 06 02 00 00 00 09 00
若收到,应该描述符发送没问题
我也在做D12usb 设备,刚通过枚举,以后多交流,我的OICQ:28460399
liuwenwyf
驱动牛犊
驱动牛犊
  • 注册日期2001-11-01
  • 最后登录2008-07-31
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望6点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2001-12-10 11:10
另外我返回的DeviceDescr是:0x12,0x01,0x0001,0x00,0x00,0x00,0x10,0x8405,0x0100,0x01,
0x02,0x03,0x01这是philips的数据,有问题吗?
liuwenwyf
驱动牛犊
驱动牛犊
  • 注册日期2001-11-01
  • 最后登录2008-07-31
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望6点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2001-12-10 10:51
谢谢你的答复。
我有监控每次CONTROL OUT 中断后收到的请求命令,
......
INTERRUPT REGISTER=100
bmRequestType=80,bRequest=6,wValue=1,wIndex=0,wLength=4000
......
INTERRUPT REGISTER=4100
bmRequestType=0,bRequest=5,wValue=200,wIndex=0,wLength=0
......
INTERRUPT REGISTER=100
bmRequestType=80,bRequest=6,wValue=1,wIndex=0,wLength=1200
......
就是呀,我是参考了Philips的USB Mass Storage Device Evaluation Kit的Firmware,因我用的cpu是mc68vz328所以改动了一些,另外我发现pc重复三次后就停了,不知哪里出了问题。
JH.quan
驱动牛犊
驱动牛犊
  • 注册日期2001-10-26
  • 最后登录2002-03-19
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2001-12-10 10:35
你没有监控每次CONTROL OUT 中断后收到的请求命令吗,若能读到,就可知道枚举到那儿了
你自己写的FIRMWARE?还是用例程?
游客

返回顶部