原创 EZ-USB FX2(CY7C68013)加电复位过程分析

2010-11-17 12:23 2359 9 10 分类: 通信
当EZ-USB FX2加电复位(或人工按钮复位)后:
1、FX2内核(Core)被初始化,所有FX2寄存器被初始化。
2、寄存器CPUCS.0=1,CPU保持复位状态,CPU CLK="12MHz"。
3、寄存器USBCS.1(Renum)=0,使用FX2内核的缺省USB设备配置(PID=0x04B4,VID=0x8613),FX2内核处理EP0上的所以设备请求(来自主机)。
4、所以中断被关闭,所以I/O端点设置为普通I/O方式。
5、如果FX2没有检测到外部串行EEPROM,或者有EEPROM,但其首字节不是)0xC0或0xC2,当EA=1时转第8步,否则使用FX2内核缺省的USB描述符(包括PID、VID和DID等),此时FX2等待从主机(Host)下载USB固件至FX2片内RAM。
6、如果检测到EEPROM首字节是0xC0,则使用EEPROM中第1~7字节的PID、VID和DID,但描述符还是FX2内核的缺省值,FX2内核等待从主机下载固件。当主机通过EP0将USB固件下载至片内RAM后,最后一帧写0x00至CPUCS寄存器,是FX2的8051CPU脱离复位状态,开始运行固件程序,并对USB设备进行一次“重枚举”,重枚举后使用固件中的USB描述符及PID和VID等(是在“dscr.a51”中定义的,不是EEPROM的第1~7字节!),同时Renum位置“1”,由(用户)固件程序接管来自主机的所有EP0的设备请求。
7、如果检测到EEPROM的首字节是0xC2,则由FX2内核引导程序将EEPROM中的固件代码直接读入片内RAM中,由于这种装入不需要与主机通信,因此不需提供PID、VID等。固件装完后,内核引导程序最后写0x00至CPUCS寄存器,余下的操作与第6步相同。
8、当EA=1时,表示固件程序、设备描述符、PID和VID等均存在外部(并行)FLASH/EEPROM中 - 类似8051的外部程序存储器,固件直接在外部存储器中运行,不用装入片内RAM。由于不用装载固件,FX2内核直接将CPU从复位状态释放,即马上将CPUCS.0清“0”。
注意:FX2的固件(即用户程序)不能写CPUCS.0,因固件由CPU(8051)运行,CPU自己不能复位自己的!但在加电复位、固件加载过程中,FX2内核(不是8051CPU程序)是可以对CPUCS.0置“1”或清“0”的;此外,主机也可以对CPUCS.0进行操作,以便随时对FX2内部8051CPU进行复位,这是通过EP0发如下请求来实现的:
bmRequestType=0x40;//用户自定义请求,OUT方式
bRequest=0xA0;//固件装载/数据装载
wValue=0xE600;//CPUCS寄存器地址
wLength=1;//数据长度
然后将“输入/出缓冲区”数据设置为0x01或0x00就可以了。

文章评论1条评论)

登录后参与讨论

用户1729256 2013-12-24 20:40

确实,,不注释谁愿意看大段大段的代码

用户377235 2013-7-1 19:32

大侠你好,请问怎么给EZ-USB FX2安装驱动程序啊
相关推荐阅读
用户36690 2014-09-29 09:36
高速LVDS接口信号完整性处理实例
  一、系统介绍 EMCCD相机由图像传感器、驱动电路、FPGA(Spartan-3)、LVDS接口和电源等组成。LVDS输出接口使用2片DS92LV1021,每片实现10bit并行数据到...
用户36690 2014-08-20 13:58
关于Xilinx FPGA JTAG下载时菊花链路中的芯片数量
    当一个系统中含有多片(2片以上)Xilinx FPGA、CPLD或PROM(FLASH)时,可采用单一JTAG口以菊花链(Daisy Chain)形式将所有芯片串联起来实现下载编程...
用户36690 2014-08-12 07:41
NiosII程序编译时出现onchip_mem不够问题及解决方法
    开发Altera Nios II软件可使用Nios II IDE或 Nios II Software Build Tools for Eclipse(即:Nios II SBT f...
用户36690 2014-08-11 15:06
Altera QuartusII及Cyclone IV E使用经验
  1、仅C8L、IC8L、C9L使用1.0V核电压(VCCINT),其它速度的均使用1.2V核电压。 2、对于作为LVDS传输的Bank必须接2.5V的VCCIO,参考数据手册表1-20...
用户36690 2014-08-07 14:35
Nios II IDE 与 Nios II SBT for Eclipse的区别
  1、Nios II IDE即Nios II Integrated Development Environment(Nios II 集成开发环境),Altera网站是这样介绍的: (ht...
用户36690 2014-08-07 14:34
Quratus II中 Nios II 硬件设计工具SOPC Builder与Qsys的区别
  1、 SOPC(System On a Programmable Chip.)即可编程片上系统,SOPC Builder是Quartus II中传统的Nios II 硬件设计工具,可以灵活...
我要评论
1
9
关闭 站长推荐上一条 /2 下一条