Ng_MicHeAl
驱动牛犊
驱动牛犊
  • 注册日期2004-06-15
  • 最后登录2006-05-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:3559回复:31

问一个也许很老的问题(枚举)100分――――在线等待,当场给分

楼主#
更多 发布于:2004-12-27 11:37
根据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]
Ng_MicHeAl
驱动牛犊
驱动牛犊
  • 注册日期2004-06-15
  • 最后登录2006-05-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于: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中得连接的。
dalaba
驱动小牛
驱动小牛
  • 注册日期2001-09-12
  • 最后登录2007-06-08
  • 粉丝0
  • 关注0
  • 积分84分
  • 威望11点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-12-28 18:37
我看了好多RESERVED引脚都接10k上拉
dalaba
驱动小牛
驱动小牛
  • 注册日期2001-09-12
  • 最后登录2007-06-08
  • 粉丝0
  • 关注0
  • 积分84分
  • 威望11点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-12-28 18:28
BKPT PSEN#没关系
DISCON#接对了吗?串1.5接D+,好像除了这个脚跟其他没啥关系了。
WAKEUP接1k上拉试试

我才做了一块68013的板子,没用的脚都浮空,也没事。
dalaba
驱动小牛
驱动小牛
  • 注册日期2001-09-12
  • 最后登录2007-06-08
  • 粉丝0
  • 关注0
  • 积分84分
  • 威望11点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-12-28 17:43
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”可以得到一些信息!
 


楼主用的正是fx芯片,用b4是正理。
cahwlx1982
驱动小牛
驱动小牛
  • 注册日期2004-08-16
  • 最后登录2006-06-17
  • 粉丝0
  • 关注0
  • 积分31分
  • 威望4点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
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”可以得到一些信息!
Ng_MicHeAl
驱动牛犊
驱动牛犊
  • 注册日期2004-06-15
  • 最后登录2006-05-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-12-28 16:19
我看了我的设计(不知道是第几次了),

我的设计中,PESN#,BKPT浮空,可以么?一些没有用到的复用口都是

浮空的。

那位帮忙~~~~~~~~~~~
dalaba
驱动小牛
驱动小牛
  • 注册日期2001-09-12
  • 最后登录2007-06-08
  • 粉丝0
  • 关注0
  • 积分84分
  • 威望11点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-12-28 13:24
 :(,fx片子我没用过啊,一点经验都没有。你是照着开发板的sch做的吗?有的脚最好不要悬空,需要拉高或拉低。
Ng_MicHeAl
驱动牛犊
驱动牛犊
  • 注册日期2004-06-15
  • 最后登录2006-05-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-12-28 13:13
能否简单地说一下,那几个引脚对于重枚举来说是关键的?

dalaba
驱动小牛
驱动小牛
  • 注册日期2001-09-12
  • 最后登录2007-06-08
  • 粉丝0
  • 关注0
  • 积分84分
  • 威望11点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-12-28 13:10
既然你在开发板上能正确枚举出你的1006,1007设备,并且能正确传输数据,inf和驱动应该都是对的,这个不必考虑了。还是看看板子本身有什么问题。
dalaba
驱动小牛
驱动小牛
  • 注册日期2001-09-12
  • 最后登录2007-06-08
  • 粉丝0
  • 关注0
  • 积分84分
  • 威望11点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2004-12-28 13:05
如果sch没有任何问题,莫非是片子焊接方面的问题?抑或片子损坏?
dalaba
驱动小牛
驱动小牛
  • 注册日期2001-09-12
  • 最后登录2007-06-08
  • 粉丝0
  • 关注0
  • 积分84分
  • 威望11点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2004-12-28 13:00
个人看法,firmware没有问题,板子有问题。
Ng_MicHeAl
驱动牛犊
驱动牛犊
  • 注册日期2004-06-15
  • 最后登录2006-05-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
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我还没有按照你的说法做。
dalaba
驱动小牛
驱动小牛
  • 注册日期2001-09-12
  • 最后登录2007-06-08
  • 粉丝0
  • 关注0
  • 积分84分
  • 威望11点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2004-12-28 12:50
应该肯定的是你的过程都没错。

eeprom写:b4 47 05 06 10 01 00,后面两个字节是02 00?还是06 00?或者可要可不要?我不清楚,你可以试试。
firmware写:47 05 07 10。

保证搞定。
dalaba
驱动小牛
驱动小牛
  • 注册日期2001-09-12
  • 最后登录2007-06-08
  • 粉丝0
  • 关注0
  • 积分84分
  • 威望11点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2004-12-28 12:41
我并不会写驱动,inf也看不大懂,不过我很懒,会照葫芦画瓢,我把你的inf中看不懂的都去掉了,并且按照cypress提供的ezusbw2k.inf把你的inf改了点。

把你的softload驱动直接拷到system32\\drivers下面试试,我想没有任何问题了。请看看我改动后的文件有没有低级错误。

你对inf作出的改进和修改,鉴于我的水平的确不够,就没啥意见了。
dalaba
驱动小牛
驱动小牛
  • 注册日期2001-09-12
  • 最后登录2007-06-08
  • 粉丝0
  • 关注0
  • 积分84分
  • 威望11点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
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)"
Ng_MicHeAl
驱动牛犊
驱动牛犊
  • 注册日期2004-06-15
  • 最后登录2006-05-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2004-12-28 12:19
cy7c64613,是fx芯片

我去试试看,inf就麻烦了。:)

dalaba
驱动小牛
驱动小牛
  • 注册日期2001-09-12
  • 最后登录2007-06-08
  • 粉丝0
  • 关注0
  • 积分84分
  • 威望11点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
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]
Ng_MicHeAl
驱动牛犊
驱动牛犊
  • 注册日期2004-06-15
  • 最后登录2006-05-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2004-12-28 11:55
to dalaba:
请问:“在eeprom中写入开发板的vidpid”,开发板的vidpid是多多少?1002是应该写在firmware中得,那么写到eeprom得是多少?

还有,能不能看看我的inf,正确么?
dalaba
驱动小牛
驱动小牛
  • 注册日期2001-09-12
  • 最后登录2007-06-08
  • 粉丝0
  • 关注0
  • 积分84分
  • 威望11点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
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。

这样都不行的话就无话可说了。去庙里烧拄香没准管用。 :)
上一页
游客

返回顶部