title: EZ-USB FX2LP 开发套件用户指南 original_paths: [“/工作相关/液相芯片项目相关工作文档/数据采集卡相关/IFLabs CY7C6013A/CY3684 EZ-USB FX2LP Development Kit/Dvk Users Guide.pdf”, “/工作相关/液相芯片项目相关工作文档/驱动-2019/cy68013-usb驱动部分/下位机/软件/CY3684 EZ-USB FX2LP Development Kit/CY3684 EZ-USB FX2LP Development Kit/Dvk Users Guide.pdf”] file_size: 645.31 KB total_pages: 40 author: Cypress Semiconductor processed_date: 2026-09-24 method: PDF文本提取 status: done
EZ-USB FX2LP 开发套件用户指南
© 2003 Cypress Semiconductor
概述
本指南为 EZ-USB Advanced Development Kit (DVK) 的使用手册,介绍其软件组件、固件框架、驱动程序和开发教程。DVK 专为基于 EZ-USB FX2LP 和 FX1 芯片的 USB 外设开发设计,不支持旧版 EZ-USB AN21xx、FX 和 FX2 芯片。
DVK 集成 Cypress USB Studio,包含以下核心组件:
- Cypress 通用 USB 驱动:高性能 Windows 驱动,用于与设备通信,提供二进制形式,源码需联系 Cypress 获取授权。
- Cypress USB 类库 API (CyApi):C++ 类库,简化通过通用驱动访问设备的编程,提供 Microsoft 和 Borland 版本。
- Cypress USB 控制台 (CyConsole):Windows 应用程序,用于通过通用驱动测试设备,支持通用 USB 接口和 EZ-USB 专用接口。
- Cypress GPIF 设计器:可选工具,用于图形化设计和修改 GPIF(通用可编程接口)波形描述符,以实现最高带宽。
开发套件内容结构
DVK 安装后的主要目录结构如下:
| 目录 | 说明 |
|---|---|
| Bin | 工具程序,如 cyconsole.exe (USB 控制台)、cyscript.exe (固件脚本生成)、hex2bix.exe (HEX转BIX) 等。 |
| Doc | 文档,包括本用户指南的 PDF 版本。 |
| Drivers | 驱动文件,包含 Cypress 通用 USB 驱动 (cyusb.sys) 和固件下载驱动示例 (cyload)。 |
| Examples | 8051 固件示例,包含 bulkloop、dev_io、vend_ax 等,用于演示不同功能。 |
| Target | 固件框架源代码,包含 fw.c、Periph.c、Dscr.a51 等核心文件,以及 EZUSB.LIB 库。 |
| Util | Windows 工具源代码,需 Microsoft Developer Studio 编译。 |
| Windows | 为简化首次插件,DVK 安装程序预复制了 INF 和驱动文件到 Windows 系统目录,避免用户交互。 |
固件框架 (Firmware Frameworks)
固件框架是为 EZ-USB 芯片设计的 8051 模板代码,简化了 USB 设备开发。它实现了:
- USB 标准设备请求处理
- USB 挂起和恢复管理
- 任务调度器(Co-operative Task Dispatcher)
框架通过 函数钩子 (Function Hooks) 允许用户插入自定义代码,无需修改核心逻辑。
主要钩子函数
| 类别 | 函数 | 说明 |
|---|---|---|
| 任务调度器 | TD_Init() | 初始化时调用一次,用于全局变量和设备初始化。 |
TD_Poll() | 循环调用,实现设备的主状态机。避免长时间阻塞。 | |
TD_Suspend() | 挂起前调用,返回 TRUE 允许挂起,FALSE 阻止挂起。 | |
TD_Resume() | 恢复后调用,恢复设备全功率运行。 | |
| 设备请求 | DR_GetDescriptor() | 在框架处理 Get Descriptor 请求前调用,可覆盖默认行为。 |
DR_SetInterface() | 在框架处理 Set Interface 请求前调用,用于保存新接口设置。 | |
DR_VendorCmnd() | 处理厂商自定义命令(0xA0 除外)时调用。 | |
| 中断服务 | ISR_Sudav() | Setup Data Available 中断,需设置 GotSUD 标志。 |
ISR_Ures() | USB Reset 中断,用于设备重置后的清理。 | |
ISR_Susp() | USB Suspend 中断,框架设置 Sleep 标志。 |
固件下载驱动 (Firmware Download Drivers)
EZ-USB 芯片的特色是支持通过固件下载和重新枚举(ReNumeration)动态改变设备功能。DVK 提供了 cyload 示例驱动,用于此目的。
自定义步骤
- 开发并调试固件:确保固件在重新枚举后使用唯一的 VID/PID。
- 转换固件:使用
CyScript工具将.HEX固件文件转换为.SPT下载脚本。 - 测试脚本:在 CyConsole 中使用 “Play Script” 按钮测试脚本是否能正确下载固件。
- 复制并重命名:复制
cyload目录,将所有文件名中的cyload替换为自定义名称(如mydevice)。 - 编辑 INF 文件:使用文本编辑器打开
.inf文件,将所有cyload替换为自定义名称,并将yourcompany替换为公司名。 - 生成唯一 GUID:使用
guidgen工具生成一个全局唯一标识符 (GUID),替换.inf文件中的SvcDesc字段。 - 定制其他字符串:在
.inf文件的[Strings]部分,定制设备描述等字符串,确保唯一性。
重要提示:测试和调试驱动安装应在干净的系统上进行,避免因 INF 文件错误导致后续安装失败。建议使用分区克隆软件(如 Norton Ghost)备份干净系统。
教程
指南包含多个实用教程:
- 5.1 验证操作:使用 CyConsole 发送 “Get Device Descriptor” 命令,验证设备是否被正确识别。
- 5.2 运行 dev_io 示例:通过 CyConsole 下载
dev_io.hex,观察开发板 LED 亮起,并通过 F2/F3 按钮计数,验证固件运行。 - 5.3 调试 dev_io 示例:使用 Keil uVision2 IDE 通过串口连接调试器,进行单步执行、设置断点等调试操作。
- 5.4 重建 dev_io 示例:删除
.hex文件,使用 Keil IDE 重新编译生成新的固件。 - 5.5 设置调试断点:在 Keil IDE 中为
dev_io.c的按键处理代码设置断点,验证程序在按下按钮时能正确暂停。 - 5.6 运行 bulkloop 示例:使用 CyConsole 进行批量数据传输测试,验证 EP2OUT 到 EP6IN 和 EP4OUT 到 EP8IN 的数据环回功能。