CH375不使用库的初始化优盘方法(兼容性还行)

完全参考电脑的初始化方法 第一部分是针对端点0的,属于标准部分 1.用CH375发出DISK_INIT命令(不可以失败) 2.成功后发出DISK_MAX_LUN命令(可以返回STALL) 3.等待成功或STALL(有些优盘是死活返回STALL的)

第二部分是针对数据端点的,已经使用了CBW/CSW了. 4.发出DISK_INQUIRY命令 5.发出DISK_SIZE 需要注意的是4,5命令可能会失败,此时需要调用DISK_R_SENSE命令来获取错误,此时错误好象是06,28(磁盘未准备好),然后重试,直到成功。有些优盘必须获取错误后才可以继续运行!

上面5步能完成的话,基本上大部分优盘都能过了。当然兼容性可能比CH375的库要差点,但是不要钱啦。DISK_READY命令就不需要了。

补充一点: 上面所说的都是正确的,不过在5的时候出错的话,发DISK-R-SENSE之后延时100MS,重试6次,每次都要延时100MS


不需要这步,2.成功后发出DISK_MAX_LUN命令(可以返回STALL) 也不需要这步,4.发出DISK_INQUIRY命令


DISK_INQUIRY是干什么用的啊

返回的36个字节都是什么啊,手册上也没说明白

5.18. 命令DISK_INQUIRY 该命令查询USB 存储设备的特性。CH375在命令执行完成后向单片机请求中断,单片机可以读取 中断状态作为该命令的操作状态。如果操作状态是USB_INT_SUCCESS,那么可以由RD_USB_DATA 命令 获取数据,数据通常是36 个字节,包括USB 存储设备的特性以及厂商和产品的识别信息等。该命令 一般不需要用到,除非是分析新的逻辑单元。


这个数据的返回具体的介绍你可以参考UFI协议里面的0X28的命令,返回的数据有详细的介绍


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