还是因为那朗科 U180的U盘,初始化后,执行读操作指令,能返回1DH,在读一字节的数据长度,正确地应返回40H(64),可这块朗科却返回24H,并且只能读出该长度的厂商信息及版本号等。其它U盘,硬盘,SD卡都没问题,惟独它这样。不知到底该入伙解决?我早已经采取延时2US了
(1)把你的疑问描述具体点,哪个命令的返回数据不正确 (2)有没有下载CH375EVT.ZIP,用MISCELL下的例程试试
具体是执行CMD_DISK_READ命令后,接着输入LBA地址。有中断时执行CMD_GET_STATUS指令读取中断状态是否是1DH,是的话,执行CMD_RD_USB_DATA命令读取数据。从数据口返回一个字节的数据,这应该是后继数据的长度,正确长度应该是40H(别的U盘,硬盘都正确),它却是24H。然后根据数据长度循环读出后继数据。然后执行CMD_DISK_RD_GO命令,继续执行USB存储器的读操作。该U盘返回的长度始终不对,根据此长度读出的数据是厂商信息及版本号等
具体是执行CMD_DISK_READ命令后,接着输入LBA地址。有中断时执行CMD_GET_STATUS指令读取中断状态是否是1DH,是的话,执行CMD_RD_USB_DATA命令读取数据。从数据口返回一个字节的数据,这应该是后继数据的长度,正确长度应该是40H(别的U盘,硬盘都正确),它却是24H。然后根据数据长度循环读出后继数据。然后执行CMD_DISK_RD_GO命令,继续执行USB存储器的读操作。该U盘返回的长度始终不对,根据此长度读出的数据是厂商信息及版本号等
24H字节的厂商信息及版本号应该是DISK_INQUIRY的返回数据,参考CH375EVT.ZIP中MISCELL下的CH375EV0.C 在mInitDisk中:CMD_DISK_INIT之后,CMD_DISK_SIZE之前执行一下DISK_INQUIRY命令。