您好!
情况:1、我使用STM32加CH376作主、从两种方式使用,硬件上使用同一个端口,使用贵公司提供的硬件方案,即加二极管和比较器的办法,这样U盘上实际的工作电压只有4.3V左右。
2、我们用这个方案已经应用成功,产品也已经上市,有一定的销量。
现象:1、目前,有的仪器出现无法正常读取U盘的现象,有的仪器又可以;
2、如KingSton的DataTraveler V3.0,16G的U盘,有的仪器可以读取,有的仪器无法读取。
3、在无法读取的仪器上连接老旧的U盘,如128MB的U盘,又可以正常使用。
4、无法读取的仪器,直接更换CH376芯片,仍然是这个情况!
分析:1、我们怀疑可能是电源的问题,将电压直接加到5V,结果还是不行;
2、使用仿真器查看,情况如下:
仪器先CH376DiskMount() ; 初始化磁盘并测试磁盘是否就绪,正常;
CH376ReadBlock((uint8_t *)buf ); 读取U盘的厂商和产品信息,正常;
CH376DiskCapacity(); 检查U盘或者SD卡的总空间,正常!!
但是,仪器在读取查询剩余空间命令时会返回0xA1,好像是未格式化、或者参数错误的问题!
即使用CH376DiskQuery()命令,相当于s = CH376SendCmdWaitInt( CMD0H_DISK_QUERY );始终返回0xA1,
3、在未更换CH376芯片前,仪器偶然可以通过,但是出现无法创建文件的现象!
总之,问题比较怪,请问问题大概出在哪里?如何改进啊?
因为已经是成品了,仪器已到用户手上,现在出现这个问题,很难办!