求教关于CH375设备枚举方面的问题

1、当我使用子程序 CH375Init()通过 CMD_SET_USB_MODE 命令设置主机工作模式 6 时,不插 U 盘时可以设置成功,但是插上 U 盘之后,就无法设置成功了,即使是在 U 盘插入后,进行 USB 总线复位设置时,也无法设置成功!请问这是什么原因?应该如何解决?

2、为什么我使用子程序 mCtrlGetDescr()获取 USB 设备描述符,使用 mReadCH375Data( )从CH375的端点缓冲区读取描述符数据块时,有些 U 盘可以正确读取到 18 个设备描述符,有的 U 盘却只能读取到 10 个设备描述符,请问这是程序编写的兼容性不好,还是 U 盘自身内部驱动的问题?应该如何解决?

3、请问为什么我使用子程序 mCtrlGetDescr()和 mCtrlSetAddress()之后,虽然都能够设置成功,但是 U 盘自身的指示灯却无法点亮?(U 盘插入电脑时,指示灯可以点亮)请问完成一个完整的 U 盘识别和枚举过程,还需要用到哪些子程序?

1、你先做测试命令,以确保硬件连线上没有问题。设置模式其实和插不插U盘没有关系,你查一下插上U盘之后供电问题,会不会是插上U盘之后导致芯片复位不正常,试着在USB口电源处加个100--200uf的电容看一下。 2、完整的设备描述符应该是18个字节,发了命令CMD_GET_DESCR和描述符类型1之后,会产生中断,此后先获取长度,再按长度获取描述符。 3、完整的对设备的枚举过程包括:获取设备描述符、设置地址、获取配置描述符、设置配置值。 枚举过程你可以参考我们做主机操作打印机的例子:CH375HST.ZIP\PUB\USBPRINT 对于U盘的操作以及识别,你可以参考CH375EVT.ZIP\PUB\MCS51C\MISCELL\CH375EV0.C.


请教: 1、我使用的是 MOTO 的 MC9S12DJ64 单片机,程序调用的是 CH375LIB.ZIP 压缩包中 MC9S12 文件夹中的 CH375HFQ.LIB 子程序库,请问若想使 CH375 支持 FAT12/FAT16/FAT32 格式文件系统,是否需要再添加 CH375HF6.LIB 文件?我将 CH375HFQ.LIB 和 CH375HF6.LIB 同时添加后,编译不通过,提示:“CH375FH6.LIB is not a valid ELF file ”,“Cannot open file :CH375HF6.LIB ”请问这是何原因?

2、请问,根据参考的示例程序,是否在对 U 盘进行读写之前,只需要对 U 盘进行初始化(mInitDisk( )子程序)即可,不需要完成获取设备、配置描述符,设置地址,设置配置值等操作?

3、如果需要配置描述符,请问设置 USB 配置命令:COM_SET_CONFIG 所需要输入的“配置值”应如何设置?

4、如过单片机存储空间有限,所编写的程序要求尽可能得精简,在保证不影响对 U 盘读写操作的前提下,请问对 U 盘的识别或枚举最少需要哪几个子程序即可?


1、使用CH375HFQ.LIB 子程序库的话,支持FAT12/FAT16/FAT32 格式文件系统,而不需要再加上CH375HF6.LIB ,CH375HF6.LIB是对于51单片机的子程序库。 2、按我们例子程序操作即可,无需再对U盘进行枚举。 4、库的初始化CH375LibInit( )之后,检测U盘连接,再检查U盘是否准备好CH375DiskReady( ),此后即可进行一般的打开文件、建立文件、读写等操作。


1、我参考了一下网上提供的参考电路图,一般在 USB 接口或者电源上都接的是 10uF 和 0.1uF 的电容,好象没有看到接 100~200uF 这么大的电容的,请问 100~200uF 的电容是用来做什么的?是用来滤波还是用来稳压的? 我在 USB 的接口上加了两个 10uF 和 0.1uF 的电容,但是插上 U 盘之后还是无法对 CH375 进行模式设置和 USB 总线复位设置!请问还有哪些问题可能导致该情况的发生?

2、我在调用 CH375FileCreate( ) 子程序创建新文件时,总是中途卡在 CH375HFQ.H 文件中,子程序 xQueryInterrupt( ) 的第一行:while (CH375_INT_WIRE) 命令行,请问这是什么原因?为什么 CH375 在此之前的测试、主机模式设置、U 盘识别等环节都正常产生了中断,执行该子程序时,就不正常了?


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