阅读:6341回复:38
USB2.0(CY68013)开发心得--硬件调试(待续)
经过几次调试CY7C68013的板子,我总结出几点经验以供正在调试68013或试图使用该芯片的朋友参考,也欢迎大家一起讨论。
Cypress公司的usb芯片具有开发简单,文档和例子齐全,驱动不要自己写的特点,非常适合开发周期紧者使用。 对于68013其外围电路主要可以参考该开发包中的电路图,如果你没有买可以之间去公司网站上下。 我使用的是56管脚的因为它已经完全可以满足一般简单数据传输的要求了,它的关键管脚有ifclk,wakeup,reset,d+,d-和电源,地。只要他们对了,主机就可以找到芯片并识别出来。 ifclk,在一般情况下我们使用usb内部的时钟,它可以通过一个大电阻上拉到3.3V.当然你也可以同时接到cpld或fpga,如果你想使用外部时钟时,但是要注意它只能接5-48Mhz的时钟。所以在使用速度可调的FIFO读写时就可能存在可调范围不大的问题,这可以通过同步和异步解决,在同步时它是5-48Mhz,在异步时x-20Mhz(其中x可以很小),在我们的项目中就实现了200khz到48mhz的速度读写FIFO。 wakeup,用来唤醒沉睡中的USB,一般情况下我们也是用100k的电阻上拉到3.3v。只有在你非常注意功耗时才用到。 reset,进行复位,免去了反复插拔设备的麻烦,但是前提是你使用总线供电模式。要注意在reset接地时要保证它与3.3v之间还有一个大电阻,以免直接电源与地相接。 d+,d-是与主机通讯的数据线,当USB设备插上主机时,d+和d-上有一个压差,主机就会发现外围设备,索求pid和vid,载入相应驱动。这儿可能出现两个问题:1、主机发现不了外设2、主机可以发现外设但是不能识别,在usb图标上是一个问号。在第一种情况下主要是d+和d-的问题,因为只要保证接口的4根线是vcc,gnd,d+,d-按要求变即使真没有外设,主机也可以检测到外设,所以如果检测不到,很可能有线接反了;在第二种情况下,原因就比较多了,a,d+,d-线太长了,太细,拐弯太多以致数据出现传输错误,vid和pid无法正确传送,这时可能出现有时可以识别,有时又不能识别。b,由于上面的几个管脚没接好,USB芯片没有正常工作。 |
|
最新喜欢:duyuan... |
沙发#
发布于:2003-07-23 10:20
鼓励,看看你的待续能不能说些真正关键的吧!
|
|
板凳#
发布于:2003-07-23 10:24
不知道你能否在固件开发和上位机程序开发的经验中说出一些关键的东西,期待中。
|
|
地板#
发布于:2003-07-23 10:24
期待! :)
|
|
|
地下室#
发布于:2003-07-23 16:37
hemu你好:
我都是用CY7C68013-128晶片开发,但我的驱动程序老是装不上去,请问这是为何? sample device 和FX2 development board 都可以装上但就不能正常工作,出现感叹号!!!! 请问下是佑问题???? |
|
5楼#
发布于:2003-07-23 19:04
hemu你好: 这好办,你需要手动copy *.sys文件,你的inf系统已经找到了,但是加载不了驱动,所以会出现能找到设备描述名字,但是加载不了设备,你时一下 :D |
|
|
6楼#
发布于:2003-07-23 19:45
如kilroy_guo所说,不知你是否在FX2 development board 时也是感叹号,如果是的话,应该你的ezusb。sys和ezmon。sys没进入系统DRIVER目录。
|
|
7楼#
发布于:2003-07-23 20:43
hemu老兄终于开始总结了,不过还是得向六楼的猫大虾学习,只做bulk,不做iso和驱动方面的工作毕竟只是普通应用,不出几个月这点技术传遍全中国了,呵呵笑话
|
|
8楼#
发布于:2003-07-24 08:04
好像没只是COPY一下系统文件那么简单吧,小弟以前试过了,不行。是其他方面的原因。
|
|
9楼#
发布于:2003-07-24 09:38
不是copy甘简单,我已经把ezusbw2k.inf copy到 winnt\\inf 下,把 ezusb.sys ezmon.sys copy 到winnt\\system32\\drivers下 做了N次了.都系不行!!!! development board 都一样.
|
|
10楼#
发布于:2003-07-24 12:13
不是copy甘简单,我已经把ezusbw2k.inf copy到 winnt\\inf 下,把 ezusb.sys ezmon.sys copy 到winnt\\system32\\drivers下 做了N次了.都系不行!!!! development board 都一样. 这么惨,我可是行的诶。 hemu老兄终于开始总结了,不过还是得向六楼的猫大虾学习,只做bulk,不做iso和驱动方面的工作毕竟只是普通应用,不出几个月这点技术传遍全中国了,呵呵笑话 :o惭愧 |
|
|
11楼#
发布于:2003-07-24 13:46
不是copy甘简单,我已经把ezusbw2k.inf copy到 winnt\\inf 下,把 ezusb.sys ezmon.sys copy 到winnt\\system32\\drivers下 做了N次了.都系不行!!!! development board 都一样. sys和inf都不少的话,那就是你的vid/pid没有和inf中所描述的一致 因此,系统只看到inf找不到驱动,也能出现你所得情况,有描述有 感叹号。你检查一下,你有没有连flash,eeprom,连的话,你看看你有没有写c0/c2 vid/pid进去。 基本上就是这些原因,无它。 :D |
|
|
12楼#
发布于:2003-07-24 13:52
同意!总结的已经很全了,就这么夺的可能性了。
|
|
13楼#
发布于:2003-07-24 14:31
不知你在拷贝文件的同时有没有删掉原来的东西,包括生成的oem文件应该有很多的,你要清理干净,然后再插上硬件,可以发现新硬件对话框,这样就差不多了。
|
|
14楼#
发布于:2003-07-24 14:59
hemu老兄,能不能问一下68013的GPIF接口和它的一般I/O到底有什么区别啊,小弟做的是一个用USB连接FPGA与PC的冬冬,不知道应该用哪个接口阿?你用的是哪个呢?
|
|
15楼#
发布于:2003-07-25 10:48
我想fifo于gpif的区别是fifo传输类型比较固定,而gpif比较灵活,但是上手罗嗦。
|
|
16楼#
发布于:2003-07-25 10:52
“hemu老兄终于开始总结了,不过还是得向六楼的猫大虾学习,只做bulk,不做iso和驱动方面的工作毕竟只是普通应用”
我也想写iso方面的,但是它很难入手阿,特别是驱动,我好像看到说我的通用驱动只适用bulk传输。很希望kilroy_guo针对此作一些介绍。 |
|
17楼#
发布于:2003-07-25 12:36
同意,帮忙顶一下,以资鼓励!!!
|
|
18楼#
发布于:2003-07-25 15:05
请问hemu:
我现在调试遇到了问题,请教大家,希望能给予帮助。 现在我的情况是这样的:我自己做的电路板用驱动程序能够把固件下载下去,但是在驱动程序发出EZ_usbreset8051(0)命令后,下载到RAM的固件不能运行。但是如果这个过用于开发板,就完全没有问题。并且我们测到开发板的CLKOUT引脚输出是48MHZ,而我的电路板的CLKOUT引脚输出是12MHZ.所以我怀疑是我的电路板上的8051没有起振(因为我在固件初始化时,把8051的频率设成48MHZ,所以我的扳子的CLKOUT引脚也应该输出48MHZ) 麻烦尽快帮忙解决,可以给我发邮件:zqybgt@sina.com 或是给我发帖子,谢谢! |
|
19楼#
发布于:2003-07-25 23:00
不知你的下载设置好了么?
“ 在硬件电路没有问题时可以考虑下载固件例子(ezbulk_asm),要注意开发包中其他例子是针对开发板的,而开发板是有片外ram的,所以它实际是下到片外ram去的,而我们自己的板子是没有的片外ram的,所以要在Options for Target -BL51 中的Code space 0x800 Xdata space 0x1000 ,关于这个好像在文档中没说明,当时我花了一个星期一个一个的试才发现只有ezbulk.asm与其他的配置不同。 ” |
|
上一页
下一页