阅读:1348回复:10
D12枚举不成功
我抓的数据如下请高手指点一二:
9.0 CTL 80 06 00 01 GET DESCRIPTOR 312us 36.1.0 00 00 40 00 36.1.4 9.0 USTS 05 00 00 80 no response 77ms 36.2.0 9.0 CTL a3 00 00 00 CLASS 515ms 37.1.0 02 00 04 00 37.1.4 9.0 DI 03 01 00 00 .... 28us 37.2.0 9.0 CTL 23 03 04 00 CLASS 18us 38.1.0 02 00 00 00 38.1.4 9.1 DI 04 . 140ms 39.1.0 9.0 CTL a3 00 00 00 CLASS 35us 40.1.0 02 00 04 00 40.1.4 9.0 DI 03 01 10 00 .... 34us 40.2.0 9.0 CTL 23 01 14 00 CLASS 8us 41.1.0 02 00 00 00 41.1.4 9.0 CTL 80 06 00 01 GET DESCRIPTOR 31ms 42.1.0 00 00 40 00 42.1.4 9.0 USTS 05 00 00 80 no response 8.0ms 42.2.0 9.0 CTL a3 00 00 00 CLASS 507ms 43.1.0 02 00 04 00 43.1.4 9.0 DI 03 01 00 00 .... 48us 43.2.0 9.0 CTL 23 03 04 00 CLASS 33us 44.1.0 02 00 00 00 44.1.4 9.1 DI 04 . 109ms 45.1.0 9.0 CTL a3 00 00 00 CLASS 19us 46.1.0 02 00 04 00 46.1.4 9.0 DI 03 01 10 00 .... 18us 46.2.0 9.0 CTL 23 01 14 00 CLASS 5us 47.1.0 02 00 00 00 47.1.4 9.0 CTL 80 06 00 01 GET DESCRIPTOR 31ms 48.1.0 00 00 40 00 48.1.4 9.0 USTS 05 00 00 80 no response 77ms 48.2.0 9.0 CTL 23 01 01 00 CLASS 515ms 49.1.0 而我抓的USB盘的如下: 9.0 CTL 80 06 00 01 GET DESCRIPTOR 160us 29.1.0 00 00 40 00 29.1.4 9.0 DI 12 01 10 01 .... 4.2ms 29.2.0 00 00 00 08 .... 29.2.4 9.0 CTL a3 00 00 00 CLASS 18us 30.1.0 01 00 04 00 30.1.4 9.0 DI 03 01 00 00 .... 12us 30.2.0 9.0 CTL 23 03 04 00 CLASS 11us 31.1.0 01 00 00 00 31.1.4 9.1 DI 02 . 69ms 32.1.0 9.0 CTL a3 00 00 00 CLASS 15us 33.1.0 01 00 04 00 33.1.4 9.0 DI 03 01 10 00 .... 19us 33.2.0 9.0 CTL 23 01 14 00 CLASS 5us 34.1.0 01 00 00 00 34.1.4 9.0 CTL 00 05 02 00 SET ADDRESS 26ms 35.1.0 00 00 00 00 35.1.4 9.0 CTL 80 06 00 01 GET DESCRIPTOR 12ms 36.1.0 00 00 12 00 36.1.4 9.0 DI 12 01 10 01 .... 5.0ms 36.2.0 00 00 00 08 .... 36.2.4 d8 0d 03 10 .... 36.2.8 00 02 01 02 .... 36.2.12 00 01 .. 36.2.16 9.0 CTL 80 06 00 02 GET DESCRIPTOR 26us 37.1.0 00 00 09 00 37.1.4 9.0 DI 09 02 20 00 .. . 4.9ms 37.2.0 01 01 00 80 .... 37.2.4 32 2 37.2.8 我分析好像是主机没有收到我的设备描述符但我确实发了呀 程序如下: unsigned char D12_WriteEndpoint(unsigned char endp, unsigned char len, unsigned char * buf) { unsigned char i; char str1[20]; //lbm if(bEPPflags.bits.in_isr == 0) OS_ENTER_CRITICAL(); //--------------------- outportcmd(endp); //选择端点 inportb(); //读入满/空状态 outportcmd(0xF0); //写缓冲区命令 outportdata(0); outportdata(len); for(i=0; i<len; i++) { outportdata(*(buf+i)); } outportcmd(0xfa); //驶购冲区有效 //-------------------------------- if(bEPPflags.bits.in_isr == 0) OS_EXIT_CRITICAL(); return len; } |
|
沙发#
发布于:2003-12-15 15:10
请问你什么如何用Bushound抓数据的呢?
我急用啊! 谢谢! |
|
板凳#
发布于:2003-12-15 15:14
把DEVICES下的USB标志全选中,再进入监视窗口,打开USB设备你就可以看到数据流了,然后SAVE,OK
|
|
地板#
发布于:2003-12-15 15:34
谢谢,我刚抓了数据,可是情况比你好糟啊,你看看!
Device Phase Data Description Cmd.Phase.Ofs(rep) ------ ----- -------------------------------------------------- ---------------- ------------------ 18.1 DI 02 . 1.1.0 18.0 CTL a3 00 00 00 01 00 04 00 GET STATUS 2.1.0(2) 18.0 DI 01 01 01 00 .... 2.2.0 18.0 CTL 23 01 10 00 01 00 00 00 CLEAR FEATURE 4.1.0 18.0 CTL a3 00 00 00 01 00 04 00 GET STATUS 5.1.0(2) 18.0 DI 01 01 00 00 .... 5.2.0 18.0 CTL 23 03 04 00 01 00 00 00 SET FEATURE 7.1.0 18.1 DI 02 . 8.1.0 18.0 CTL a3 00 00 00 01 00 04 00 GET STATUS 9.1.0 18.0 DI 03 01 10 00 .... 9.2.0 18.0 CTL 23 01 14 00 01 00 00 00 CLEAR FEATURE 10.1.0 18.0 CTL a3 00 00 00 01 00 04 00 GET STATUS 11.1.0 18.0 DI 03 01 00 00 .... 11.2.0 18.0 CTL 80 06 00 01 00 00 40 00 GET DESCRIPTOR 12.1.0 18.0 USTS 0c 00 00 80 buffer overrun 12.2.0 18.0 CTL a3 00 00 00 01 00 04 00 GET STATUS 13.1.0 18.0 DI 03 01 00 00 .... 13.2.0 18.0 CTL 23 03 04 00 01 00 00 00 SET FEATURE 14.1.0 18.1 DI 02 . 15.1.0 18.0 CTL a3 00 00 00 01 00 04 00 GET STATUS 16.1.0 18.0 DI 03 01 10 00 .... 16.2.0 18.0 CTL 23 01 14 00 01 00 00 00 CLEAR FEATURE 17.1.0 18.0 CTL 80 06 00 01 00 00 40 00 GET DESCRIPTOR 18.1.0 18.0 USTS 0c 00 00 80 buffer overrun 18.2.0 18.0 CTL a3 00 00 00 01 00 04 00 GET STATUS 19.1.0 18.0 DI 03 01 00 00 .... 19.2.0 18.0 CTL 23 03 04 00 01 00 00 00 SET FEATURE 20.1.0 18.1 DI 02 . 21.1.0 18.0 CTL a3 00 00 00 01 00 04 00 GET STATUS 22.1.0 18.0 DI 03 01 10 00 .... 22.2.0 18.0 CTL 23 01 14 00 01 00 00 00 CLEAR FEATURE 23.1.0 18.0 CTL 80 06 00 01 00 00 40 00 GET DESCRIPTOR 24.1.0 18.0 USTS 0c 00 00 80 buffer overrun 24.2.0 18.0 CTL 23 01 01 00 01 00 00 00 CLEAR FEATURE 25.1.0 18.0 CTL a3 00 00 00 02 00 04 00 GET STATUS 26.1.0 18.0 DI 00 01 00 00 .... 26.2.0 |
|
地下室#
发布于:2003-12-15 15:44
你的问题出在18.0 USTS 0c 00 00 80 buffer overrun 24.2.0
我的问题出在9.0 USTS 05 00 00 80 no response 77ms 36.2.0 |
|
5楼#
发布于:2003-12-15 16:08
是的,关键在得到了第一SETUP packet后,我们送8字节的描述符时出了错。
|
|
6楼#
发布于:2003-12-15 16:53
是送了16个字节,只是主机好像没收到,
你有QQ吗,我的QQ是:47008266,我们可以交流一下 |
|
7楼#
发布于:2003-12-15 21:34
我也碰到了枚举不成功的问题,GOODLINK连接的灯闪了三下就灭了,而且单片机初始化时,还没来得及发送设备描述符,主机也能收到设备描述符,不过是错误的,BUSHOUND抓的数据如下:
8 CTL 80 06 00 01 - 00 00 12 00 GET DESCRIPTR 0us 1.1.0 8 DO 00 00 00 00 - 00 00 00 00 ........ 17us 1.2.0 00 00 00 00 - fa d4 28 c0 ......(. 1.2.8 08 00 .. 1.2.16 8 USTS e5 73 04 c0 error 8us 1.3.0 8 CTL 00 09 00 00 - 00 00 00 00 SET CONFIG 33us 2.1.0 怎么我的第一行数据就和你们不一样:80 06 00 01 - 00 00 12 00 我的QQ:278962476,rainman_rao@sina.com |
|
8楼#
发布于:2003-12-16 09:26
谢谢,我刚抓了数据,可是情况比你好糟啊,你看看! to mikal 不是把DEVICE下得所有项目都打上勾勾,只要把你需要的设备打上勾勾就行了,最好只出现一个勾勾,否则你的显示当然乱七八糟 |
|
|
9楼#
发布于:2003-12-16 10:30
谢谢楼上的所有人!
我昨天已经枚举成功了,但是今天再试的时候,发现我的PC机不给我发setup包了,这是为什么? |
|
10楼#
发布于:2003-12-16 10:34
我读D12 chipID发现没有错是0X1210,同时也能对其它register进行配置,所以我认为我的
D12没有坏,但是我的程序没改,怎么会出问题呢? |
|