打印

每次插入电脑都弹出硬件安装向导

[复制链接]
3605|31
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wangpe|  楼主 | 2011-9-20 16:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
做了一块USB板子,用的CY7C68013,写好驱动之后,每次插入电脑都弹出硬件安装向导
沙发
langgq| | 2011-9-20 16:49 | 只看该作者
重新指定sys文件的位置还能用吧

使用特权

评论回复
板凳
wangpe|  楼主 | 2011-9-20 16:54 | 只看该作者
能是能,多麻烦啊

使用特权

评论回复
地板
langgq| | 2011-9-20 16:54 | 只看该作者
你说的IDl老是不同时什么意思?

使用特权

评论回复
5
wangpe|  楼主 | 2011-9-20 16:57 | 只看该作者
发现每次电脑读上来的硬件ID : "USB\VID_aaaa&PID_bbbb\ccccccccc"中,"aaaa""bbbb"字段都不变,可是“ccccccccc”字段却不一定相同。

使用特权

评论回复
6
wangpe|  楼主 | 2011-9-20 16:57 | 只看该作者
“ccccccccc”字段到底是怎么指定的

使用特权

评论回复
7
wangzsa| | 2011-9-20 16:59 | 只看该作者
貌似"cccccccc"是序列号

使用特权

评论回复
8
wangpe|  楼主 | 2011-9-20 17:04 | 只看该作者
与什么有关,有没有办法解决这个问题。

使用特权

评论回复
9
zhuww| | 2011-9-20 17:04 | 只看该作者
哦,对了,这个ID不是firmware返回的吗?

使用特权

评论回复
10
zhanglli| | 2011-9-20 17:15 | 只看该作者
你用的是cypress的芯片吧,51的MCU?

使用特权

评论回复
11
lium| | 2011-9-20 17:15 | 只看该作者
cypress提供了一个通用的驱动,我以前没有碰到过你这样的问题,当然firmware是自己写的。

使用特权

评论回复
12
wangpe|  楼主 | 2011-9-20 17:32 | 只看该作者
问题在于我firmware里边并没有指定serial number,所以我才奇怪系统怎么形成cccccc这个字段的。

使用特权

评论回复
13
wangpe|  楼主 | 2011-9-20 17:32 | 只看该作者
我使用的芯片是Cy7c68013,51的MCU。

使用特权

评论回复
14
lium| | 2011-9-20 21:51 | 只看该作者
技术手册上写了怎么指定serial number的了吧

使用特权

评论回复
15
wangpe|  楼主 | 2011-9-20 21:51 | 只看该作者
技术手册不详细啊,其实问题在于我在CY7C68013中没有指定serial number,很想知道系统是怎么生成这个“ccccccccc”的。

使用特权

评论回复
16
wangzsa| | 2011-9-20 21:55 | 只看该作者
EzUSB的库里有firmware的demo,你去cypress上下一个来看看便知,使用C的,相当简单。

使用特权

评论回复
17
wangpe|  楼主 | 2011-9-20 21:56 | 只看该作者
这根firmware没关系

使用特权

评论回复
18
wangpe|  楼主 | 2011-9-20 22:02 | 只看该作者
例子 : 3&61aaa01&0&E8
分成四个部分:
第一个3表示这个device在整个device tree里面的level.他在第三级
root是0,root下面是usb再下面是usb root hub.这个设备就直接在usb root hub下面
第二个是个hash值.他是这个设备的parent 设备的instance path大写以后计算出来的hash值
instance path是从current control set下面的enum算起(不包含enum)
第三个是hash instance.你很少有看到这个值不为0的
他表示为同一个parent计算上面这个hash的次数 - 1.通常都只是计算一次.计算以后就会保存下面.下一次就直接读取了而不会再重新计算
最后一个就是由bus驱动为他们的pdo返回的instance id了

使用特权

评论回复
19
guoyt| | 2011-9-20 22:03 | 只看该作者
我觉得很奇怪,一般来说后面要么见不到所谓你说ccccc的那一串,要么就不影响驱动安装。

使用特权

评论回复
20
guoyt| | 2011-9-20 22:06 | 只看该作者
下面是从CyUSB.inf中截取的一段:

[Cypress]
%VID_04B4&PID_8613.DeviceDesc%=CyUsb, USB\VID_04B4&PID_8613
%VID_04B4&PID_6830.DeviceDesc%=CyUsb, USB\VID_04B4&PID_6830
%VID_04B4&PID_1003.DeviceDesc%=CyUsb, USB\VID_04B4&PID_1003
%VID_0547&PID_1002.DeviceDesc%=CyUsb, USB\VID_0547&PID_1002
%VID_XXXX&PID_XXXX.DeviceDesc%=CyUsb, USB\VID_XXXX&PID_XXXX

它们是在USB设备进行配置的时候由描述符来生成的,sample firmware中是如下写的(取自dscr.a51):
DeviceDscr:   
  db DSCR_DEVICE_LEN ;; Descriptor length
  db DSCR_DEVICE ;; Decriptor type
  dw 0002H ;; Specification Version (BCD)
  db 00H ;; Device class
  db 00H ;; Device sub-class
  db 00H ;; Device sub-sub-class
  db 64 ;; Maximum packet size
  dw 0B404H ;; Vendor ID
  dw 0310H ;; Product ID (Sample Device)
  dw 0000H ;; Product version ID
  db 1 ;; Manufacturer string index
  db 2 ;; Product string index
  db 0 ;; Serial number string index
  db 1 ;; Number of configurations

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

938

主题

9837

帖子

2

粉丝