今天把68013A-56焊接在CCD2的CPLD PCB上,配套的EEPROM存儲(chǔ)器還沒(méi)有焊接上,所以想用它試驗(yàn)一下Cypress的基礎(chǔ)開發(fā)實(shí)例。研究了一上午,結(jié)果驅(qū)動(dòng)都沒(méi)裝上。
我用一種我沒(méi)想到的方式解決的這個(gè)問(wèn)題,詳見文章尾部敘述。
如果有人能給我一點(diǎn)提醒,非常感謝!Please contact "sunmaoduo@163.com"
插入設(shè)備(后文簡(jiǎn)稱 FX2LP),顯示Unknown Device如下圖:
Figure 1
雙擊顯示,代碼43:
Figure 2
Figure 3
Figure 4
Figure 5
Figure 6
以上是插入設(shè)備時(shí)的反應(yīng)。
Cypress提供的Vista(compatible with Windows 7)驅(qū)動(dòng)文件包括cyusb.inf、cyusb.sys,根據(jù)TRM中的相關(guān)內(nèi)容:
Figure 7
我修改了cyusb.inf文件中的相關(guān)項(xiàng),現(xiàn)將cyusb.inf內(nèi)容列出(大部分和Cypress Suite USB 3.4.7 附帶的通用驅(qū)動(dòng)配套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 ,System32\Drivers [ControlFlags] ExcludeFromSelect = * [Manufacturer] %CYUSB_Provider%= Device,NT,NTx86,NTamd64 ; for all platforms [Device] %VID_04B4&PID_8613.DeviceDesc%=CyUsb, USB\VID_04B4& PID_8613 ; 修改了VID、PID,下同 ; for windows 2000 non intel platforms [Device.NT] %VID_04B4&PID_8613.DeviceDesc%=CyUsb, USB\VID_04B4& PID_8613 ; for x86 platforms [Device.NTx86] %VID_04B4&PID_8613.DeviceDesc%=CyUsb, USB\VID_04B4& PID_8613 ; for x64 platforms [Device.NTamd64] %VID_04B4&PID_8613.DeviceDesc%=CyUsb, USB\VID_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 % \System32\Drivers\CYUSB.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 = " . "
————————————————————————————————————————
?
然后點(diǎn)擊更新驅(qū)動(dòng)程序,將目標(biāo)文件夾指向我創(chuàng)建的.inf文件和對(duì)應(yīng)的.sys文件所在的文件夾,確定,顯示:
Figure 8
其實(shí)就是沒(méi)有更新驅(qū)動(dòng)…一切都沒(méi)有變化(原因是沒(méi)有成功識(shí)別設(shè)備的VID&PID):
Figure 9
Figure 10
?
回想一下,首次插入U(xiǎn)SB設(shè)備的時(shí)候,即便沒(méi)有安裝驅(qū)動(dòng),系統(tǒng)也應(yīng)該能夠通過(guò)標(biāo)準(zhǔn)請(qǐng)求得到USB設(shè)備默認(rèn)的VID、PID吧,可是我插入U(xiǎn)SB設(shè)備后,VID、PID俱不顯示,而沒(méi)有VID&PID系統(tǒng)當(dāng)然不知道安裝什么驅(qū)動(dòng)程序,也無(wú)法把我改好的.inf文件和設(shè)備捆綁起來(lái)。這是否說(shuō)明問(wèn)題出在硬件上,比如USB電纜?
Answer:不是硬件問(wèn)題,也不是電纜問(wèn)題!下面是次日上午,我發(fā)現(xiàn)的奇怪現(xiàn)象:
上午我把68013A without EEPROM(后文簡(jiǎn)稱FX2LP)的板子拿到實(shí)驗(yàn)室,連接我的臺(tái)式機(jī)(XP x86)和同學(xué)的筆記本電腦(Win7 x64),發(fā)現(xiàn)竟然都能識(shí)別出VID_04B4 & PID_8613,并且成功安裝Cypress Suite USB 3.4.7提供的驅(qū)動(dòng)(XP:wxp x86,7:wlh x64)。而我實(shí)驗(yàn)室和宿舍的兩臺(tái)筆記本(Win7 x64)的 USB2.0接口 均不能識(shí)別FX2LP的VID和PID。
當(dāng)我決定把FX2LP插在USB3.0接口上試一試的時(shí)候,奇跡發(fā)生了(下列圖中的Win7個(gè)性化效果不同于之前的截圖,因?yàn)橄铝袌D截圖于實(shí)驗(yàn)室筆記本win7,之前是宿舍筆記本win7):
這里有一個(gè)細(xì)節(jié):
1、當(dāng)首次用USB2.0接口連接FX2LP時(shí),顯示"unknown device"在"通用串行總線控制器",錯(cuò)誤代碼43,顯然Windows給FX2LP安裝了一個(gè)驅(qū)動(dòng)(圖4),不過(guò)驅(qū)動(dòng)程序存在錯(cuò)誤(43);
2、當(dāng)首次用USB3.0接口連接FX2LP時(shí),顯示"未知設(shè)備"在"其它設(shè)備",而且沒(méi)有安裝任何驅(qū)動(dòng);
Figure 11
VID&PID均得到了識(shí)別
Figure 12
且成功安裝了驅(qū)動(dòng)(在啟動(dòng)計(jì)算機(jī)時(shí),F(xiàn)8禁用了強(qiáng)制驅(qū)動(dòng)簽名)。
Figure 13
下圖是安裝完驅(qū)動(dòng)的效果,名字上的FRANK64是我在inf文件中加的:
Figure 14
總結(jié)如下:
我比較一下成功識(shí)別和失敗的計(jì)算機(jī)的不同:
1、失敗的計(jì)算機(jī)除了帶有USB2.0還帶有USB3.0接口;
2、成功的計(jì)算機(jī)只帶有USB2.0接口。
我想問(wèn)題可能出在這個(gè)USB3.0接口上,我使用帶有USB3.0接口的計(jì)算機(jī)的電腦時(shí),當(dāng)FX2LP連接在USB2.0接口上時(shí),無(wú)法識(shí)別VIDPID,但是如果FX2LP連接在USB3.0接口時(shí),可以成功顯示VIDPID,并成功安裝驅(qū)動(dòng)。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
