社区导航

 

搜索
楼主: alling

STM32F107读U盘程序---10多种盘已测试通过

[复制链接]

100

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2010-12-21 17:09 | 显示全部楼层
                                 尴尬 现在碰到个发送完Inquiry请求 执行下一条CBW指令 主机就会一直收到nak 调试发现可能是主机没有将这一条指令发送出去 你有碰到这个问题否

回复

使用道具 举报

104

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2010-12-21 17:17 | 显示全部楼层
                                 解决了 顺便问下 你都是看啥资料的 除了Bulk-Only Transport和UFI Command Specification之外 还看啥 汗 我上面问题的解决答案 貌似这两个上面没的

回复

使用道具 举报

124

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2010-12-21 18:11 | 显示全部楼层
                                 的确是好资料

回复

使用道具 举报

120

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2010-12-21 22:01 | 显示全部楼层
                                 参考价值还是挺大的

回复

使用道具 举报

97

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2010-12-22 09:32 | 显示全部楼层
                                 顶

回复

使用道具 举报

109

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2010-12-22 10:38 | 显示全部楼层
jleige: 我也就看这些了,其他还有些enumerate详解之类的.

多个logic unit的drive,该怎么支持呢? 有没有人吱一声阿

回复

使用道具 举报

101

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2010-12-22 10:49 | 显示全部楼层
jleige: 我也就看这些了,其他还有些enumerate详解之类的.

多个logic unit的drive,该怎么支持呢? 有没有人吱一声阿
如果你看了Bulk-Only Transport这篇文档,看看Get Max LUN这条命令就知道怎么支持多个logic unit的drive了。

回复

使用道具 举报

102

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2010-12-22 11:14 | 显示全部楼层
我的一个500G移动硬盘,在enumerate完成之后,就不接收任何mass storage class specific request,不管你是用LUN=0还是LUN=1. USB传输的结果都是time out,就好像enumerate之后这个设备的地址变了.

这个500G的硬盘在PC上是OK的,我用usb hound捕获到,PC的确对这个硬盘使用了2个USB地址!

回复

使用道具 举报

110

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2010-12-22 12:08 | 显示全部楼层
如果PC对这个硬盘使用了2个USB地址,这意味着这个USB硬盘内置一个HUB,否则按照USB协议,在一条USB电缆上不可能出现2个地址!请楼主务必确认这点。

如果这个USB硬盘真的内置一个HUB,那么HUB占一个地址,USB硬盘占一个地址,对于Mass storage class device来讲,最终还是归结到一个地址

回复

使用道具 举报

134

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2010-12-22 22:00 | 显示全部楼层
                                 资料不错

回复

使用道具 举报

112

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2010-12-23 14:34 | 显示全部楼层
                                 你程序里貌似没有stall的处理?你没碰到这个恶心的stall?呵呵 你的程序在我这边的USB设备貌似过不去 呵呵 这个设备在复位完成后,有时候会设置成低速 但是它实际上是全速 呵呵

回复

使用道具 举报

101

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2010-12-23 16:11 | 显示全部楼层
                                 如果你发送的usb命令都是正确的,应该不会有stall,所以我没有特别处理stall. 所以stall根其他的失败一样,全部retry. 如果你的设备被识别为低速,你查一下设备的D+/D-上的上拉电阻是否正确.

回复

使用道具 举报

97

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2010-12-23 16:56 | 显示全部楼层
                                 这个设备是一上电有时候识别为低速 只要重新初始化通道就好 我的4GU盘就会回stall的 用电脑看也会回stall的 呵呵 NND clearfeatures的时候输入端点号前面没加0x80 哎 就这个搞了我两天 奶奶的

回复

使用道具 举报

100

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2010-12-23 17:02 | 显示全部楼层
                                 "我的4GU盘就会回stall的" --- 究竟是什么情况下stall的? 我的程序中没有clear feature,你能分析一下为什么要clear feature?

回复

使用道具 举报

110

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2010-12-23 18:10 | 显示全部楼层
                                 呵呵 我也不知道 我有两个USB设备 一个是4G U盘这个会收到stall 一个就是那个usb1.1的设备(就是那个插上有时候会识别成低速的设备)这个是正常执行  你我的两个设备碰到ModeSense6指令都会返回stall 用工具抓xp系统对usb的操作也是有的 说明我的指令应该没错的 遇到stall错误就要用clear feature把这个特性清除掉 这样下次发送才有可能接收到数据 否则会一直回复stall错误

回复

使用道具 举报

108

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2010-12-23 19:01 | 显示全部楼层
                                 先下载下来学习一下

回复

使用道具 举报

111

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2010-12-23 19:26 | 显示全部楼层
                                 再问个问题 你是如何实现多个包发送的 我现在设置包为64字节 传输长度为512字节 怎么才传了一个包通道就CCH就置位了 哎

回复

使用道具 举报

111

TA的帖子

1

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2010-12-23 21:42 | 显示全部楼层
我只用到SPC_CMD_REQUESTSENSE 0x03,没有stall,你确用SPC_CMD_MODESENSE6 0x1A。这2个命令,究竟该用谁呢?你是参考的什么资料说要用SPC_CMD_MODESENSE6?

传输512字节,要进行8次IN,这个在我的程序里你可以看到。

回复

使用道具 举报

100

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2010-12-23 22:18 | 显示全部楼层
SPC_CMD_REQUESTSENSE 0x03 这个是看出现的是什么错误
你是参考的什么资料说要用SPC_CMD_MODESENSE6?------我是通过USB分析软件看XP系统对U盘的操作,然后模拟xp系统做的
传输512字节,要进行8次IN,这个在我的程序里你可以看到---呵呵 我只进行一次就CHH了 呵呵

回复

使用道具 举报

110

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2010-12-23 22:30 | 显示全部楼层
                                 的确是有一些问题

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

关闭

站长推荐上一条 1/5 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2020-3-31 15:47 , Processed in 0.549757 second(s), 16 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表