bryan_lia 发表于 2018-9-3 13:24:39

PDIUDBD12芯片接USB3.0接口丢数据问题!请教~

现在有一款老产品,USB芯片使用的是PDIUSBD12 (USB全速芯片),之前都是在XP上运行,挺稳定的,现在为这块芯片重新弄了WIN7/WIN10的驱动,但是问题来了:
1.接入USB2.0的USB接口可以正常工作,通讯正常
2.但是接入USB3.0接口也可以正常枚举,但是通讯就会丢失数据,使用USB HOUND软件去抓数据发现的,数据没上来
3.中间如果接入USB HUB,再接入USB3.0接口,数据又不丢失了

自己的分析:
据我所知,USB3.0是物理上兼容USB2.0,USB3.0接口内部有两个物理通道,一个是USB2.0,一个是USB3.0。也就是说,原本USB3.0和USB2.0是完全两套互不兼容的东西,但是为了提高用户体验,USB3.0必须向下兼容,于是就USB3.0内部就集成了USB2.0的物理通道
现在问题就是不知道是硬件问题还是驱动软件驱动问题,如果驱动软件有问题,那USB2.0接口为什么有可以正常通讯呢?
理论上就算接入USB3.0接口,USB2.0设备走的也是内部的USB2.0接口啊,难道USB3.0接口的USB2.0和USB2.0接口的USB2.0不一样?
还是说PDIUSBD12自身有问题?
有大神遇到过这种问题吗?

huangqi412 发表于 2018-9-3 14:00:51

先试试公共驱动?比如hid和串口?

adongliu 发表于 2018-9-4 05:44:43

加一个usbhub试试

bryan_lia 发表于 2018-9-4 10:39:37

adongliu 发表于 2018-9-4 05:44
加一个usbhub试试

设备和电脑的USB3.0接口之间加了USB HUB,是通讯不会丢数据的。

bryan_lia 发表于 2018-9-4 11:15:54

huangqi412 发表于 2018-9-3 14:00
先试试公共驱动?比如hid和串口?

谢谢回复~
说明一下:
这个驱动需要定制的,两个bulk端点,一个in,一个out,还有两个interrupt端点,一个in,一个out
固件目前也接触不到,也不排除有可能是固件问题。
现在唯一确定的是接入电脑的USB2.0接口是没问题的,通讯不丢数据;接入usb hub再接入电脑的usb3.0接口也是可以的

tongdayusu 发表于 2018-9-12 08:57:05

bryan_lia 发表于 2018-9-4 11:15
谢谢回复~
说明一下:
这个驱动需要定制的,两个bulk端点,一个in,一个out,还有两个interrupt端点,一 ...

我估计上面网友建议你试试HID的核心思想就是建议你先确定是芯片的问题还是驱动的问题。
如果用HID的驱动可以的话那就是驱动的问题了。
如果HID驱动也不行的话,那就可能是芯片的问题了。因为HID的驱动有问题的可能性几乎为0 。
当然,这个的前提是单片机的固件没问题。

bryan_lia 发表于 2018-9-12 11:48:10

我估计是硬件问题,可能是硬件不兼容,这个老东西也不好改硬件,只好驱动搞搞小动作了
现在问题算是解决了,但是用的非常规手段,在windows驱动的回调函数加少许延时,限制一下它的调用通讯速度,然后实际速度并没有什么变化,但是就是稳定了。。。算了,就这样交货吧,老产品不好弄,问题多多

moouse 发表于 2018-11-12 20:31:42

bryan_lia 发表于 2018-9-12 11:48
我估计是硬件问题,可能是硬件不兼容,这个老东西也不好改硬件,只好驱动搞搞小动作了
现在问题算是解决了 ...

请问具体是更改哪个回调函数,多谢
页: [1]
查看完整版本: PDIUDBD12芯片接USB3.0接口丢数据问题!请教~