阅读:1646回复:4
51+D12做U盘,为什么枚举过程中还要驱动程序呢?高手指点迷津。
固件中:
设备描述符-->12 01 10 01 00 00 00 10 dd dd dd dd dd dd 00 00 00 01 配置描述符-->09 02 2e 00 01 01 00 80 32 当D12收到 80 06 02 00 00 00 ff 00之后,就要求安装驱动程序,但是后面的接口描述符和端点描述符等还没有发送给主机....... 怎么让主机识别一个U盘呢? 我用Bus Hound看我买的U盘的识别过程,并没有发现有 80 06 02 00 00 00 00 ff这样的控制包,只有80 06 02 00 00 00 09 00 这个控制包,也不用安装驱动程序,这是为什么呢? 请高手指点一下。 ![]() ![]() ![]() |
|
沙发#
发布于:2005-07-19 21:22
D12收到80 06 02 00 00 00 ff 00后,固件回复数据如下:
09 02 2e 00 01 01 00 80 32 09 04 00 00 04 08 04 00 00 07 05 81 03 10 00 01 07 05 01 03 10 00 01 07 05 82 02 40 00 0A 07 05 02 02 40 00 0A 为什么要求驱动程序呢? U盘的描述符,哪个地方不对呢?烦请高手帮忙看一下 |
|
板凳#
发布于:2005-07-19 22:42
你用什么做存储器,是三星的FLASH吗?
你有加32K SRAM吗? |
|
|
地板#
发布于:2005-07-20 00:28
是要用三星的FLASH,但是现在还没有加上去,我想先让U盘盘符显示出来,这个搞定后再考虑读写。
现在的问题是响应了80 06 02 00 - 00 00 ff 00后,电脑就提示安装驱动,我猜可能是描述符出问题了,正在查。有高手能帮忙看一下。 |
|
地下室#
发布于:2005-07-20 13:28
哦,现在知道了。就是描述符的问题,改正之后可以检测到 MASS STORAGE DEVIECE 了.
但是现在到了GET CONFIG过不去了,总是到了这里过一段时间之后重新从最初开始枚举,重复三次之后就停止。我是这样响应GET CONFIG的: 发送0字节--》禁用端点--》使能端点--》设置配置标志; 是什么问题呢? |
|