阅读:1759回复:7
u盘读写成功,但是挑盘,怎么办?请教DX
读写u盘成功了(没有做文件系统的),今天搜集了好几个u盘来试验,发现有的连枚举都不能通过。有一个在Set_Interface(uAddr, InterfaceSerNum)的时候设备挂起(setup包可以通讯成功),有一个在第一个GetDesc()时就不成功,有一个枚举成功,也正确读到了u盘容量等,但是调用UFI_READ10()时却不能成功。
请问dx怎么回事啊! |
|
|
沙发#
发布于:2004-10-10 10:48
Set_Interface函数是可选的,如果对方设备不支持多个Interface,就会出现设备挂起的情况。
GetDesc不成功,返回的错误是什么? 调用Read10不成功只是一个盘的情况还是所有的盘都如此?可以用RequestSense命令查看一下不成功的原因,相信会有所帮助 |
|
板凳#
发布于:2004-10-10 10:58
太感谢你了,呵呵,回答的好快啊,给你的分收到了吧,不过其实我都不知道这些分是干吗用的,而且每次最多只能给10分。
刚才看了一下,第一个setup包的时候就返回超时。Set_Interface()函数可选也就是说可以把它忽略掉?不要这一步就可以了?那有没有u盘必须要这一步? |
|
|
地板#
发布于:2004-10-10 11:00
调用Read10不成功只是一个盘的情况还是所有的盘都如此?可以用RequestSense命令查看一下不成功的原因,相信会有所帮助 是有的u盘这样,而且我不知道RequestSense命令是什么,都没有见过。哪里有吗?或者DX能提供一个吗? |
|
|
地下室#
发布于:2004-10-10 11:17
如果该设备支持多个Interface就应该会支持SetInterface命令,因为主机这边必须选择一个Interface来使用。
你好像是使用UFI指令的,在UFI协议中就有RequestSense命令呀 |
|
5楼#
发布于:2004-10-10 11:30
你好像是使用UFI指令的,在UFI协议中就有RequestSense命令呀 呵呵,听你这么一说我找到了,操作码是0x03的那个就是RequestSense命令,只是我不知道它的CBWCB怎么设置啊 |
|
|
6楼#
发布于:2004-10-10 12:47
楼主啊?能问问你是用的什么片子吗?我也正在作能不能交流一下啊?fei-yang2000@163.com这是我的E-Mail
|
|
7楼#
发布于:2004-10-10 17:17
我用的是51+sl811,还没有成功,一起做吧,你做的怎么样了?
|
|
|