• 首次安装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 = %10%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 = "."
    View Code

    ————————————————————————————————————————

    然后点击更新驱动程序,将目标文件夹指向我创建的.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,并成功安装驱动。

  • 相关阅读:
    插入与归并(python)(原创)
    同一环境下新建Standby RAC库
    配置Server Side TAF
    RAC禁用DRM特性
    Oracle获取数据库中的对象创建语句
    SQL Tuning 基础概述10
    Oracle数据块损坏的恢复实例
    Oracle的FIXED
    Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part2:clusterware安装和升级
    Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级
  • 原文地址:https://www.cnblogs.com/sunmaoduo/p/3919281.html
Copyright © 2020-2023  润新知