[USB 控制器] 每次插入电脑都弹出硬件安装向导

[复制链接]
195|31
 楼主 | 2018-5-16 11:10 | 显示全部楼层 |阅读模式

做了一块USB板子,用的CY7C68013,写好驱动之后,每次插入电脑都弹出硬件安装向导
| 2018-5-16 11:14 | 显示全部楼层

重新指定sys文件的位置还能用吧
 楼主 | 2018-5-16 11:18 | 显示全部楼层

能是能,多麻烦啊
| 2018-5-16 11:21 | 显示全部楼层

你说的IDl老是不同时什么意思?
 楼主 | 2018-5-16 11:24 | 显示全部楼层
发现每次电脑读上来的硬件ID : "USB\VID_aaaa&PID_bbbb\ccccccccc"中,"aaaa""bbbb"字段都不变,可是“ccccccccc”字段却不一定相同。
 楼主 | 2018-5-16 11:28 | 显示全部楼层
“ccccccccc”字段到底是怎么指定的
| 2018-5-16 11:30 | 显示全部楼层
貌似"cccccccc"是序列号
 楼主 | 2018-5-16 11:33 | 显示全部楼层
与什么有关,有没有办法解决这个问题。
| 2018-5-16 11:40 | 显示全部楼层
哦,对了,这个ID不是firmware返回的吗?
| 2018-5-16 11:42 | 显示全部楼层
你用的是cypress的芯片吧,51的MCU?
| 2018-5-16 11:45 | 显示全部楼层

cypress提供了一个通用的驱动,我以前没有碰到过你这样的问题,当然firmware是自己写的。
 楼主 | 2018-5-16 11:49 | 显示全部楼层
问题在于我firmware里边并没有指定serial number,所以我才奇怪系统怎么形成cccccc这个字段的。
 楼主 | 2018-5-16 15:34 | 显示全部楼层

我使用的芯片是Cy7c68013,51的MCU。
| 2018-5-16 15:39 | 显示全部楼层

技术手册上写了怎么指定serial number的了吧
 楼主 | 2018-5-16 15:42 | 显示全部楼层
技术手册不详细啊,其实问题在于我在CY7C68013中没有指定serial number,很想知道系统是怎么生成这个“ccccccccc”的。
| 2018-5-16 15:44 | 显示全部楼层
EzUSB的库里有firmware的demo,你去cypress上下一个来看看便知,使用C的,相当简单。
 楼主 | 2018-5-16 15:47 | 显示全部楼层
这根firmware没关系
 楼主 | 2018-5-16 15:50 | 显示全部楼层
例子 : 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了
| 2018-5-16 15:54 | 显示全部楼层
我觉得很奇怪,一般来说后面要么见不到所谓你说ccccc的那一串,要么就不影响驱动安装。
| 2018-5-16 15:56 | 显示全部楼层
下面是从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
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式
我要创建版块 申请成为版主

论坛热帖

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