I want to be a complete engineer - technical genius and sensitive humanist all in one!

Wednesday, March 18, 2009

CY7C68013 0xC2 启动模式总结


一、CY7C68013枚举与重枚举过程

CY7C68013在上电时,首先由缺省USB设备进行枚举,并把8051固件代码下载到芯片的RAM内;之后8051就会脱离复位并开始执行这些代码,并按照固件代码的内容再一次对设备进行重枚举。再重枚举完成后,对控制端点0的设备请求可由68013的缺省USB设备处理(USBCS中的RENUM位为0),也可由增强型8051的固件代码处理(RENUM1)

上电复位后68013会检查芯片iic总线上是否连接有串行EEPROM,它将读取第一个字节以决定其枚举模式,分如下情况处理:

1. 如果EEPROM 不存在,则用默认PID/VID 启动USB 设备,缺省的USB 设备自动处理

通过控制面板来下载,调试时常用。

2. 如果EEPROM 存在,并且EEPROM 中第一字节是0xC0,后面字节包括用户定制的

PID/VID,则用定制好的PID/VID 来从主机下载固件和加载驱动,此方式为0xC0模式。

3、如果EEPROM 存在,并且EEPROM 中第一字节是0xC2,后续内容包括PID/VID,以及

程序代码,则FX2 EEPROM加载固件,此方式称为“C2 加载模式。

4. 如果FLASH EEPROM 通过地址总线和数据总线扩展(仅128 引脚封装有效),并且

EA=1,则程序从外部空间的0x0000 开始运行。


EEPROM0xC0模式加载EEPROM0xC2模式加载EEPROM


以下详细描述68013 0xC2模式下枚举与重枚举过程。

如果68013检测到一个EEPROM存在,且首字节值为0xC2,则VIDPIDDID、各种USB描述符,及其8051固件代码都有该EEPROM提供,此模式即为0xC2模式,其数据格式如下表:


首字节为0xC2 时,EEPROM中数据格式


上表中前八个字节分别描述了模式标志,VID/PID/DID以及IIC速率配置,从第九个开始为的程序块,每个程序块包括起始地址、数据长度和数据块组成,最后一个字节0x00将写入到CPUCS寄存器(地址是0xE600)中且该数据的最低位必须为0,以使8051 脱离复位。

CYPRESS 提供了hex2bix 来生成“0xC2”格式的*.iic数据用于烧写到EEPROM。执行HEX2BIX.EXE 程序时,需要给程序送入参数。如果我们指定-i,那么程序执行结果会输出iic类型文件。如果我们指定-f 0xC2,那么烧写的程序的第一个字节就是0xC2,这个字节会烧写到EEPROM中的0x0000地址。这个值决定了固件的加载方式,如果为0XC2 则从EEPROM中读取固件程序到FX2RAM空间进行执行。写入这8 个字节之后,根据判断ImageMap的标志位来查找每个块的长度(连续为1 的个数),和这个块的偏移地址(第一个标志为1 的地址),同时注意字节序的问题,请看有关字节序的问题。然后顺序的将块的长度(两个字节),块的定位(两个字节)写入到输出的iic文件中,接着将相应在Image 的数据写入到文件中,然后重复找到ImageMap 的所有块,都是以这种格式写入到输出文件中。(块的数据长度,块的定位,块的数据)。这样即可得到了一个用于烧写EEPROMiic文件,可以看出,iic是二进制数据流文件。


二、烧写EEPROM

IIC文件是一个二进制文件,由HEX文件通过Cypress提供的hex2bix.exe程序转换来。

烧写EEPROM的时候,首先插入设备并确定68013连接的EEPROM没有被烧写过程序,(或者与EEPROM所连接的SDA引脚断开,这种情况下EEPROM已经被烧写过)这样设备才可以作为CYPRESS的默认设备被枚举。然后即可通过控制面板烧写EEPROM

如果EEPROM已经被烧写过,则可以使用下面的方法实现再次烧写:

1。断开EEPROMSDA连接;

2。插入USB设备,打开Control Panel程序,这时作为EEPROM missing68013设备被枚举;

3。这时不要断开USB设备,小心将sda连接上;

4。通过Control Panel eeprom按钮重新烧写,这样可以覆盖原来的程序。只是这种硬件操作比较麻烦,最好在sda之间焊接个开关。


三、典型示例

以下以68013连接ATMEL 24C256 EEPROM来说明完整烧写过程:

8pin 24C256IIC总线接口,容量为256K (32,768 x 8) EEPROM,其管脚描述如下:

连接方式为:A03.3V电源,A1NCGND接地,SCLSDA分别接68013IIC接口,WP接地,VCC接电源即可。此款EEPROM芯片兼容24C51224C1024等。


No comments:

Labels

Followers