在51上使用SL811扩展的USB接口,枚举过程通过了,开始发送Inquiry, ReadFormatCapacity等SCSI命令初始化U盘。但是发现手头两个牌子U盘都 会在发送完ReadFormatCapacity后,返回stall。
参考网友的经验,在此时发送两条ClearFeature清除端点1和2的hatl状态,从 getstatus的返回打印看,halt状态是清除了,但是不知道为何接着发送的 RequestSense命令总是又返回stall。接下来的readcapacity命令的bulksend 阶段一直NAK过不去.
用bus houd抓了一下其中一个U盘的打印,发现PC在ReadFormatCapacity 后有个RESET过程,却没有clearfeature.现在特想知道PC在这个RESET里到 底是做了什么事情,我在单片机这里应该如何做,感觉是个解决问题的关键。 希望知情网友帮帮忙,谢谢。
附:bus houd的关于RESET的打印。有我的简略注释。
相关链接:https://bbs.21ic.com/upfiles/img/20076/200762794831996.rar |