阅读:3559回复:31
问一个也许很老的问题(枚举)100分――――在线等待,当场给分
根据ezusb提供的ezloader(就是所谓的soft-load),向e2prom中用vend_ax写入b4 47 05 06 10 01 00(通过开发板),然后按照pdf文件的step by step,生成了一个类似ezloader.sys得sys文件(wdgtldr.sys ).firmware中得vid自然也是改成了1007。可以保证以上的步骤都是完全按照pdf中实现的。
完成后,在ezusb提供的开发板上,可以正确的实现枚举过程,先识别出wdgtldr.sys ,然后重新枚举找到ezusb.sys(我直接用的,没有修改)。然后用我自己vc的程序或者是开发板配套的ezmr程序,都可以实现firmware中得功能。 但是,问题是,我把e2prom拆下来放到我自己的板子上,上电后就只能识别出wdgtldr.sys,无法继续下去了。自然也就不对了。 这个问题我已经困惑了一个多星期,看了论坛上很多类似的贴子,但是总是没有什么进展。 会是板子的问题么?我参照开发板的sch和技术手册设计的,或者inf又问题么?上次发了一个贴,可惜没有人回答,这次重新发贴,希望大虾们帮帮忙,不胜感激,100分奉送~~~~解决了这个问题,我的项目就完成一大半了。 附inf: [Version] Signature="$CHICAGO$" Class=USB ClassGuid={36FC9E60-C465-11CF-8056-444553540000} provider=%Cypress% LayoutFile=layout.inf ;CatalogFile=ezusb.cat ;The CatalogFile entry above is an example and should be uncommented and modified for your driver ;DriverVer=12/27/2004, 1.0.0.0 ;The DriverVer entry above is an example and should be uncommented and modified for your driver [Manufacturer] %Cypress%=Cypress [SourceDisksNames] 1=%strWidgetSourceDiskName%,,, ;The above section is for example purposes ;Uncomment and modify this section for your driver [SourceDisksFiles] wdgtldr.sys=1 ezusb.sys=1 ;The above section is for example purposes ;Uncomment and modify this section for your driver [Cypress] ; Entry point for the widget after firmware download and renumeration ; Your firmware has been download, the device has ReNumerated, now we ; want to use the EZ-USB General Purpose Device Driver. Your finished ; product should use your own unique VID - see www.usb.org %USBVID_0547&PID_1007.DeviceDesc%=EZUSB.Dev, USBVID_0547&PID_1007 ; ; Entry point for the widget before firmware download and renumeration ; This VID/PID combination will call the EZ-Loader driver and download ; your firmware. Your finished product should use your own unique VID ; see www.usb.org for additional information %USBVID_0547&PID_1006.DeviceDesc%=WIDGET.Dev, USBVID_0547&PID_1006 [ControlFlags] ExcludeFromSelect=* ; removes all devices here from the device installer list [PreCopySection] HKR,,NoSetupUI,,1 [DestinationDirs] EZUSB.Files.Ext = 10,System32Drivers EZUSB.Files.Inf = 10,INF WIDGET.Files.Ext = 10,System32Drivers WIDGET.Files.Inf = 10,INF [EZUSB.Dev] CopyFiles=EZUSB.Files.Ext, EZUSB.Files.Inf AddReg=EZUSB.AddReg ;This section is for Windows 98, if you do not wish to support Windows 98 ;delete or comment out above section [EZUSB.Dev.NT] ;CopyFiles=EZUSB.Files.Ext, EZUSB.Files.Inf CopyFiles=EZUSB.Files.Ext AddReg=EZUSB.AddReg [EZUSB.Dev.NT.Services] Addservice = EZUSB, 0x00000002, EZUSB.AddService [EZUSB.AddService] DisplayName = %EZUSB.SvcDesc% ServiceType = 1 ; SERVICE_KERNEL_DRIVER StartType = 3 ; SERVICE_DEMAND_START ;StartType = 2 ; SERVICE_AUTO_START ErrorControl = 1 ; SERVICE_ERROR_NORMAL ServiceBinary = %10%System32Driversezusb.sys LoadOrderGroup = Base [EZUSB.AddReg] HKR,,DevLoader,,*ntkern HKR,,NTMPDriver,,ezusb.sys [EZUSB.Files.Ext] ezusb.sys ;[EZUSB.Files.Inf] ;wdgtldr.Inf [WIDGET.Dev] CopyFiles=WIDGET.Files.Ext, WIDGET.Files.Inf AddReg=WIDGET.AddReg ;This section is for Windows 98, if you do not wish to support Windows 98 ;delete or comment out above section [WIDGET.Dev.NT] ;CopyFiles=WIDGET.Files.Ext, WIDGET.Files.Inf CopyFiles=WIDGET.Files.Ext AddReg=WIDGET.AddReg [WIDGET.Dev.NT.Services] Addservice = WIDGET, 0x00000002, WIDGET.AddService [WIDGET.AddService] DisplayName = %WIDGET.SvcDesc% ServiceType = 1 ; SERVICE_KERNEL_DRIVER StartType = 3 ; SERVICE_DEMAND_START ;StartType = 2 ; SERVICE_AUTO_START ErrorControl = 1 ; SERVICE_ERROR_NORMAL ServiceBinary = %10%System32Driverswdgtldr.sys LoadOrderGroup = Base [WIDGET.AddReg] HKR,,DevLoader,,*ntkern HKR,,NTMPDriver,,wdgtldr.sys [WIDGET.Files.Ext] wdgtldr.sys ;[WIDGET.Files.Inf] ;wdgtldr.Inf ;---------------------------------------------------------------; [Strings] strWidgetSourceDiskName = "Cypress USB Drivers" ;The string above and the strings below should be modified to meet your needs Cypress="Cypress Semiconductor" USBVID_0547&PID_1006.DeviceDesc="Using widget.inf for EZ-Loader before ReNumeration (wdgtldr.sys)" USBVID_0547&PID_1007.DeviceDesc="Cypress Widget afterReNumeration (ezusb.sys)" EZUSB.SvcDesc="Cypress General Purpose USB Driver (ezusb.sys)" WIDGET.SvcDesc="Cypress General Purpose USB Driver w/ Widget Loader (wdgtldr.sys)" ;The Windows DDK provides a chkinf tool that can be used to check your inf for errors. ;The chkinf tools requires Perl which can be downloaded, at the time of publication, ;at http://www.activestate.com/Products/Download/Download.plex?id=ActivePerl ;end of widget inf file [编辑 - 12/27/04 by Ng_MicHeAl] |
|
沙发#
发布于:2004-12-29 09:41
to cahwlx1982:
谢谢告诉贴子的信息,还有我用的是cy7c64613,用b4是按照手册上说的。 to dalaka: dicon#和D+之间有1。5k得电阻,wakeup#与3。3V之间串10K,与GND之间有10K。其他的reserved都是按照cy7c64613得pin table中得连接的。 |
|
板凳#
发布于:2004-12-28 18:37
我看了好多RESERVED引脚都接10k上拉
|
|
地板#
发布于:2004-12-28 18:28
BKPT PSEN#没关系
DISCON#接对了吗?串1.5接D+,好像除了这个脚跟其他没啥关系了。 WAKEUP接1k上拉试试 我才做了一块68013的板子,没用的脚都浮空,也没事。 |
|
地下室#
发布于:2004-12-28 17:43
TO:楼主: 楼主用的正是fx芯片,用b4是正理。 |
|
5楼#
发布于:2004-12-28 16:47
TO:楼主:
那个帖子的名字是:“EZ-Loader固件装载驱动程序 ”,是一个叫做“lzyuer”发的帖子! 另外,一开始没有注意你的一个错误,你看文档的时候,没有认真仔细的看,因为那个文档,我也看过,那是一个包括FX和FX2两个内容的文档,而你用的是CY7C68013,那么你要看的内容应该是FX2那一部分,但是文档中写的是“C0 47 05 04 10 01 00 00”,而你用的是“B4”那是FX的内容!不相信的话,你可以仔细看看你手头上的技术手册,也就是那个460多页资料!只有“CO―LOADER”和“C2-LOADER”两种方式!而你用“B4”可以枚举到原因,我个人认为是:因为在描述符定义了两套描述符,就是高速和全速!所以也许就是这样原因才使你用“B4”可以得到一些信息! |
|
6楼#
发布于:2004-12-28 16:19
我看了我的设计(不知道是第几次了),
我的设计中,PESN#,BKPT浮空,可以么?一些没有用到的复用口都是 浮空的。 那位帮忙~~~~~~~~~~~ |
|
7楼#
发布于:2004-12-28 13:24
:(,fx片子我没用过啊,一点经验都没有。你是照着开发板的sch做的吗?有的脚最好不要悬空,需要拉高或拉低。
|
|
8楼#
发布于:2004-12-28 13:13
能否简单地说一下,那几个引脚对于重枚举来说是关键的?
|
|
9楼#
发布于:2004-12-28 13:10
既然你在开发板上能正确枚举出你的1006,1007设备,并且能正确传输数据,inf和驱动应该都是对的,这个不必考虑了。还是看看板子本身有什么问题。
|
|
10楼#
发布于:2004-12-28 13:05
如果sch没有任何问题,莫非是片子焊接方面的问题?抑或片子损坏?
|
|
11楼#
发布于:2004-12-28 13:00
个人看法,firmware没有问题,板子有问题。
|
|
12楼#
发布于:2004-12-28 12:57
to dalaba:
我用你说的方法做了一下,结果是这样的: 先把开发板的vid/pid写到eeprom中,是b4 47 05 80 00 10 00, 然后重新给开发板上电,提示找到Cypress EZ-USB Development Board,然后修改firmware中得id为1002,编译产生hex,用开发板的 ezmr/download下栽,的确是重新枚举,得到Cypress EZ-USB Sample Device。在开发板上一切ok。 然后把eeprom放到我的板子上,开始是Cypress EZ-USB Development Board,然后打开ezmr,下载同样的hex,没有变化,getpipe等都不行。也就是没有再枚举。 按照你的说法,就是我的板子有问题了?事么?可是我的之前已经看了我的sch设计,个人没找出什么错误:(。痛苦阿 至于firmware我还没有按照你的说法做。 |
|
13楼#
发布于:2004-12-28 12:50
应该肯定的是你的过程都没错。
eeprom写:b4 47 05 06 10 01 00,后面两个字节是02 00?还是06 00?或者可要可不要?我不清楚,你可以试试。 firmware写:47 05 07 10。 保证搞定。 |
|
14楼#
发布于:2004-12-28 12:41
我并不会写驱动,inf也看不大懂,不过我很懒,会照葫芦画瓢,我把你的inf中看不懂的都去掉了,并且按照cypress提供的ezusbw2k.inf把你的inf改了点。
把你的softload驱动直接拷到system32\\drivers下面试试,我想没有任何问题了。请看看我改动后的文件有没有低级错误。 你对inf作出的改进和修改,鉴于我的水平的确不够,就没啥意见了。 |
|
15楼#
发布于:2004-12-28 12:35
[Version]
Signature="$CHICAGO$" Class=USB provider=%Cypress% LayoutFile=layout.inf [Manufacturer] %Cypress%=Cypress [Cypress] ; Entry point for the widget after firmware download and renumeration ; Your firmware has been download, the device has ReNumerated, now we ; want to use the EZ-USB General Purpose Device Driver. Your finished ; product should use your own unique VID - see www.usb.org %USBVID_0547&PID_1007.DeviceDesc%=EZUSB.Dev, USBVID_0547&PID_1007 ; ; Entry point for the widget before firmware download and renumeration ; This VID/PID combination will call the EZ-Loader driver and download ; your firmware. Your finished product should use your own unique VID ; see www.usb.org for additional information %USBVID_0547&PID_1006.DeviceDesc%=WIDGET.Dev, USBVID_0547&PID_1006 [PreCopySection] HKR,,NoSetupUI,,1 [DestinationDirs] EZUSB.Files.Ext = 10,System32Drivers EZUSB.Files.Inf = 10,INF WIDGET.Files.Ext = 10,System32Drivers WIDGET.Files.Inf = 10,INF [EZUSB.Dev] CopyFiles=EZUSB.Files.Ext, EZUSB.Files.Inf AddReg=EZUSB.AddReg [EZUSB.Dev.NT] AddReg=EZUSB.AddReg [EZUSB.Dev.NT.Services] Addservice = EZUSB, 0x00000002, EZUSB.AddService [EZUSB.AddService] DisplayName = %EZUSB.SvcDesc% ServiceType = 1 ; SERVICE_KERNEL_DRIVER StartType = 2 ; SERVICE_DEMAND_START ErrorControl = 1 ; SERVICE_ERROR_NORMAL ServiceBinary = %10%\\System32\\Drivers\\ezusb.sys LoadOrderGroup = Base [EZUSB.AddReg] HKR,,DevLoader,,*ntkern HKR,,NTMPDriver,,ezusb.sys [EZUSB.Files.Ext] ezusb.sys [EZUSB.Files.Inf] wdgtldr.Inf [WIDGET.Dev] CopyFiles=WIDGET.Files.Ext, WIDGET.Files.Inf AddReg=WIDGET.AddReg [WIDGET.Dev.NT] AddReg=WIDGET.AddReg [WIDGET.Dev.NT.Services] Addservice = WIDGET, 0x00000002, WIDGET.AddService [WIDGET.AddService] DisplayName = %WIDGET.SvcDesc% ServiceType = 1 ; SERVICE_KERNEL_DRIVER StartType = 2 ; SERVICE_AUTO_START ErrorControl = 1 ; SERVICE_ERROR_NORMAL ServiceBinary = %10%\\System32\\Drivers\\wdgtldr.sys LoadOrderGroup = Base [WIDGET.AddReg] HKR,,DevLoader,,*ntkern HKR,,NTMPDriver,,wdgtldr.sys [WIDGET.Files.Ext] wdgtldr.sys [WIDGET.Files.Inf] wdgtldr.Inf ;---------------------------------------------------------------; [Strings] Cypress="Cypress Semiconductor" USBVID_0547&PID_1006.DeviceDesc="Using widget.inf for EZ-Loader before ReNumeration (wdgtldr.sys)" USBVID_0547&PID_1007.DeviceDesc="Cypress Widget afterReNumeration (ezusb.sys)" EZUSB.SvcDesc="Cypress General Purpose USB Driver (ezusb.sys)" WIDGET.SvcDesc="Cypress General Purpose USB Driver w/ Widget Loader (wdgtldr.sys)" |
|
16楼#
发布于:2004-12-28 12:19
cy7c64613,是fx芯片
我去试试看,inf就麻烦了。:) |
|
17楼#
发布于:2004-12-28 12:15
你用的是cy7c64613,我没用过,是fx芯片吗?
iic文件在Cypress\\USB\\Examples\\EzUsb\\eeprom images下面,有几种情况: 1,b0 47 05 80 00 00 00 ---这是2131开发板上的eeprom内容 2,b4 47 05 80 00 01 00 02 00 3,b4 47 05 80 00 01 00 06 00--2,3是你用的片子 readme里写着:(a "B0" for EZ-USB, or a "B4" for EZ-USB FX as the first byte, the format load code) 总之 0547 0080是ezusb和ezusb fx开发板eeprom里写的vidpid。 1002是firmware中的,这个没错。 [Strings] USBVID_0547&PID_0080.DeviceDesc="Cypress EZ-USB Development Board" USBVID_0547&PID_1002.DeviceDesc="Cypress EZ-USB Sample Device" inf容我吃饭了慢慢看。 [编辑 - 12/28/04 by dalaba] |
|
18楼#
发布于:2004-12-28 11:55
to dalaba:
请问:“在eeprom中写入开发板的vidpid”,开发板的vidpid是多多少?1002是应该写在firmware中得,那么写到eeprom得是多少? 还有,能不能看看我的inf,正确么? |
|
19楼#
发布于:2004-12-28 11:14
[quote]TO:dalaba
你所描述的是CYPRESS提供的原装的开发板才是那样的,而自己做的伴是要修改VID/PID的,所以得到的结果不是你描述的那样的! 我当然知道自己做的板子是要修改vidpid的,枚举出来的设备不是开发板描述的那样,我的建议这不是为了让你证明一下你的板子和firmware是不是都正确吗? 如果板子和firmware都正确,再把eeprom和firmware里的vidpid换成你的inf里的vidpid,如果你的inf没错的话,eeprom里的vidpid必定枚举出wdgtldr.sys,firmware里的vidpid再枚举出ezusb.sys。 这样都不行的话就无话可说了。去庙里烧拄香没准管用。 :) |
|
上一页
下一页