20楼#
发布于:2002-11-28 08:49
我说的直接写意思是:枚举成功后,不经过INQUIRY或READ命令,直接按CBW、WRITE(10)、CSW的顺序写U盘。
首先不知道能不能直接写,需不需要其他流程;还有就是命令格式对不对,贴在下面。 BYTE WRITE10[31]={0x55,0x53,0x42,0x43,0,0,0,0,0x00,0x02,0,0,0x00,0,0x0a, 0x2a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00}; BYTE WRBUF[31]={0x55,0x53,0x42,0x43,0,0,0,0,0x00,0x02,0,0,0x00,0,0x0a, 0x3b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00}; 盼指点。谢谢! |
|
21楼#
发布于:2002-11-28 10:13
我估计写入的问题可能有两个:
1.你在读csw时,是否只发了一次in的包?正常情况下,U盘的写入会慢一些,所以有可能它还没有处理完要写入的数据,你就来IN包了,这时它当然要发NAK的包了,你可以试着多发一些IN包,直到收到CSW包为止。 2.我看你发的CBW包里面,发现你要发给U盘0x200个数据,你是不是全部发完了?应该要发8个out包。 另外,建议你先不要向LBA=0这个地方写,换一个普通的地址写,因为这个地方是逻辑地址空间的MBR的位置,写数据会破坏U盘。 |
|
22楼#
发布于:2002-11-28 11:12
为了测试看起来方便,LBA=0的位置已经被计算机用其他的软件清零过了,大不了再格式化回来.因为我用BUS HOUND 只能看到前512字节,写到其他地方读起来不方便.
您所的说的多读几次的方法,我马上试以下. 我还碰到一个问题,即使是READ命令,也不能循环读取.比如我读完了01处的512字节,延时1秒(实验)后再读02处的512字节,发现也不成功. 谢谢帮助. |
|
23楼#
发布于:2002-11-28 11:38
好象不是延时的问题,我如果等正确的CSW的话,出不来。
|
|
24楼#
发布于:2002-11-28 11:50
请qianyu123 帮下忙,
我现在也在调试SL811,采用KEIL编译,8051控制 但是我不论如何发setup包(get_descriptor),但是一直收不到NAK 不知是不是程序问题,我参考了ScanLogic的有关驱动,也没着落。 qianyu123 给提供点帮吗? |
|
25楼#
发布于:2002-11-28 12:00
前面帖子里公布的资料.
我也是下载调试的. 子程序非常全,我也没看细节,反正不用动一点点. 谢谢原始作者. |
|
26楼#
发布于:2002-12-02 10:22
收不到NAK应该高兴才对.
好象不管你发什么命令,都应该有响应才对,格式对,数据体不对回NACK,格式不对回STALL. 首先确定地址对不对、ENDPOINT对不对。 随便说说,请指正。 :) :) :) :) :) ;) |
|
27楼#
发布于:2003-12-20 09:56
循环不行是没有执行DATA0/1轮换
|
|
28楼#
发布于:2003-12-24 16:00
晶阵用的对吗?
我们有成熟MCU读写U盘的方案. 详细信息可以到我们的网站上看:http://eden.51.net 上面有介绍和图片。 |
|
29楼#
发布于:2004-03-17 17:21
到]
|
|
|
上一页
下一页