阅读:1757回复:18
jinghuiren兄,请你看看我的下面数据,帮我分析到底是出了什么问题。
usb 5-26
Device: Device ID (followed by the endpoint for USB devices) (2) USB Root Hub Phase: Phase Type: CTL USB control transfer URB USB request block Data: Hex dump of the data transferred Info: Description of the phase Time: Elapsed time leading up to the Phase Cmd: Unique identifier of the line Device Phase Data Description Time Cmd.Phase.Ofs(rep) ------ ----- ------------------------- ---------------- ----- ------------------ 2 URB 48 00 09 00 - 00 00 00 00 BULK/INT XFER 22sc 1.1.0 2.0 CTL a3 00 00 00 - 02 00 04 00 GET STATUS 38us 2.1.0(2) 2 URB 50 00 08 00 - 00 00 00 00 CONTROL TRANSFER 31us 2.2.0 2.0 CTL 23 01 10 00 - 02 00 00 00 CLEAR FEATURE 116us 4.1.0 2 URB 50 00 08 00 - 00 00 00 00 CONTROL TRANSFER 15us 4.2.0 2.0 CTL a3 00 00 00 - 01 00 04 00 GET STATUS 1.6ms 5.1.0 2 URB 50 00 08 00 - 00 00 00 00 CONTROL TRANSFER 50us 5.2.0 2.0 CTL a3 00 00 00 - 02 00 04 00 GET STATUS 37us 6.1.0 2 URB 50 00 08 00 - 00 00 00 00 CONTROL TRANSFER 180us 6.2.0 2.0 CTL 23 03 04 00 - 02 00 00 00 SET FEATURE 113ms 7.1.0 2 URB 50 00 08 00 - 00 00 00 00 CONTROL TRANSFER 108us 7.2.0 2 URB 48 00 09 00 - 00 00 00 00 BULK/INT XFER 92ms 8.1.0 2.0 CTL a3 00 00 00 - 02 00 04 00 GET STATUS 33us 9.1.0 2 URB 50 00 08 00 - 00 00 00 00 CONTROL TRANSFER 27us 9.2.0 2.0 CTL 23 01 14 00 - 02 00 00 00 CLEAR FEATURE 14us 10.1.0 2 URB 50 00 08 00 - 00 00 00 00 CONTROL TRANSFER 12us 10.2.0 2.0 CTL a3 00 00 00 - 02 00 04 00 GET STATUS 23ms 11.1.0 2 URB 50 00 08 00 - 00 00 00 00 CONTROL TRANSFER 32us 11.2.0 2 URB 24 00 00 10 - 00 00 00 00 163us 12.1.0 2.0 CTL 80 06 00 01 - 00 00 40 00 GET DESCRIPTOR 43us 13.1.0 2 URB 50 00 08 00 - 05 00 00 80 CONTROL TRANSFER 84ms 13.2.0 2 URB 14 00 01 10 - 00 00 00 00 116us 14.1.0 2.0 CTL 23 03 04 00 - 02 00 00 00 SET FEATURE 514ms 15.1.0 2 URB 50 00 08 00 - 00 00 00 00 CONTROL TRANSFER 44us 15.2.0 2 URB 48 00 09 00 - 00 00 00 00 BULK/INT XFER 114ms 16.1.0 2.0 CTL a3 00 00 00 - 02 00 04 00 GET STATUS 29us 17.1.0 2 URB 50 00 08 00 - 00 00 00 00 CONTROL TRANSFER 26us 17.2.0 2.0 CTL 23 01 14 00 - 02 00 00 00 CLEAR FEATURE 14us 18.1.0 2 URB 50 00 08 00 - 00 00 00 00 CONTROL TRANSFER 12us 18.2.0 2 URB 24 00 00 10 - 00 00 00 00 25ms 19.1.0 2.0 CTL 80 06 00 01 - 00 00 40 00 GET DESCRIPTOR 51us 20.1.0 2 URB 50 00 08 00 - 05 00 00 80 CONTROL TRANSFER 51ms 20.2.0 2 URB 14 00 01 10 - 00 00 00 00 86us 21.1.0 2.0 CTL 23 03 04 00 - 02 00 00 00 SET FEATURE 513ms 22.1.0 2 URB 50 00 08 00 - 00 00 00 00 CONTROL TRANSFER 46us 22.2.0 2 URB 48 00 09 00 - 00 00 00 00 BULK/INT XFER 34ms 23.1.0 2.0 CTL a3 00 00 00 - 02 00 04 00 GET STATUS 26us 24.1.0 2 URB 50 00 08 00 - 00 00 00 00 CONTROL TRANSFER 24us 24.2.0 2.0 CTL 23 01 14 00 - 02 00 00 00 CLEAR FEATURE 13us 25.1.0 2 URB 50 00 08 00 - 00 00 00 00 CONTROL TRANSFER 13us 25.2.0 2 URB 24 00 00 10 - 00 00 00 00 25ms 26.1.0 2.0 CTL 80 06 00 01 - 00 00 40 00 GET DESCRIPTOR 49us 27.1.0 2 URB 50 00 08 00 - 05 00 00 80 CONTROL TRANSFER 79ms 27.2.0 2 URB 14 00 01 10 - 00 00 00 00 112us 28.1.0 2.0 CTL 23 01 01 00 - 02 00 00 00 CLEAR FEATURE 514ms 29.1.0 2 URB 50 00 08 00 - 00 00 00 00 CONTROL TRANSFER 35us 29.2.0 2 URB 48 00 09 00 - 00 00 00 00 BULK/INT XFER 8.8sc 30.1.0 2.0 CTL a3 00 00 00 - 02 00 04 00 GET STATUS 39us 31.1.0(2) 2 URB 50 00 08 00 - 00 00 00 00 CONTROL TRANSFER 31us 31.2.0 2.0 CTL 23 01 10 00 - 02 00 00 00 CLEAR FEATURE 104us 33.1.0 2 URB 50 00 08 00 - 00 00 00 00 CONTROL TRANSFER 15us 33.2.0 2.0 CTL a3 00 00 00 - 01 00 04 00 GET STATUS 1.4ms 34.1.0 2 URB 50 00 08 00 - 00 00 00 00 CONTROL TRANSFER 49us 34.2.0 2.0 CTL a3 00 00 00 - 02 00 04 00 GET STATUS 36us 35.1.0 2 URB 50 00 08 00 - 00 00 00 00 CONTROL TRANSFER 15us 35.2.0 我的固件编译的时候,除了产生一次读设备描述符中断外,好象一直没有再产生其他的中断!!救命啊 |
|
最新喜欢:![]() |
沙发#
发布于:2003-05-29 14:19
你的问题真是很奇怪呀,如果是硬件的问题,你第一次读到E8第二次也应该是E8才对,是不是你设置了什么寄存器才引起的呀,你每次读完SETUP包之后要记着把SETUP缓冲区清空呀
|
|
板凳#
发布于:2003-05-29 11:00
想你说的这样获取的数据就是最上面我贴出来的这样
|
|
地板#
发布于:2003-05-29 10:44
你在bushound的device中选择usb hub那个选项,看看有什么数据!
|
|
地下室#
发布于:2003-05-28 21:03
还有 第一次读取的八个字节为什么不是(80 06 00 01 00 00 40 00),变成(E8 06 00 01 00 00 40 00),甚至每次读取的第一个字节的数据都不不是很一样!奇怪吧
|
|
5楼#
发布于:2003-05-28 20:46
感谢jinghuiren和NewTech!我现在都是在98下运行的,我试着用usbhound去捕捉,可是没有发现设备啊!因为还没有驱动吧!因为每次运行到这里计算机就跳出发现新设备,安装驱动等画面。
我把仿真的数据贴出来,希望两位帮我看看 谢谢了 对了,我把数据读取在60H单元之后,没八个字节就是读出的SETUP包的内容,我都保存着,便于分析! [编辑 - 5/28/03 by cakor] |
|
6楼#
发布于:2003-05-28 18:18
如果你在2k下调试,这个现象是正常的,另外正如jinghui兄说的,你好好检查一下,用bushound就可以看到了!
|
|
7楼#
发布于:2003-05-28 13:00
如果之前你收到了80 06 00 02 00 00 09 00(有可能没有)命令,那你需要返回9字节的配置描述符,之后会收到80 06 00 02 00 00 ff 00,这时你要把所有的配置描述符全部发给主机,包括配置接口和端点描述符,然后主机就会要求你重新加载驱动,到这里初步没举完成,之后的事情就是你自己写的设备驱动的问题了。
根据你的情况,说明可能有下列几个问题,你可以从这几个问题去检查固件: 1,有可能你的配置描述符有错 2,有可能你没有把数据全部发给主机, 3,你发送程序有错,数据根本就没有发给主机 上述三种情况可以导致主机对你重新进行枚举,重新枚举2次后如果还不成功那就停止。 另外,我的问题也已经解决,是中断设置出了问题,导致dsp和usb中断不匹配,屏蔽掉了后面的中断,我这就去放分,我会把你给我的分家还给你 :D |
|
8楼#
发布于:2003-05-28 11:22
但有出现新的问题:就是在获取(80 06 00 02 00 00 FF 00)后,怎么有重复(80 06 00 01 00 00 40 00)(00 05 02 00 00 00 00 00)(80 06 00 01 00 00 12 00)??请指教!
先说一下,我接下去要读取的描述符集是一个9字节的配置描述符、一个9字节的接口描述符和四个7字节的端点描述符!! ConfigDescr: DB 09H DB 02H DW 46 ;总数据长度9+9+7*4=46 DB 01H DB 01H DB 00H DB 0a0H DB 32H 我想可能的问题是我读取这些描述符的时候出错了?我现在请问这46个描述符是怎么读取的,还望指点迷津!3x [编辑 - 5/28/03 by cakor] |
|
9楼#
发布于:2003-05-28 11:09
人算不如天算,原来是我的仿真机有问题,害得我调了这么久,就说我大前天都可以读取SETUP包的,今天怎么不可以了!!送分表示感谢!谢谢两位了!
|
|
10楼#
发布于:2003-05-27 23:17
我试过了,用一般的数字示波器是看不到的!我觉得在软件上想办法比较好!
|
|
11楼#
发布于:2003-05-27 15:31
那怎样才算是对的!数据线是D+、D-吗?
他们的波形是怎么样的?地址线又是、? |
|
12楼#
发布于:2003-05-27 12:05
你确定收到了setup中断?不应该呀,如果真的是这样建议用示波器看一下你的数据线和地址线。
|
|
13楼#
发布于:2003-05-27 11:55
我是按照你这么说的做的啊!!我先把他们循环读到30H-37H,然后再去看它,这样他的值就不变了!前天我还可以看到是(80 06 00 01 - 00 00 40 00)呢,可是今天又不可以了
|
|
14楼#
发布于:2003-05-27 11:41
你是怎么观察的读出的数据呀,可不能用仿真器直接看寄存器的地址,因为你读的是fifo,如果你用仿真器看,仿真器会提前把里面的数据都读出来,等到真正用的时候就变成00了,所以你的把它读到一个结构里然后看这个结构的内容
|
|
15楼#
发布于:2003-05-27 11:10
早上我再调式的时候,GL_N灯是可以一闪一闪的,但是我读出的八个字节的内容总是00H,WHY?
前天还是可以独到80H,06H………… |
|
16楼#
发布于:2003-05-27 10:28
是的,第二个是set address
|
|
17楼#
发布于:2003-05-26 23:01
我用的是5v的总线供电!我猜Firmware没有写好,PC在进行GET DESCRIPTOR 请求的时候,好像没有数据传输阶段,得再仔细查看firmware,然后再进行调试。应该是先debug第一个标准请求:主机读取描述符。如果单片机发送描述符成功,则pc会发出第二个标准请求。是这样的吧?
|
|
18楼#
发布于:2003-05-26 21:54
你现在的情况跟我的很象呀,在数据里面没看到设备返回的描述符内容,说明设备根本就没发数据给主机呀!
另外你捕捉到的怎么会有那么多的请求呀 是不是get status和set feature等请求你都没有处理呀! 还有我想问一下,d12用的是5v的还是3.3v的电源? |
|