13.首次安装CY7C68013A驱动失败记(结果竟然是这样)
今天把68013A-56焊接在CCD2的CPLD PCB上,配套的EEPROM存储器还没有焊接上,所以想用它试验一下Cypress的基础开发实例。研究了一上午,结果驱动都没装上。
我用一种我没想到的方式解决的这个问题,详见文章尾部叙述。
如果有人能给我一点提醒,非常感谢!Please contact "sunmaoduo@163.com"
插入设备(后文简称 FX2LP),显示Unknown Device如下图:
Figure 1
双击显示,代码43:
Figure 2
Figure 3
Figure 4
Figure 5
Figure 6
以上是插入设备时的反应。
Cypress提供的Vista(compatible with Windows 7)驱动文件包括cyusb.inf、cyusb.sys,根据TRM中的相关内容:
Figure 7
我修改了cyusb.inf文件中的相关项,现将cyusb.inf内容列出(大部分和Cypress Suite USB 3.4.7 附带的通用驱动配套inf文件相同,修改的地方我用红色标出了):
————————————————————————————————————————
; Installation INF for the Cypress Generic USB Driver for Windows Vista
; Processor support for OS unknown platforms.
;
; (c) Copyright 2011 Cypress Semiconductor Corporation
;
[Version]
Signature="$WINDOWS NT$"
Class=USB
ClassGUID={36FC9E60-C465-11CF-8056-444553540000}
provider=%CYUSB_Provider%
CatalogFile=CYUSB.cat
DriverVer=10/17/2011,3.4.7.000
[SourceDisksNames]
1=%CYUSB_Install%,,,
[SourceDisksFiles]
CYUSB.sys = 1
[DestinationDirs]
CYUSB.Files.Ext = 10,System32Drivers
[ControlFlags]
ExcludeFromSelect = *
[Manufacturer]
%CYUSB_Provider%=Device,NT,NTx86,NTamd64
;for all platforms
[Device]
%VID_04B4&PID_8613.DeviceDesc%=CyUsb, USBVID_04B4&PID_8613 ; 修改了VID、PID,下同
;for windows 2000 non intel platforms
[Device.NT]
%VID_04B4&PID_8613.DeviceDesc%=CyUsb, USBVID_04B4&PID_8613
;for x86 platforms
[Device.NTx86]
%VID_04B4&PID_8613.DeviceDesc%=CyUsb, USBVID_04B4&PID_8613
;for x64 platforms
[Device.NTamd64]
%VID_04B4&PID_8613.DeviceDesc%=CyUsb, USBVID_04B4&PID_8613
[CYUSB]
CopyFiles=CYUSB.Files.Ext
AddReg=CyUsb.AddReg
[CYUSB.HW]
AddReg=CYUSB.AddReg.Guid
[CYUSB.Services]
Addservice = CYUSB,2,CYUSB.AddService
[CYUSB.NT]
CopyFiles=CYUSB.Files.Ext
AddReg=CyUsb.AddReg
[CYUSB.NT.HW]
AddReg=CYUSB.AddReg.Guid
[CYUSB.NT.Services]
Addservice = CYUSB,2,CYUSB.AddService
[CYUSB.NTx86]
CopyFiles=CYUSB.Files.Ext
AddReg=CyUsb.AddReg
[CYUSB.NTx86.HW]
AddReg=CYUSB.AddReg.Guid
[CYUSB.NTx86.Services]
Addservice = CYUSB,2,CYUSB.AddService
[CYUSB.NTamd64]
CopyFiles=CYUSB.Files.Ext
AddReg=CyUsb.AddReg
[CYUSB.NTamd64.HW]
AddReg=CYUSB.AddReg.Guid
[CYUSB.NTamd64.Services]
Addservice = CYUSB,2,CYUSB.AddService
[CYUSB.AddReg]
; Deprecating - do not use in new apps to identify a CYUSB driver
HKR,,DevLoader,,*ntkern
HKR,,NTMPDriver,,CYUSB.sys
; You may optionally include a check for DriverBase in your application to check for a CYUSB driver
HKR,,DriverBase,,CYUSB.sys
HKR,"Parameters","MaximumTransferSize",0x10001,4096
HKR,"Parameters","DebugLevel",0x10001,2
HKR,,FriendlyName,,%CYUSB_Description%
[CYUSB.AddService]
DisplayName = %CYUSB_Description%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 3 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %System32DriversCYUSB.sys
AddReg = CYUSB.AddReg
LoadOrderGroup = Base
[CYUSB.Files.Ext]
CYUSB.sys
[CYUSB.AddReg.Guid]
HKR,,DriverGUID,,%CYUSB.GUID%
[Strings]
CYUSB_Provider = "Cypress"
CYUSB_Company = "Cypress Semiconductor Corporation"
CYUSB_Description = "Cypress Generic USB Driver"
CYUSB_DisplayName = "Cypress USB Generic"
CYUSB_Install = "Cypress CYUSB Driver Installation Disk"
VID_04B4&PID_8613.DeviceDesc="Cypress USB Generic Driver (3.4.7.000)FRANK64" ; 修改成自定义的名字
CYUSB.GUID="{76C2F9FD-3238-48aa-A217-06A805FE4DC9}" ; 利用GUIDGEN.EXE生成了新的GUID
CYUSB_Unused = "."
————————————————————————————————————————
然后点击更新驱动程序,将目标文件夹指向我创建的.inf文件和对应的.sys文件所在的文件夹,确定,显示:
Figure 8
其实就是没有更新驱动…一切都没有变化(原因是没有成功识别设备的VID&PID):
Figure 9
Figure 10
回想一下,首次插入USB设备的时候,即便没有安装驱动,系统也应该能够通过标准请求得到USB设备默认的VID、PID吧,可是我插入USB设备后,VID、PID俱不显示,而没有VID&PID系统当然不知道安装什么驱动程序,也无法把我改好的.inf文件和设备捆绑起来。这是否说明问题出在硬件上,比如USB电缆?
Answer:不是硬件问题,也不是电缆问题!下面是次日上午,我发现的奇怪现象:
上午我把68013A without EEPROM(后文简称FX2LP)的板子拿到实验室,连接我的台式机(XP x86)和同学的笔记本电脑(Win7 x64),发现竟然都能识别出VID_04B4 & PID_8613,并且成功安装Cypress Suite USB 3.4.7提供的驱动(XP:wxp x86,7:wlh x64)。而我实验室和宿舍的两台笔记本(Win7 x64)的USB2.0接口均不能识别FX2LP的VID和PID。
当我决定把FX2LP插在USB3.0接口上试一试的时候,奇迹发生了(下列图中的Win7个性化效果不同于之前的截图,因为下列图截图于实验室笔记本win7,之前是宿舍笔记本win7):
这里有一个细节:
1、当首次用USB2.0接口连接FX2LP时,显示"unknown device"在"通用串行总线控制器",错误代码43,显然Windows给FX2LP安装了一个驱动(图4),不过驱动程序存在错误(43);
2、当首次用USB3.0接口连接FX2LP时,显示"未知设备"在"其它设备",而且没有安装任何驱动;
Figure 11
VID&PID均得到了识别
Figure 12
且成功安装了驱动(在启动计算机时,F8禁用了强制驱动签名)。
Figure 13
下图是安装完驱动的效果,名字上的FRANK64是我在inf文件中加的:
Figure 14
总结如下:
我比较一下成功识别和失败的计算机的不同:
1、失败的计算机除了带有USB2.0还带有USB3.0接口;
2、成功的计算机只带有USB2.0接口。
我想问题可能出在这个USB3.0接口上,我使用带有USB3.0接口的计算机的电脑时,当FX2LP连接在USB2.0接口上时,无法识别VIDPID,但是如果FX2LP连接在USB3.0接口时,可以成功显示VIDPID,并成功安装驱动。
13.首次安装CY7C68013A驱动失败记(结果竟然是这样)的更多相关文章
- Fedora 21 安装 Nvidia 驱动以及失败后的补救方法
在 Linux 桌面系统下玩了这么久,大部分时间都是使用 Ubuntu,偶尔使用一下 Fedora.我的电脑中安装有多个 Linux 发行版,见这里<在同一个硬盘上安装多个Linux发行版及Fe ...
- cc2540 usbdongle 安装驱动失败的终极解决方法 【原创,多图】
Ghost winxp win7系统安装CC2540 usbdongle CDC驱动程序 [重要提示] 因为非常多朋友使用Ghost系统.导致安装cdc驱动时安装不成功,出现 "INF中的服 ...
- Ubuntu下用NdisWrapper安装网卡驱动
下面是一个简单全面的使用NdisWrapper的指南.这是从Beginning Ubuntu Linux, Second Edition中提炼出来的. 这份指南是第8章的一部分.该章给出了在Ubunt ...
- ubuntu18.40 rtx2080ti安装显卡驱动/cuda/cudnn/tensorflow-gpu
电脑环境 ubuntu 18.40 gpu rtx2080ti 一.安装显卡驱动 刚开始尝试用手动安装方式安装驱动 下载了驱动程序但是因为没有gcc所以放弃这种方法 后尝试最简单的方式 在 菜单-- ...
- USB小白学习之路(11) Cy7c68013A驱动电路设计注意事项(转)
Cy7c68013A驱动电路设计注意事项 转自:http://group.chinaaet.com/116/79029#0-tsina-1-71467-397232819ff9a47a7b7e80a4 ...
- opensuse 13.1 安装配置从0开始
主要目的为自己留作备份,仅作参考! 1. 输入法 托盘->输入法->配置 去掉除英语和Sunpinyin之外的输入法,配置Sunpinyin,使用双拼方案,重启fcitx. 另外需要禁用笔 ...
- 使用linux mint 安装无线网卡驱动
新买了个笔记本Thinkpad E440,用了两天发现无线网非常不稳定,有时候能搜到wifi却连不上,有时候连上了却连不上互联网,于是决定重新安装个网卡驱动. 首先看看自己显卡的型号: lspci : ...
- ubuntu安装nVidia驱动,遇到终端闪砾问题并解决
安装nvidia的官方驱动之后,比起nouvean来说感觉速度快了不少. 安装该驱动很简单,但选择哪个驱动是要注意的.因为今天我试了nvidia的多个驱动后都在ubuntu下用起来并不好. 我现在的环 ...
- 在CDlinux下编译安装无线网卡驱动
环境 主机:ThinkPadT440P 系统:CDlinux9.7.1 概述 准备利用CDlinux来破解周围的wifi密码来免费蹭网,由于笔记本是新买的,系统没有自带驱动,只能自己手动到网上下载.编 ...
随机推荐
- [Nginx 1] Nginx简介
导读:现在项目中用到这个Nginx了,本来是想着把代码调通了就得了.想想还是花点时间总结总结,就利用门卫思维吧.今天主要是一个整体的介绍,然后在学习的过程中,接着总结Nginx的其他使用事宜. 一.什 ...
- SQL Server 数据库基础编程
Ø Go批处理语句 用于同时执行多个语句 Ø 使用.切换数据库 use master go Ø 创建.删除数据库 方法1. --判断是否存在该数据库,存在就删除 if (exists ...
- 阿里 Java面试 知识点
摘自: http://blog.csdn.net/wtyvhreal/article/details/45291835 =================================== 基础知识 ...
- tcp timestamp
Description Protocol suite: TCP/IP. Protocol type: Transport layer protocol. Option length: 10 bytes ...
- Java移位运算
java中移位运算符有三种“<<”.“>>”.“>>>”,没有“<<<”运算符. “<<”运算符将二进制位进行左移,低位用0来填 ...
- Eclipse 中打不开android sdk managerf
今天配置android sdk 的时候,出现了android sdk 打不开的情况.无论直接点击 sdk manager.exe 还是从eclipse启动,都不起作用,双重启(重启eclipse和ad ...
- java实现 swing模仿金山打字 案例源码
java实现 swing模仿金山打字 案例源码,更多Java技术就去Java教程网.http://java.662p.com 代码: <font size="3">im ...
- JavaScript高级 面向对象的程序设计 (一)《JavaScript高级程序设计(第三版)》
创建对象 继承 面向对象的语言都有一个表示---类.通过类我们可以创建多个具有相同属性的对象.但是,在JS中并没有类的概念,所以JS的对象也和其他语言的对象不同. 对象的定义:无序的属性集合,其属性可 ...
- CentOS6.4安装Smokeping节点监控软件
Smokeping:它是rrdtool的作者制作的,在图形显示方面很漂亮,可以用来很好的检测网络状态和稳定性,下面简单说一下Smokeping的安装以及配置方法. 0.首先关闭selinux和防火墙 ...
- ES6还是ES2015?
遇到了一个困惑 原来称作es6的现在突然变成es2015 了 原因是这个事ecma-262 的第六次变更,所有以前按照惯例称为es6. 但是为了更小版本频繁发布,现在 标准叫法是: esmasc ...