cy7c68013 usb 开发经验

来源:互联网 发布:淘宝网页版登录电脑版 编辑:程序博客网 时间:2024/06/02 06:57

硬件设计

在布线前一定要阅读一下文档guide_to_successful_ez_usb_fx2lp_tm__and_ez_usb_fx1_tm__hardware_design_and_debug___an15456_12.pdf。这篇文档是一篇硬件设计和调试指南,列举了电路工作不正常可能出现的原因。

该文硬件CheckList章节如下:(原稿是英文,我按自己的理解进行了翻译)

(1)所有的电源引脚(AVCC、VCC)必须连接到3.0V-3.6V。

(2)VCC上升时间不能太快,至少需要200uS。一般情况下,电源端有大容量滤波电容(比如100uF),可以保证这一点,但是有些电路滤波电容很小(如0.1uF),则可能不满足这个要求。不过我已经做过试验,当VCC上升时间为100uS时,电路也可以正常工作。

(3)当使用晶体振荡器时,RESET复位信号至少持续5ms。如果使用外部振荡源,则RESET信号至少持续200uS。

(4)24M晶振(±100 ppm)负载电容选择12pF。

(5) RESERVED 管脚必须接地。从字面理解,此管脚是保留引脚,我误认为可以悬空不接。但是如果此管脚不接地,则芯片会进入测试模式。希望大家不要再范跟我一样的错误。

(6)SCL、SDA口线必须有上拉电阻,推荐是2.2K欧姆。即使不使用串行EEPROM,也需要接电阻。

(7)如果没有使用外部ROM(针对有外部总线的型号),则EA脚必须接地。如果EA是高,则CPU会从外部ROM取指运行。

(8)WAKEUP 管脚必须接高或者低,不能让其悬空。如果不需要USB设备进入挂起模式(suspend ),则可以将此管脚接地。


电路调试

如果电路工作正常,则CLKOUT 管脚会输出12MHz方波。大家可以通过测量这个管脚的信号进行故障定位。

(1) 如果CLKOUT没有输出方波,则检查:AVCC/VCC管脚是否连接;VCC上升时间;晶体振荡器是否起振;复位信号持续时间是否足够长;RESERVED 管脚是否接地。

(2)如果上电时CLKOUT有方波输出但很快就消失了,则检查:WAKEUP关键是否连接正确;USB D+、D-数据线线序是否正确;晶体振荡器频率偏差太大(可测量CLKOUT方波频率,应该满足12 MHz +/- 100 ppm)。

(3)CLKOUT持续有12M方波,但是windows枚举设备失败。如果WAKEUP接地(即禁止挂起模式),则请再次检查硬件CheckList中的没一点是否满足要求。如果WAKEUP接高,则检查SCL、SDA是否有上拉电阻;EA是否接地。

(4)CLKOUT输出48MHz方波。可能为同类设备安装了其它类型的驱动程序,请删除驱动后重新安装。

删除USB驱动的方法:

(a)打开Regedit,  找到 HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Enum/USB 文件夹,删除所有VID、PID相符的项(如“Vid_04b4&Pid_8613”)

(b)在windows/inf 文件下,找到oemxx.inf 文件 (xx 是两位数字),该文件包含相同的pid、vid。可以使用UltraEdit 进行全文搜索关键字来定位具体的文件,找到后删除它。


原创粉丝点击