Ch375能正确读取到U盘的容量但在读取U盘数据时(512byte)能产生USB_INT_DISK_READ 中断,读完数据后却不产生USB_INT_SUCCESS中断,第一次读完512字节数据后发送DISK_RD_GO命令,却能产生USB_INT_SUCCESS中断,第二次读完512字节数据后发送DISK_RD_GO命令,却产生USB_INT_DISK_ERR中断,读完数据不发送任何命令就不产生任何中断,读取到的数据很大一部分都是不对;一直调试不出来;
追加:读取完U盘数据后理论上会产生USB_INT_SUCCESS中断,不知道为什么读取完数据后不产生任何中断;
因为我们CH375读缓冲区大小为64个字节,一个扇区数据需要分8次读写,除第一次其他每次都需要发送DISK_RD_GO的命令来等中断,继续读是USB_INT_DISK_READ,读完之后是USB_INT_SUCCESS。
也就是说第8次读完之后还得发送DISK_RD_GO的命令来等USB_INT_SUCCESS中断吗?数据读完之后大部分数据不对,只有小部分数据是对的,Ch375有没存在兼容性问题?
你是读取U盘的物理扇区的数据吗?那么你每次读取64字节之后发送read_go的命令产生中断没有?
是的,是读取U盘的物理扇区的数据;发送DISK_RD_GO命令后会产生中断
那你用WINHEX软件看下U盘的物理的第0号扇区的数据。看下和你读取的数据是否一致,不能看逻辑的第0号扇区的数据。
我有查看了数据很小的部分一样,大多数都不一样,如果读1扇区,数据没一个一样的;我使用的是4G的U盘,能读取到U盘的容量;换16G的也是可以读取到容量,但数据读取就是不正确;CH375这款芯片是否存在兼容性的问题?
按照你的描述不像是USB部分出现了问题,建议你查看下接口部分是否有问题。