阅读:1910回复:14
向斑竹求救(有点绝望)SL811HS:UFI把问题说的更明白点!(高分奖励回报)
在进行USB批量传输时,执行了一条READ_CAPACITY指令,CSW返回执行OK!但是执行下一条UFI指令时(包括重新执行同一条READ_CAPACITY指令),CBW数据包发送(BULK_OUT)时SL811HS返回ACK,但是执行(BULK_IN)时SL811HS返回NAK!而要想执行下一条UFI指令,只能在对U盘复位枚举后才能执行!
在这个问题中,偶认为CSW返回已经OK,应该能执行下一条UFI指令! 不知那位好心人,大虾能揭开此中疑惑!必将重重有谢! [编辑 - 8/30/04 by sunnysky] |
|
|
沙发#
发布于:2004-09-02 12:53
DING!
|
|
|
板凳#
发布于:2004-09-01 08:49
stall 了就clear feature,request sence
|
|
地板#
发布于:2004-08-31 17:24
顶!
|
|
|
地下室#
发布于:2004-08-31 12:48
[引:2:
cbw――data1:o//此时端点会被禁止!! data――data0:in csw――data1:in//设置以后从EP0Status里看没效果,811返回人然为data0, [编辑 - 9/3/04 by sunnysky] |
|
|
5楼#
发布于:2004-08-31 12:45
引:2: cbw――data1:o//此时端点会被禁止!! data――data0:in csw――data1:in//设置以后从EP0Status里看没效果, [编辑 - 9/3/04 by sunnysky] |
|
|
6楼#
发布于:2004-08-31 12:23
我看到的是:
1: cbw――data0:out data――data1:in csw――data1:in 2: cbw――data0:out data――data1:in 在out中,始终是data0 in中,始终是data1 我觉得应该是这样: 1: cbw――data0:out data――data0:in csw――data1:in 2: cbw――data1:out data――data0:in csw――data1:in |
|
7楼#
发布于:2004-08-31 11:57
[
下面是执行的结果: Now star to read the inquiry of the device ! The PID is: 12 02 The Xbuffer number is: 01 The command reading inquiry of the USBdevice is success! The PID is: 91 02 The Xbuffer number is: 01 The inquiry of the device is : Netac Onlydisk Popular3.10 The PID is: 91 02 The Xbuffer number is: 09 The CSW from the device is : 55534253123456780000000000 The PID is: 12 02 The Xbuffer number is: 01 The command reading inquiry of the USBdevice is success! The PID is: 91 02 The USB device is busy! read inquiry of the device is failing! Read the inquiry from the device is failing! 400102 上面解释了所有执行顺序,若按上面DataX的设置,那麽你所要的DataX就是我所设置的初始值,因为每次都没超过64bytes,所以在usb_transaction里面DataX都没有被改变! 首先感谢你的回帖,先给你20(好象这里只能给20,系统好象限制了??)然后到其他的方再给分!!感谢感谢!!再看看!!拜托 [编辑 - 9/3/04 by sunnysky] |
|
|
8楼#
发布于:2004-08-31 11:23
print ur datax each IN/OUT(include cbw/csw/data),u will see it
[编辑 - 8/31/04 by clementzhao] |
|
9楼#
发布于:2004-08-31 10:52
????????????
[编辑 - 9/3/04 by sunnysky] |
|
|
10楼#
发布于:2004-08-31 10:41
呵呵,现在看清楚了,原来你只能执行一次指令,后面就不行啦。我也试过,可惜开发日记丢了。我记得就是data0/1的问题。IN和OUT是2个静态的toggle。是不是你第一次OUT用的是data0,第二次OUT还是用0啊。
[编辑 - 8/31/04 by clementzhao] |
|
11楼#
发布于:2004-08-31 10:23
在进行USB批量传输时,执行了一条READ_CAPACITY指令,CSW返回执行OK!但是执行下一条UFI指令时(包括重新执行同一条READ_CAPACITY指令),CBW数据包发送(BULK_OUT)时SL811HS返回ACK,但是执行(BULK_IN)时SL811HS返回NAK!而要想执行下一条UFI指令,只能在对U盘复位枚举后才能执行! 执行了一条READ_CAPACITY指令,CSW返回执行OK!但是执行下一条UFI指令时(包括重新执行同一条READ_CAPACITY指令),CBW数据包发送(BULK_OUT)时SL811HS返回ACK,但是执行(BULK_IN)时SL811HS返回NAK!而要想执行下一条UFI指令,只能在对U盘复位枚举后才能执行! |
|
|
12楼#
发布于:2004-08-31 10:16
引:U盘的读写兼容性问题很多,NAK一般是U盘数据没准备好,delay and retry 3 times,if stall or timeout,clear stallrequese sence 可能那个U盘不支持READ_CAPACITY,5s以上一般都要timeout掉,要知道容量可以从0扇区计算得出。试试别的命令:test uni ready,read format capacity等等 |
|
13楼#
发布于:2004-08-31 10:09
引:U盘的读写兼容性问题很多,NAK一般是U盘数据没准备好,delay and retry 3 times,if stall or timeout,clear stallrequese sence
问题:即使我发了一条CBW后延时5S,然后再发BULK_IN同样是BUSY? 我都快崩溃了! |
|
|
14楼#
发布于:2004-08-31 09:28
在进行USB批量传输时,执行了一条READ_CAPACITY指令,CSW返回执行OK!但是执行下一条UFI指令时(包括重新执行同一条READ_CAPACITY指令),CBW数据包发送(BULK_OUT)时SL811HS返回ACK,但是执行(BULK_IN)时SL811HS返回NAK!而要想执行下一条UFI指令,只能在对U盘复位枚举后才能执行! U盘的读写兼容性问题很多,NAK一般是U盘数据没准备好,delay and retry 3 times,if stall or timeout,clear stall\requese sence |
|