ch32f103c8t6 USB中的主机读写U盘例程。查看USB寄存器后,发现寄存器值全为0,。

ch32f103c8t6? USB中的主机读写U盘例程。执行例程后无法识别到U盘接入,查看USB寄存器后,发现寄存器值全为0。单步调试后发现,初始化程序压根就无法更改USBHD的寄存器值(不确定是不是无法更改,下面是实际调试图)

请问如何正确配置USB为主机模式并使用?(USB3.0 应该是可以向下兼容2.0的)


1688310551401.jpg

有遇到类似情况的?


你好,可以看一下例程打印,是否正常运行,如果插拔U盘完全没有反应,可以检查一下USB口是否找对,HD的是PB6 PB7,供电电压需要是5V不能是3.3V,5V处不要加二极管,具体问题可以发我邮箱zc@wch.cn

image.png


使用官方的读写U盘例程,运行后串口只打印了如下信息:

SystemClk:72000000

USBFS HOST Test EXAM 1

USB Host Initialization.?

UDisk library Initialization.?

如下是硬件原理图,其中R23电阻已经在板子上去除了:image.png



你好,我们的阻抗匹配,芯片内部已经做了,不需要再串联电阻,改成0R试一下,仍然不行的话,可以用测试板对照一下


根据你的建议,我将R25/R24 电阻去除,然后使用焊锡将原来电阻位置短接了,U盘使用的3.0接口(应该是兼容芯片的主机USB2.0接口)。仍然不行,我读取代码,发现R8_USB_INT_FG寄存器值为0x20,以下是调试图:image.png


了解到芯片ch32f103c8t6 是usb2.0 fs接口,是否不兼容我的U盘(具体型号是 爱国者(aigo)U330-32G )购买的时候店铺标明兼容USB2.0 


你好,正常兼容USB2.0的U盘是可以用的,一般都会兼容FS,USB口一定要5V供电,才能稳定带的动U盘,推荐使用我们的测试板试一下,排除硬件问题。


好的,谢谢解答疑问



楼主这个问题解决了吗,我遇到相同的问题。换了很多个U盘都不行。usb device接口没问题,usb host就不行。用官方例程报错.

Enum:

Get DevDesc: Err(20)

Get DevDesc: Err(20)

Get DevDesc: Err(20)

Get DevDesc: Err(20)

Get DevDesc: Err(20)

Get DevDesc: Err(20)

USB Device Enumeration ERR 45.



您好,可以参考3、5、8楼的回复检查一下问题,若有我们评估板,可以拿我们评估板试一下。此外,建议检查一下U盘的文件系统,可以改成FAT32试一下。后续若有问题,可通过邮箱(lzs@wch.cn)和我具体沟通一下,可以说一下所用MCU的具体型号,这边测试一下。


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