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)。
Examples8051 固件示例,包含 bulkloop、dev_io、vend_ax 等,用于演示不同功能。
Target固件框架源代码,包含 fw.c、Periph.c、Dscr.a51 等核心文件,以及 EZUSB.LIB 库。
UtilWindows 工具源代码,需 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 示例驱动,用于此目的。

自定义步骤

  1. 开发并调试固件:确保固件在重新枚举后使用唯一的 VID/PID。
  2. 转换固件:使用 CyScript 工具将 .HEX 固件文件转换为 .SPT 下载脚本。
  3. 测试脚本:在 CyConsole 中使用 “Play Script” 按钮测试脚本是否能正确下载固件。
  4. 复制并重命名:复制 cyload 目录,将所有文件名中的 cyload 替换为自定义名称(如 mydevice)。
  5. 编辑 INF 文件:使用文本编辑器打开 .inf 文件,将所有 cyload 替换为自定义名称,并将 yourcompany 替换为公司名。
  6. 生成唯一 GUID:使用 guidgen 工具生成一个全局唯一标识符 (GUID),替换 .inf 文件中的 SvcDesc 字段。
  7. 定制其他字符串:在 .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 的数据环回功能。