技术难题: CH32V203C8T6 USBFS 驱动CH334R HUB异常

各位大佬,我需要用CH32V203C8T6 USBFS 驱动CH334R HUB,CH334R HUB连接USB兼容的HID设备(扫描器),使用EVT的HOST_KM范例运行打印"Hub Port1 Out"或者"(S1)Get DevDesc: Err(20)",没有正确连接成功过,更换主时钟位96&48Mhz一样问题,HID设备更换HUB端口问题依旧,确定电路连接没有问题. 更换HUB IC为FE8.1并增加9PIN电阻后驱动HID设备正常,能正确使用HID扫描功能.

原来方案使用CH32V203C8T6 USBFS 驱动FE8.1 HUB驱动HID设备(扫描器)没有问题,一直批量在设备中使用.

后来新板出现一批不兼容的FE8.1芯片,为了杜绝FE8.1批次兼容问题,直接改用WCH的334R HUB芯片,确认CH334R芯片直接PC主板USB连接驱动HID设备(扫描器)正常,问题只出现在CH32V203C8T6 USBFS 驱动CH334R HUB问题上.


以下是分别驱动CH334R和FE8.1 HUB芯片的打印数据. 麻烦帮忙确认下哪里问题,感谢!

icon_rar.gifUSB_HOST_KM_LOG.zip


HUB.png

HUB1.png

可以尝试把CH334的上行端口飞线连接到计算机上查看是否能够正常运行。


您好,可以使用附件例程测试一下,这边使用CH334HUB测试是没有问题的

icon_rar.gifCH32V203 USBFS_HOST_KM.zip

image.png


这边测试CH334R还是不行,依然是不识别Hub Port3 Out ,上面这个例程app_km.c修改日期是2023-04-26,验证对FE8.1一个不能识别的批次有改善作用,现在FE8.1应该都能识别了.

EVT例程app_km.c修改日期是2024-01-31,看代码精简了部分HUB代码,我解析不出来不知道功能差异.


今天下午重新测试例程发现通讯正常了,没有调试哪里,直接下午上电测试就正常了,后续继续验证.感谢大佬和坛友支持.


另: 新EVT例程app_km.c修改日期是2024-01-31,确认HUB不能启动设备,

[16:17:16.622]收←◆USB Port Dev In.

Enum:

Get DevDesc: 12 01 00 02 09 00 00 40 86 1a 91 80 10 02 00 02 00 01 

Set DevAddr: OK

Get CfgDesc: 09 02 19 00 01 01 00 e0 32 09 04 00 00 01 09 00 00 00 07 05 81 03 01 00 0c 

DevType: 09

Set Cfg: OK

Root Device Is HUB. Enum Hub:

Analyze CfgDesc: OK

Get StringDesc2: 04 03 55 00 

Get Hub Desc: 09 29 04 20 00 30 64 00 ff 

RootHubDev.bPortNum: 04

Further Enum Result: OK

Hub Int Data:0a

Hub Port1 In

Dev Speed:1

Enum_HubDevice

(S1)Get DevDesc: 

12 01 10 01 00 00 00 40 90 ac 02 30 00 01 01 02 03 01 

Set DevAddr: 

Get DevCfgDesc: 

09 02 22 00 01 01 00 80 64 09 04 00 00 01 03 01 01 00 09 21 10 01 00 01 22 41 00 07 05 81 03 08 00 01 

DevType: 03

Set CfgValue: 

HUB port0 device is HID! Further Enum:

Enum Hid:

Analyze CfgDesc: OK

Get Interface0 RepDesc: 05 01 09 06 a1 01 05 07 19 e0 29 e7 15 00 25 01 75 01 95 08 81 02 95 01 75 08 81 01 95 05 75 01 05 08 19 01 29 05 91 02 95 01 75 03 91 01 95 06 75 08 15 00 26 ff 00 05 07 19 00 2a ff 00 81 00 c0 

Get StringDesc1: 06 03 53 00 4d 00 

Get StringDesc2: 2c 03 53 00 4d 00 2d 00 32 00 44 00 20 00 50 00 52 00 4f 00 44 00 55 00 43 00 54 00 20 00 48 00 49 00 44 00 20 00 4b 00 42 00 57 00 

Get StringDesc3: 1c 03 41 00 50 00 50 00 2d 00 30 00 30 00 30 00 30 00 30 00 30 00 30 00 30 00 30 00 

OK!

HUB_PE1_ERR1:2e

HUB_PE2_ERR1:17

Hub Int Data:0a

Hub Port1 In

Dev Speed:1

Enum_HubDevice

(S1)Get DevDesc: 

Err(20)

Err(20)

Err(20)

Err(20)

Err(20)

Err(20)

Err(20)

Err(20)

Err(20)

Err(20)

HUB Port0 Enum Err!

HUB_PE1_ERR1:20

HUB_PE2_ERR1:20

Hub Int Data:0a

Hub Port1 In

Dev Speed:1

Enum_HubDevice

(S1)Get DevDesc: 

Err(20)

Err(20)

Err(20)

Err(20)

Err(20)

Err(20)

Err(20)

Err(20)

Err(20)

Err(20)

HUB Port0 Enum Err!

HUB_PE1_ERR1:20

HUB_PE2_ERR1:20

Hub Int Data:0a

Hub Port1 In

Dev Speed:1

Enum_HubDevice

(S1)Get DevDesc: 

Err(20)

Err(20)

Err(20)

Err(20)

Err(20)

Err(20)

Err(20)

Err(20)

Err(20)

Err(20)

HUB Port0 Enum Err!



您好,感谢反馈,最新EVT例程操作334HUB问题已反馈给相关同事


只有登录才能回复,可以选择微信账号登录