阅读:1900回复:9
(20分)51+811hs作HOST,写U盘在read10转WRITE10时总是要嵌延时才能继续?
如题!
在每次执行了读扇区后转写扇区时,第一个写操作在发CBW和数据之间加延时则能正常运行,否则回产生NACK错误.是什么原因导致的呢?与配置时的命令状态有关吗? |
|
沙发#
发布于:2005-05-30 13:02
是操作FALSH需要时间
|
|
|
板凳#
发布于:2005-05-30 13:23
谢大侠!用写延时来解释有点困难啊!您看:
1。FLASH写信息也应该是在CBW、DATA OUT 之后吧? 2。如果我连续写,不需要延时就能操作; 3。延时要竟然要100-200毫秒,有点多了吧? 另外每个品牌的U盘都应该不太一样,我如何得知这个延时会是多少呢?我奇怪的是WINDOWS倒好象都知道,那它怎么知道的呢?在RBC命令里知道的吗? |
|
地板#
发布于:2005-05-31 15:25
检查一下HOST READ10操作是否成功、完整结束(CBW+DATA+CSW)。如果没有完整结束(如CSW没有),所需的DELAY作用就是让USB TIMEOUT,才能进行下一个操作。
|
|
地下室#
发布于:2005-05-31 15:48
虽然还没有试,但感觉是对的。谢谢!希望继续支持本贴,还有分数奉上。
|
|
5楼#
发布于:2005-06-02 13:25
遗憾,我原先感觉并不正确。仍请继续支持。
在两次扇区写的间隔如果比较长(100毫秒),则在第2次发送CBW后要延时(100-400毫秒)再发送DATA则传输正确。而上一个的命令的CSW是正确的。有点像U盘进入了睡眠,需要唤醒时间?加延时后虽然勉强通过了,但效率可就太低了,而且兼容性很差。可否通过UFI命令禁止此模式呢?或者用TEST_UNIT_READY检测U盘的状态正常后再执行命令? |
|
6楼#
发布于:2007-05-23 10:26
我在写的过程中也遇到问题了
看了楼主的帖子仿佛明白是延时的问题啊 |
|
7楼#
发布于:2008-06-23 11:09
那咋解决呢?我也困扰啊
|
|
8楼#
发布于:2008-06-24 09:05
咋解决呢????????
|
|
9楼#
发布于:2008-12-22 19:30
各位,这个问题好像好多人都有遇到,有没有哪位高手确定知道什么原因的!加入那么久的延时效率太慢了!怎么才能解决?感觉windows很好的解决了呢!
|
|