### FX2 USB写固件驱动操作指南 #### 一、概述 FX2是Cypress公司生产的一款高性能USB控制器芯片,型号为Cy7c68013。它提供了丰富的功能和灵活的操作模式,广泛应用于各种USB接口设备的设计中。本文档旨在指导用户如何通过FX2 USB写固件驱动进行操作,包括固件程序的编写、编译、下载及驱动程序的编写等内容。 #### 二、关键资源与工具介绍 1. **Cy7c68013 器件手册**:详细介绍FX2芯片的基本特性和使用方法。 2. **技术参考手册 (EZ-USB_FX2_TRM_version2-2)**:提供FX2芯片的技术细节和编程指南。 3. **EZ-USB Control Panel**:一款USB调试软件,支持下载USB程序(即固件程序)、烧写EEPROM等功能。 4. **Keil uVision5 (Keil51)**:FX2固件程序的开发环境,用于编译生成下载所需的`.Hex`文件。 5. **WinDriver**:驱动编写工具,能自动生成`.INF`文件,并提供用户程序接口。 6. **Visual C++**:用户程序的编译器,用于开发上层应用软件。 7. **WIN2KDDK (Windows Driver Development Kit)**:生成自动下载固件程序的工具。 #### 三、固件程序编写 FX2支持多种操作模式,本文以**SlaveFifo模式**为例,介绍固件程序的编写过程。 1. **修改`bulksrc.c`文件** - 将`void TD_Poll(void)`函数内容全部注释掉。 - 修改`void TD_Init(void)`函数中一些寄存器配置的值,主要包括: - `IFCONFIG=0x43`:配置FX2为SlaveFifo模式。 - `FIFORESET=0x80`:重置所有Fifo。 - `PINFLAGSAB=0xF7`:设置FlagB表示EP8(EndPoint8FIFO)的Full信号。 - `PINFLAGSCD=0x08`:设置FlagC表示EP2(EndPoint2FIFO)的Empty信号。 - `EP8FIFOCFG=0x0D`,`EP8CFG=0xE0`:设置EP8的工作模式(AUTOIN)。 - `EP2CFG=0xA2`,`EP2FIFOCFG=0x11`:设置EP2的工作模式(AUTOOUT)。 2. **修改`dscr.a51`文件** - 调整`VID`(Vendor ID)和`PID`(Product ID)为自己希望的值,避免与FX2默认值冲突。 - 修改终端数目为2(Number of endpoints),并注释掉不用的端点。 - 对于EndPoint描述部分,可以调整最大包长度(Maximum packet size)。同时,注意分别修改高速模式和全速模式的描述。 #### 四、硬件逻辑实现 在SlaveFifo模式下,FX2相当于拥有共享数据总线的两个FIFO。具体实现需配置相关寄存器和控制引脚: - 当`FIFOADR=3`时,选通EP8,此时Empty和Full指示EP8的状态,FD为输入模式。 - 当`FIFOADR=0`时,选通EP2,此时Empty和Full指示EP2的状态,FD为输出模式。 - 另外还需确保某些引脚被拉至固定电平: - `assign usb_pa7_fd_slcs=1'b0;` - `assign usb_pa2_sloe=1'b0;` - `assign usb_wakeup=1'b1;` - `assign usb_pa3_wu2=1'b1;` - `assign usb_pa0_int0=1'b1;` - `assign usb_pa1_int1=1'b1;` #### 五、用户驱动编写 1. **使用WinDriver自动生成用户驱动**:当WinDriver识别到USB设备(VID、PID与固件中定义的一致)时,可以根据提示生成用户驱动(如`user.inf`)以及应用程序相关的USB打开、关闭、读写等函数供用户调用。 2. **自动下载程序编写**: - 在DOS环境下运行`hex2c`命令,将固件文件转换为C语言源文件。 - 替换`ezloader`目录下的`firmware.c`文件中的内容为转换后的C语言源文件内容。 - 修改`source`文件中的`TARGETNAME`变量名为所需生成驱动文件的名称。 - 如果使用的是2000DDK或XPDDK,需要移除`source`文件中特定注释符(删除`#`)。 通过上述步骤,用户可以成功完成FX2 USB写固件驱动的操作,实现固件程序的下载与驱动程序的编写,从而开发出符合需求的USB设备。
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助