1.
元器件 CYPRESS 68013A:支持USB 2.0协议,带增强型8051单片机,时钟频率48Mhz。支持串口通讯。
2.
文档
cy7c68013.pdf
| 68013外设手册
| cy7c68013_5.pdf
| 68013外设手册
| CY3684_A_SCH.PDF
| 68013A外围电路图
| FX2 TechRefManual.pdf
| EZUSB-FX2技术手册
| fx2_to_fx2lp.pdf
| FX2和FX2LP的区别
| CYAPI.PDF
| CYAPI手册 高级类库
| CYUSB.PDF
| CYUSB手册 底层API
|
|
|
3.
开发环境
3.1
Keil C 7.0编译器
3.2
C++ Builder 6.0
3.3
VC++ 6.0
3.4
EEPROM烧写器
3.5
68013A的开发包(含CYPRESS CONSOLE、CYUSB.SYS、例程等)
3.6
BUS HOUND 5.0
4.
开发流程
4.1
硬件程序编写
1)根据CYPRESS的示例程序建立工程框架,一般由FW.C PERIPH.C和定义寄存器的几个头文件组成。
2)FW.C负责了设备连接、重枚举、设备初始化等过程
3)PERIPH.C负责响应各种中断事件。
4)dscr.a51文件定义了USB设备握手时需要的各种描述符
5)FX2REGS.H定义了USB中所有的寄存器
6)FX2.H主要定义了各种二级中断向量和描述符的数据结构
7)编译后的二进制代码和工程同名,扩展名为HEX。
8) 相应的头文件和类库在KEIL C的lib和inc文件夹内,需在项目设置中设置路径。
4.2
硬件程序烧录
1)因为本产品要求将二进制代码和硬件PID/VID烧录在EEPROM,而不是使用CYPRESS推荐的在线下载方式,所以外部采用了8K的EEPROM。上电后68013A会将EEPROM中的数据和程序加载到RAM中运行。
2)HEX文件只是68013A上8051的程序代码,还要加上PID/VID等信息才能正确运行,CYPRESS在开发包中提供了HEX2BIN.EXE这个工具,可以根据HEX生成完备的IIC文件,将此文件烧录到EEPROM上即可。
3)HEX2BIN.EXE的使用方法如下:
将XXX.HEX文件拷贝到HEX2BIN.EXE所在目录,打开CMD,按如下格式输入:
hex2bix -i -o xxx.iic xxx.hex -f 0xC2 -v 0x1234 -p 0x1234
-i
表示输出文件,也就是IIC文件
-o
表示输入文件,也就是HEX文件
-f
表示68013A发送PID/VID的方式,这里为C0,即从EEPROM上读取。
-v
表示VID的BCD码,开发阶段使用1234
-p
表示PID的BCD码,开发阶段使用1234
4)将生成的IIC文件用烧写器烧录到EEPROM上,本项目使用的是深圳思泰佳电子公司的NSP通用烧写器,此烧写器不支持IIC类型,选择BIN类型可替代。
4.3
驱动的识别
1)将EEPROM连到68013A上后,接上USB线,上电。计算机提示找到新硬件,要求安装驱动。
2)CYPRESS针对68013A提供了全新的驱动程序CYUSB.SYS。这个驱动使用了新的API,所以上位机的编写上和旧的方式完全不同。底层的IOCTL控制字的定义也完全不同,详见CYAPI.PDF和CYUSB.PDF。
3)安装驱动之前,必须先根据VID/PID正确编辑CYUSB.INF文件,在文件中添加自己的PID/VID代码和设备描述,连接设备时,将根据硬件上的PID/VID查找INF文件中对应的驱动,如果找不到,在设备管理器中将显示“68013 EEPROM MISSING”的字样。
4)详细的INF配置方法参考CYUSB.PDF PART1/PART2/PART3。这里不在赘述。
5)安装驱动时候找到修改好的CYUSB.INF文件,驱动将被正确安装,此时设备可以正常使用。
4.4
测试过程
1)被正确识别的设备可以在CYPRESS CONSOLE上看到设备信息。如图:
2)CYPRESS CONSOLE的具体使用方法请参考CyConsole.chm。
3)要注意的是,除EP0/EP1外,当其他端点Max Pkt Size大小为64字节时,表示工作在USB 1.1模式,有可能是软件的原因,也有可能是外围上拉电阻的问题。开发中要特别注意。
5.
推荐开发流程
5.1
看本介绍USB 2.0协议的书,对USB 2.0协议有所了解。推荐《USB 2.0原理与工程开发》
5.2
看CYUSB.PDF文档。了解驱动安装方法。
5.3
看KEIL C51的书籍,熟悉C51的编程方法,熟悉KEIL C编程环境。
5.4
看CYPRESS提供的例程,了解68013A编程框架。推荐《EZ-USB 2100系列单片机原理、编程及应用》(基本框架类似,部分寄存器定义不同)。
5.5
对照USB 2.0协议,编写dscr.a51文件,配置各种描述符。
5.6
结合FX2 TechRefManual.pdf,研读FW.C、PERIPH.C、FX2REGS.H、FX2.H,了解寄存器的定义。
5.7
根据系统需求编写响应代码,有开发板时,根据开发版上的LED来测试程序正确与否。
5.8
根据CYAPI.PDF CYUSB.PDF编写上位机通讯程序。
同步读取数据方法
XferData();
异步读取数据方法
BeginDataXfer()/WaitForXfer()/FinishDataXfer();
5.9
调试程序。
5.10
编写其他8051上的程序,并继续调试。
6.
发布时应提供的文件
1)CYUSB.SYS
2)CYUSB.INF
3)XXX.IIC |