阅读:2055回复:19
紧急求助!HID设备在XP及2000下正常,98下出错
我们开发的HID设备在XP及2000下一切正常。在98下能正常枚举,但随后无论做什么都出现蓝屏,实在是不理解。
马上就得给用户提交了,真是艰难。恳请哪位高手指点一下。 [编辑 - 8/10/04 by xiaorang] |
|
沙发#
发布于:2004-08-09 12:02
怎么样不正常?你不说没有人会知道的
|
|
|
板凳#
发布于:2004-08-09 14:34
就是设备检测的时候,在HID设备上出一个问号。程序也无法检测到设备。
|
|
地板#
发布于:2004-08-09 23:07
不知道是不是巧合,恰好在XP上做的开发,做好之后也就只能在XP上用.在2000上和98上都是有问题的设备.
谁能告诉我在98和2000上对xp的支持有什么不同? |
|
地下室#
发布于:2004-08-09 23:15
跟我前几天的情况一样。
我是用开发板在xp和98下均成功调试。但是用写inf加载sys时候死活在98下无法正确加载driver。 后来干脆换了24LC64,把firmware直接烧到eeprom里面,问题解决。 但是还是不太明白为什么98不行。我改写了很多inf,还是没法正确加载驱动。 有空共同交流提高。 |
|
5楼#
发布于:2004-08-09 23:17
还有一点。
当我采用inf加载ddk编译好的sys文件方式时候 xp跟98必须采用各自的ddk编译。 我xpddk编译的sys放到98下是无法正确加载 然后用98ddk编译了,结果是加载倒是可以加载,window的控制面板里面的硬件也看上去正常,可硬件无法正确工作。我估计还是98编译的sys虽然被98正确load了,但是还是有些细节未搞懂。 |
|
6楼#
发布于:2004-08-10 08:59
个人发现,通用usb控制器(intel,via系列)兼容性比主控型usb控制器(nforce,sis)强,主控型usb主机控制器的信号要求严格一点。另外,发现不同windows版本的驱动兼容性也略有不同。在win2k sp4\winxp home中与windows其它版本兼容性有差别。
我使用的是d12开发hid设备,解决方法是发送数据后延时5ms。 |
|
7楼#
发布于:2004-08-10 09:59
个人发现,通用usb控制器(intel,via系列)兼容性比主控型usb控制器(nforce,sis)强,主控型usb主机控制器的信号要求严格一点。另外,发现不同windows版本的驱动兼容性也略有不同。在win2k sp4winxp home中与windows其它版本兼容性有差别。 分析的很不错,我现在也是在做hid设备的。 请问一下这位大侠,我看数据手册上并没有延时的要求呀,不知道你的延时是主要对什么产生作用? |
|
8楼#
发布于:2004-08-10 11:35
[quote]个人发现,通用usb控制器(intel,via系列)兼容性比主控型usb控制器(nforce,sis)强,主控型usb主机控制器的信号要求严格一点。另外,发现不同windows版本的驱动兼容性也略有不同。在win2k sp4winxp home中与windows其它版本兼容性有差别。 分析的很不错,我现在也是在做hid设备的。 请问一下这位大侠,我看数据手册上并没有延时的要求呀,不知道你的延时是主要对什么产生作用? [/quote] 哪个手册都没有写,是我分析数据后试验的结果。很多时候都是枚举过程中主机就不发命令了,导致经常出现叹号、“设备不可用”。原因应该是主机没有完全接收到设备上一次数据,延时几个ms让主机收到所有数据就正常了。 |
|
9楼#
发布于:2004-08-10 14:43
我倒是遇到98下正常,W2K,WXP下不正常的情况。谈谈你的设备情况。
[编辑 - 8/10/04 by lejianz] |
|
|
10楼#
发布于:2004-08-10 15:15
非常感谢大家的帮助。
我发现固件程序中有一个错误,而XP竟然容忍过去了,但2000不容忍了。改掉这个错误后,2000下已经正常了。但98下仍然不对,现在能找到设备了,但设备安装后,不能做任何操作,一操作就变成蓝屏。 还请大家继续帮忙。 |
|
11楼#
发布于:2004-08-10 22:58
这个HID设备在XP及2000下一切正常。在98下能正常枚举,但随后无论做什么都出现蓝屏,实在是不理解!
|
|
12楼#
发布于:2004-08-10 23:27
这个HID设备在XP及2000下一切正常。在98下能正常枚举,但随后无论做什么都出现蓝屏,实在是不理解! 有用开发板在98下跑过程序么? 还有请问如果是linux怎么调试? |
|
13楼#
发布于:2004-08-11 09:27
老兄,你的HID REPORT DESCRIPTOR有问题,好好查一下吧。
|
|
|
14楼#
发布于:2004-08-11 10:12
lejianz,真是一针见血地指出了问题。我把 REPORT DESCRIPTOR 发上来了,请您帮我看看。非常感谢。
------------------------------------------------- retlw 0x06 retlw 0x00 retlw 0xFF ; usage page (Vendor defined) retlw 0x09 retlw 0x01 ; usage (Vendor defined) retlw 0xA1 retlw 0x01 ; COLLECTION (Application) retlw 0x15 retlw 0x00 ; LOGICAL_MINIMUM (0) retlw 0x26 retlw 0xFF retlw 0x00 ; LOGICAL_MAXIMUM (255) retlw 0x75 retlw 0x08 ; REPORT_SIZE (8) retlw 0x95 retlw 0x20 ; REPORT_COUNT (32) ;by zy retlw 0x09 retlw 0x01 ; usage (Vendor defined) retlw 0xB1 retlw 0x02 ; FEATURE (Data, Var, Abs) retlw 0xC0 ; end collection ------------------------------------------------- |
|
15楼#
发布于:2004-08-11 12:07
retlw 0x06
retlw 0x00 retlw 0xFF ; usage page (Vendor defined) retlw 0x09 retlw 0x01 ; usage (Vendor defined) retlw 0xA1 retlw 0x01 ; COLLECTION (Application) retlw 0x15 retlw 0x00 ; LOGICAL_MINIMUM (0) retlw 0x26 retlw 0xFF retlw 0x00 ; LOGICAL_MAXIMUM (255) retlw 0x75 retlw 0x08 ; REPORT_SIZE (8) retlw 0x95 retlw 0x20 ; REPORT_COUNT (32) ;by zy retlw 0xB1 retlw 0x02 ; FEATURE (Data, Var, Abs) retlw 0xC0 ; end collection |
|
|
16楼#
发布于:2004-08-11 13:29
lejianz,你好。我试验您给的Report Descriptor,虽然不再出现蓝屏,但发现设备成为了带问号的设备。我用Descriptor Tool分析了一下,好象还是提示缺少一个Usage,是不是还有什么地方须改?
|
|
17楼#
发布于:2004-08-11 17:43
非常感谢大家的帮助,终于找到了问题所在,现公布出来为遇到类似问题的朋友做参考。
是由于98下不支持全feature的report,必须在里面加上Input字段才可以。 |
|
18楼#
发布于:2004-08-11 20:59
非常感谢大家的帮助,终于找到了问题所在,现公布出来为遇到类似问题的朋友做参考。 能再具体点么 |
|
19楼#
发布于:2004-08-11 21:53
你看一下我的report descriptor 就知道了。因为传递数据比较少,又不频繁,所以就用了feature report来通讯,但在98下必须包含Input report 才可以。
|
|