阅读:1360回复:4
wly76再帮我一把,也许就完成了
wly76,好几天没看到你回贴,现在我也不知道是什么会师
用5.0抓数据 连续进入获取描述符和设置地址的中断 循环进入三次,然后就灯灭了!!!! 请问一下,,这是什么问题阿,我在设置地址的结尾,也用 single_transmit(0,0)来响应主机了阿!! 呵呵,我觉得问题快解决了,可是不知道出在什么地方!! 希望大家能帮我一把!! |
|
沙发#
发布于:2004-08-31 12:21
只收到3个Get Device Descriptor 请求,就挂起改变中断了了.
固件返回的设备描述符不正确,查固件这部分程序,也可以加快单片机速度是一下。 |
|
板凳#
发布于:2004-08-31 14:05
我现在改用bus bound 5.0冒着死机的危险,抓了几次数据。
请看一下,应该是什么问题呢?? Device Phase Data Description Cmd.Phase.Ofs(rep) ------ ----- ------------------------ ---------------- ------------------ 10.1 DI 04 . 1.1.0 10.0 CTL a3 00 00 00 02 00 04 00 GET STATUS 2.1.0(2) 10.0 DI 01 01 01 00 .... 2.2.0 10.0 CTL 23 01 10 00 02 00 00 00 CLEAR FEATURE 4.1.0 10.0 CTL a3 00 00 00 01 00 04 00 GET STATUS 5.1.0 10.0 DI 00 03 00 00 .... 5.2.0 10.0 CTL a3 00 00 00 02 00 04 00 GET STATUS 6.1.0(2) 10.0 DI 01 01 00 00 .... 6.2.0 10.0 CTL 23 03 04 00 02 00 00 00 SET FEATURE 8.1.0 10.1 DI 04 . 9.1.0 10.0 CTL a3 00 00 00 02 00 04 00 GET STATUS 10.1.0 10.0 DI 03 01 10 00 .... 10.2.0 10.0 CTL 23 01 14 00 02 00 00 00 CLEAR FEATURE 11.1.0 10.0 CTL a3 00 00 00 02 00 04 00 GET STATUS 12.1.0 10.0 DI 03 01 00 00 .... 12.2.0 10.0 CTL 80 06 00 01 00 00 40 00 GET DESCRIPTOR 13.1.0 10.0 DI 12 01 01 10 dc 00 00 10 ........ 13.2.0 10.0 CTL a3 00 00 00 02 00 04 00 GET STATUS 14.1.0 10.0 DI 03 01 00 00 .... 14.2.0 10.0 CTL 23 03 04 00 02 00 00 00 SET FEATURE 15.1.0 10.1 DI 04 . 16.1.0 10.0 CTL a3 00 00 00 02 00 04 00 GET STATUS 17.1.0 10.0 DI 03 01 10 00 .... 17.2.0 10.0 CTL 23 01 14 00 02 00 00 00 CLEAR FEATURE 18.1.0 10.0 CTL 00 05 02 00 00 00 00 00 SET ADDRESS 19.1.0 10.0 CTL 80 06 00 01 00 00 12 00 GET DESCRIPTOR 20.1.0 10.0 DI 12 01 01 10 dc 00 00 10 ........ 20.2.0 10.0 CTL 80 06 00 02 00 00 09 00 GET DESCRIPTOR 21.1.0 10.0 USTS 0c 00 00 80 buffer overrun 21.2.0 10.0 CTL a3 00 00 00 02 00 04 00 GET STATUS 22.1.0 10.0 DI 03 01 00 00 .... 22.2.0 10.0 CTL 23 03 04 00 02 00 00 00 SET FEATURE 23.1.0 10.1 DI 04 . 24.1.0 10.0 CTL a3 00 00 00 02 00 04 00 GET STATUS 25.1.0 10.0 DI 03 01 10 00 .... 25.2.0 10.0 CTL 23 01 14 00 02 00 00 00 CLEAR FEATURE 26.1.0 10.0 CTL 80 06 00 01 00 00 40 00 GET DESCRIPTOR 27.1.0 10.0 DI 12 01 01 10 dc 00 00 10 ........ 27.2.0 10.0 CTL a3 00 00 00 02 00 04 00 GET STATUS 28.1.0 10.0 DI 03 01 00 00 .... 28.2.0 10.0 CTL 23 03 04 00 02 00 00 00 SET FEATURE 29.1.0 10.1 DI 04 . 30.1.0 10.0 CTL a3 00 00 00 02 00 04 00 GET STATUS 31.1.0 10.0 DI 03 01 10 00 .... 31.2.0 10.0 CTL 23 01 14 00 02 00 00 00 CLEAR FEATURE 32.1.0 buffoverrun?? 什么意思,你们遇到这个问题了吗? 感觉应该是分两次发的描述符,只发了一次 呵呵,是什么问题呢? |
|
地板#
发布于:2004-08-31 14:51
主机枚举过程setup包如下:
1。80 06 00 01 00 00 12 00得到设备描述字 2。00 05 ** ** 00 00 00 00给设备分配地址 3。80 06 02 00 00 00 2E 00读配置描述子 4。00 09 01 00 00 00 00 00激活设备的一个配置 大体的过程就是这样不同的芯片可能会又不同 比如主机得到设备描述字的前8个字节可能就给设备分配地址了 不过你在固件中都做好了肯定能通过祝你好运! |
|
地下室#
发布于:2004-08-31 15:10
10.1 DI 04 . 1.1.0
10.0 CTL a3 00 00 00 02 00 04 00 GET STATUS 2.1.0(2) 10.0 DI 01 01 01 00 .... 2.2.0 10.0 CTL 23 01 10 00 02 00 00 00 CLEAR FEATURE 4.1.0 10.0 CTL a3 00 00 00 01 00 04 00 GET STATUS 5.1.0 10.0 DI 00 03 00 00 .... 5.2.0 10.0 CTL a3 00 00 00 02 00 04 00 GET STATUS 6.1.0(2) 10.0 DI 01 01 00 00 .... 6.2.0 10.0 CTL 23 03 04 00 02 00 00 00 SET FEATURE 8.1.0 10.1 DI 04 . 9.1.0 10.0 CTL a3 00 00 00 02 00 04 00 GET STATUS 10.1.0 10.0 DI 03 01 10 00 .... 10.2.0 10.0 CTL 23 01 14 00 02 00 00 00 CLEAR FEATURE 11.1.0 10.0 CTL a3 00 00 00 02 00 04 00 GET STATUS 12.1.0 10.0 DI 03 01 00 00 .... 12.2.0 10.0 CTL 80 06 00 01 00 00 40 00 GET DESCRIPTOR 13.1.0 =====第一步 10.0 DI 12 01 01 10 dc 00 00 10 ........ 13.2.0 10.0 CTL a3 00 00 00 02 00 04 00 GET STATUS 14.1.0 10.0 DI 03 01 00 00 .... 14.2.0 10.0 CTL 23 03 04 00 02 00 00 00 SET FEATURE 15.1.0 10.1 DI 04 . 16.1.0 10.0 CTL a3 00 00 00 02 00 04 00 GET STATUS 17.1.0 10.0 DI 03 01 10 00 .... 17.2.0 10.0 CTL 23 01 14 00 02 00 00 00 CLEAR FEATURE 18.1.0 10.0 CTL 00 05 02 00 00 00 00 00 SET ADDRESS 19.1.0 ======第二步 10.0 CTL 80 06 00 01 00 00 12 00 GET DESCRIPTOR 20.1.0 ======第三步 10.0 DI 12 01 01 10 dc 00 00 10 ........ 20.2.0 10.0 CTL 80 06 00 02 00 00 09 00 GET DESCRIPTOR 21.1.0 ======第四步没有完成,这一步我印象中09应该是ff而固件应该 返回46字节,bufer overrun 你换一个软件试试,我也没见过 还是看一下其他大虾怎样说。这一步如果通过,枚举就完成了 10.0 USTS 0c 00 00 80 buffer overrun 21.2.0 10.0 CTL a3 00 00 00 02 00 04 00 GET STATUS 22.1.0 10.0 DI 03 01 00 00 .... 22.2.0 10.0 CTL 23 03 04 00 02 00 00 00 SET FEATURE 23.1.0 10.1 DI 04 . 24.1.0 10.0 CTL a3 00 00 00 02 00 04 00 GET STATUS 25.1.0 10.0 DI 03 01 10 00 .... 25.2.0 10.0 CTL 23 01 14 00 02 00 00 00 CLEAR FEATURE 26.1.0 10.0 CTL 80 06 00 01 00 00 40 00 GET DESCRIPTOR 27.1.0 10.0 DI 12 01 01 10 dc 00 00 10 ........ 27.2.0 10.0 CTL a3 00 00 00 02 00 04 00 GET STATUS 28.1.0 10.0 DI 03 01 00 00 .... 28.2.0 10.0 CTL 23 03 04 00 02 00 00 00 SET FEATURE 29.1.0 10.1 DI 04 . 30.1.0 10.0 CTL a3 00 00 00 02 00 04 00 GET STATUS 31.1.0 10.0 DI 03 01 10 00 .... 31.2.0 10.0 CTL 23 01 14 00 02 00 00 00 CLEAR FEATURE 32.1.0 buffoverrun?? 什么意思,你们遇到这个问题了吗? 感觉应该是分两次发的描述符,只发了一次 呵呵,是什么问题呢? |
|