阅读:1178回复:3
★★★★★大家谈谈USB调试问题(FAQ集)!
希望各位能对我碰到的问题提点建议,也是对所有USB初学者的帮助,参与者均有分鼓励,谢谢!
调试工具:52+D12板,WAVEE2000/L仿真器,BUSBOUND5.0 FREE 1,现象:USB不插入HOST,运行DISCONNECT再CONNECT,USB的D+变为3.3V,但是若插入HOST再运行,D+始终都是0V?? 处理:怀疑是我的总线复位处理有问题,索性不作处理,好像解决了问题。 想问:总线复位该怎样处理? [编辑 - 11/22/03 by only8008] |
|
沙发#
发布于:2003-11-22 10:24
从MCU里看到,插入HOST后,我收到了C1H(中断寄存器中),就是说有挂起改变,总线复位,EP0-OUT中断,对挂起改变和总线复位不作处理(不知该怎样处理,特别是挂起改变??),从EP0-OUT中断中能收到80 06 00 01 00 00 04 00,(如下图)并且设置了SETPACK标志,以便返回主程序时判断SETPACK并进入设备请求处理程序。
问题:但是我发现程序一直处于中断状态(读中断寄存器得C1,C0,41,之后就出现仿真器错误),也就无法执行设备请求处理了,所以可能没有发送设备描述符给HOST,所以HOST重复三次命令后就停止了。 大家觉得问题出在哪里啊? Device Phase Data Description Cmd.Phase.Ofs(rep) ------ ----- -------------------------------------------------- ---------------- ------------------ 12.1 DI 02 00 00 00 c0 31 47 80 .....1G. 1.1.0 12.0 CTL a3 00 00 00 01 00 04 00 GET STATUS 2.1.0(2) 12.0 DI 01 01 01 00 .... 2.2.0 12.0 CTL 23 01 10 00 01 00 00 00 CLEAR FEATURE 4.1.0 12.0 CTL a3 00 00 00 01 00 04 00 GET STATUS 5.1.0 12.0 DI 01 01 00 00 .... 5.2.0 12.1 DI 02 00 00 00 e0 3f 42 ed .....?B. 6.1.0 12.0 CTL a3 00 00 00 01 00 04 00 GET STATUS 7.1.0(2) 12.0 DI 01 01 01 00 .... 7.2.0 12.0 CTL 23 01 10 00 01 00 00 00 CLEAR FEATURE 9.1.0 12.1 DI 02 00 00 00 54 bb 43 ed ....T.C. 10.1.0 12.0 CTL a3 00 00 00 01 00 04 00 GET STATUS 11.1.0(2) 12.0 DI 00 01 01 00 .... 11.2.0 12.0 CTL 23 01 10 00 01 00 00 00 CLEAR FEATURE 13.1.0 12.1 DI 02 00 00 00 c0 31 47 80 .....1G. 14.1.0 12.0 CTL a3 00 00 00 01 00 04 00 GET STATUS 15.1.0(2) 12.0 DI 01 01 01 00 .... 15.2.0 12.0 CTL 23 01 10 00 01 00 00 00 CLEAR FEATURE 17.1.0 12.0 CTL a3 00 00 00 01 00 04 00 GET STATUS 18.1.0 12.0 DI 01 01 00 00 .... 18.2.0 12.0 CTL 23 03 04 00 01 00 00 00 SET FEATURE 19.1.0 12.1 DI 02 00 00 00 c0 31 47 80 .....1G. 20.1.0 12.0 CTL a3 00 00 00 01 00 04 00 GET STATUS 21.1.0 12.0 DI 03 01 10 00 .... 21.2.0 12.0 CTL 23 01 14 00 01 00 00 00 CLEAR FEATURE 22.1.0 12.0 CTL a3 00 00 00 01 00 04 00 GET STATUS 23.1.0 12.0 DI 03 01 00 00 .... 23.2.0 12.0 CTL 80 06 00 01 00 00 40 00 GET DESCRIPTOR 24.1.0 12.0 NSTS 20 01 00 c0 cancelled 24.2.0 12.0 CTL a3 00 00 00 01 00 04 00 GET STATUS 25.1.0 12.0 DI 03 01 00 00 .... 25.2.0 12.0 CTL 23 03 04 00 01 00 00 00 SET FEATURE 26.1.0 12.1 DI 02 00 00 00 c0 31 47 80 .....1G. 27.1.0 12.0 CTL a3 00 00 00 01 00 04 00 GET STATUS 28.1.0 12.0 DI 03 01 10 00 .... 28.2.0 12.0 CTL 23 01 14 00 01 00 00 00 CLEAR FEATURE 29.1.0 12.0 CTL 80 06 00 01 00 00 40 00 GET DESCRIPTOR 30.1.0 12.0 NSTS 20 01 00 c0 cancelled 30.2.0 12.0 CTL a3 00 00 00 01 00 04 00 GET STATUS 31.1.0 12.0 DI 03 01 00 00 .... 31.2.0 12.0 CTL 23 03 04 00 01 00 00 00 SET FEATURE 32.1.0 12.1 DI 02 00 00 00 c0 31 47 80 .....1G. 33.1.0 12.0 CTL a3 00 00 00 01 00 04 00 GET STATUS 34.1.0 12.0 DI 03 01 10 00 .... 34.2.0 12.0 CTL 23 01 14 00 01 00 00 00 CLEAR FEATURE 35.1.0 12.0 CTL 80 06 00 01 00 00 40 00 GET DESCRIPTOR 36.1.0 [编辑 - 11/22/03 by only8008] |
|
板凳#
发布于:2003-11-22 13:35
我的一直进入中断,但是中间跳出来过的。在读最后处理状态后,INT变为高电平。随后却又频繁进入中断,最后INT就变成低电平了。
再请教:什么情况下,d12的INT会从低到高,好像有时队最后处理状态并不行啊?? [编辑 - 11/22/03 by only8008] |
|
地板#
发布于:2003-11-24 13:52
有人指导一下么?
|
|