用CH32V307的USBHD连接外部 HUB,当设备是全速或高速时可以正常枚举(如u盘),如果设备是低速时连第一步获取设备描述都没通过(如键盘,鼠标)。不知道是哪里不对。
测试1:主机 -> u盘或键盘枚举没问题
测试2:主机 -> HUB -> u盘枚举没问题
测试3:主机 -> HUB -> 键盘或鼠标有问题,获取设备描述返回ERR_USB_TRANSFER
问题出现在HUB连低速设备就有问题,是不是高速主机要提前设置成低速再去请求设备?
我现在流程是:
1.枚举HUB
2.开启HUB端口电源 HubSetPortFeature(i, HUB_PORT_POWER)
3.获取HUB端口状态 HubGetPortStatus(i)
4.发现有设备连接 清除连接标志,端口复位,清除复位完成标志
5.设置地址为0,获取设备描述
到第5步高速设备正常低速设备就无法通过
请问如何解决?