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

2010-11-17 12:26 2893 20 21 分类: 消费电子

当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条评论)

登录后参与讨论

用户1478618 2010-11-17 14:26

学习了
相关推荐阅读
用户1037795 2014-09-29 14:57
高速LVDS接口信号完整性处理实例
  一、系统介绍 EMCCD相机由图像传感器、驱动电路、FPGA(Spartan-3)、LVDS接口和电源等组成。LVDS输出接口使用2片DS92LV1021,每片实现10bit并行数据到...
用户1037795 2014-08-20 14:15
关于Xilinx FPGA JTAG下载时菊花链路中的芯片数量
  当一个系统中含有多片(2片以上)Xilinx FPGA、CPLD或PROM(FLASH)时,可采用单一JTAG口以菊花链(Daisy Chain)形式将所有芯片串联起来实现下载编程,如下图...
用户1037795 2014-08-12 07:50
NiosII程序编译时出现onchip_mem不够问题及解决方法
开发Altera Nios II软件可使用Nios II IDE或 Nios II Software Build Tools for Eclipse(即:Nios II SBT for Eclip...
用户1037795 2014-08-11 15:08
Altera QuartusII及Cyclone IV E使用经验
  1、仅C8L、IC8L、C9L使用1.0V核电压(VCCINT),其它速度的均使用1.2V核电压。 2、对于作为LVDS传输的Bank必须接2.5V的VCCIO,参考数据手册表1-20...
用户1037795 2014-08-07 14:39
Altera FPGA带NiosII内核程序的JTAG下载方法总结
  1、对于Altera FPGA,含Nios II时需要下载的文件有4种:.sof 文件,.pof 文件,.jic 文件,.elf 文件。 下载文件 ...
用户1037795 2014-08-06 10:18
Quratus II中 Nios II 硬件设计工具SOPC Builder与Qsys的区别
  1、 SOPC(System On a Programmable Chip.)即可编程片上系统,SOPC Builder是Quartus II中传统的Nios II 硬件设计工具,可以灵活...
我要评论
1
20
关闭 站长推荐上一条 /2 下一条