刚才用示波器看了一下波形,发现一个重要现象,但我不明白是什么原因造成的。你们USB方面比我懂的多,希望能帮我分析一下可能的原因。 现象是:正常工作的设备和隐掉set_usb1_addr程序段的SUN键盘,D-的起始电平为高,D+为低,我觉得这样应该是正常的,表示是一个低速设备。当不隐掉set_usb1_addr程序段时,SUN键盘的D-和D+波形颠倒了,D-为低,D+为高,变成了一个高速设备,而CH375A D-和D+颠倒后不再支持高速设备,所以总是返回超时。 请你们帮忙分析一下,为什么设置地址会让SUN键盘报告自己是一个高速设备?
刚才用示波器看了一下波形,发现一个重要现象,但我不明白是什么原因造成的。你们USB方面比我懂的多,希望能帮我分析一下可能的原因。 现象是:正常工作的设备和隐掉set_usb1_addr程序段的SUN键盘,D-的起始电平为高,D+为低,我觉得这样应该是正常的,表示是一个低速设备。当不隐掉set_usb1_addr程序段时,SUN键盘的D-和D+波形颠倒了,D-为低,D+为高,变成了一个高速设备,而CH375A D-和D+颠倒后不再支持高速设备,所以总是返回超时。 请你们帮忙分析一下,为什么设置地址会让SUN键盘报告自己是一个高速设备?
USB设备的全速、低速是在设备的上游端口处的不同位置加了一个上拉电阻来区分的。对于全速设备,上拉电阻在D+线上,对于低速设备,上拉电阻在D-线上。而高速、低速设备的区分只是在设备插入之后由主机检测D+,D-来进行的。如果D+为高电平,D-为低电平,则为全速设备;如果D+为低电平,D-为高电平,则为低速设备。此后的操作过程中D+,D-为差分信号,因此你所说的在设置地址之后再看D+,D-来区分是高速还是低速没有意义的。
有没有用CH375操作MOUSE的程式呀,可以给我学习一下吗?谢谢SUGENG328@YAHOO.COM.CN