编辑: 施信荣 | 2019-07-10 |
3 种条件,EZ-USB 将开始执行片外存储器中的固件: ? 闪存、EPROM 或其他存储器与地址/数据总线相连(仅限于
128 引脚的数据包). ? 不存在符合上述要求的正确格式 EEPROM. ? EA(外部访问)引脚被置于高电平状态(表示 EZ-USB 从片外存储器的 0x0000 地址开始执行代码). 重枚举(ReNumeration)是一个重要的概念,它与 FX2LP 启动相关.当默认 USB 器件进行枚举,并且 USB 主机将固件和描述符表格下载到 EZ-USB 内后,它会开始执行所下载的代码.执行该代码会以电气方式模拟 USB 器件的物理断开或连接,并将 EZ-USB 作为第二个器件再次枚举.在下载代码和描述符所定义的 USB 上 执行该过程.该专利的第二个枚举过程被称为'
ReNumeration'
. EZ-USB 技术参考手册(TRM)中的第
3 章 枚举和重枚举 详细介绍了 FX2LP 的启动序列.
2 I2 C 启动 使用 I
2 C 接口将固件或 VID/PID/DID 信息下载到 FX2LP 中.如果包含了 FX2LP 固件或 VID/PID/DID 信息的 EEPROM 连接到 I
2 C 总线上,会自动将 EEPROM 中的固件或 VID/PID/DID 下载到 FX2LP 内.如果 EEPROM 包含的是固件, 它将被加载到片上 RAM 内.然后 CPU 会退出复位状态,以执行该引导加载代码.下面是通过 I
2 C 总线执行的两种加 载类型.欲了解更多信息,请参考技术参考手册(TRM)中的 3.2 节 EZ-USB 启动模式 . 2.1 C0 加载:从I2 C 器件加载 USB ID 加电复位时,如果 FX2LP 通过读取地址
0 的0xC0 值来检测到 EEPROM 与它的 I
2 C 总线相连,那么 EZ-USB 会自动 将EEPROM 中的 VID、PID 和DID 复制到内部存储器内.表1显示的是 C0 加载 的数据格式. 表1. C0 加载 格式 EEPROM 地址 内容
0 0xC0
1 供应商 ID (VID) L
2 供应商 ID (VID) H
3 产品 ID (PID) L
4 产品 ID (PID) H
5 器件 ID(DID)L
6 器件 ID(DID)H EZ-USB? FX1?/FX2LP?启动选项 www.cypress.com 文档编号:001-85240 版本*C
3 EEPROM 地址 内容
7 配置字节 第8个EEPROM 字节包含的配置位控制着下列各项: ? I
2 C 总线速度:默认值为
100 kHz. ? 断开连接状态:该断开连接状态的默认值用于使 EZ-USB 退出复位状态后设置 EZ-USB 与USB 的连接状态. 技术参考手册中第 3.4.2 节 存在串行 EEPROM,第一个字节为 0xC0 介绍了各个配置位的完整说明. FX2LP 将这些 EEPROM 字节提供给主机,以响应主机的获取描述符器件请求.这6个字节只会代替默认 USB 器件描 述符中的 VID/PID/DID 字节.这样会使主机 OS 加载与 EEPROM 中的 VID/PID/DID 值相匹配的主机驱动程序. 2.2 C2 加载:从I2 C 器件加载固件 加电复位时,如果 FX2LP 通过读取地址
0 上的 0xC2 值检测到 EEPROM 与I2C相连,那么它会下载 EEPROM 中的固 件.表2显示的是 C2 加载 的EEPROM 镜像格式.与C0 加载不同,C2 加载不需要从 USB 主机上下载固件. 注意:技术参考手册中第 3.4.3 节 存在串行 EEPROM,第一个字节为 0xC2 介绍了各个配置位的完整说明. 赛普拉斯提供了名称为 CyConsole 和Control Center(控制中心)的主机应用工具.在开发过程中,可以使用其中任 意一个工具来编程 EEPROM.对于 Linux 开发者,可以从 Linux 平台的 FX3 软件开发套件中获取主机应用. FX2LP 将说明表
2 所示的格式;
它对该格式进行解码,然后将其下载到相应的存储器位置中.通过 Hex2bix 工具,可 以为 C2 加载生成 EEPROM 镜像.欲了解有关 Hex2bix 工具的详细信息,安装 FX2LP DVK 后请参考位于 C:\Cypress\USB\CY3684_EZ-USB_FX2LP_DVK\1.1\Utilities\Hex2Bix 中的 readme.txt 文件. 表2. C2 加载 格式 EEPROM 地址 内容