C0或是C2启动的目的,是更改USB芯片的ID信息,并把固件载入到芯片内部RAM中运行。

C0模式是指只从EEPROM中载入USB ID信息,因为只有ID信息(8个字节),所以只需要一个小容量的EEPROM即可。当然大容量的EEPROM也可以使用C0模式,但是小容量的EEPROM只能使用C0模式启动。

如下图所示:
使用小容量的EEPROM要将A0,A1,A2接地。
CY7C68013 C0模式启动

CY7C68013 C0模式启动

这里我用了个24LC01,容量128字节,完全足够。

C0模式需要准备两个ID信息:
1. 写入EEPROM中的VID/PID/DID
2. 固件中使用的VID/PID/DID

写入EEPROM中的ID信息是用来匹配执行固件下载脚本的驱动的;
固件程序中的ID信息是用来执行传输功能操作的。
如果这两个ID相等,那么驱动会不停的下载固件到芯片,芯片又会不停的复位重启,然后又下固件。。。陷入死循环而无法正常使用板卡。

修改固件中的ID信息

固件中的ID信息在固件工程中的 DSCR.A51 文件中进行修改:
CY7C68013 C0模式启动

如图,就修改这三行,这里对应的ID信息为:
PID_04B4
VID_00F1
DID_0000

修改好后重新编译生成hex文件。

录制spt脚本文件

脚本文件实际上存的就是要下载到USB RAM中的固件程序。
利用CyConsole程序录制脚本文件:
CY7C68013 C0模式启动

第一步:点击录制按钮
第二步:依次点击 Options->EZ-USB Interface->Download 选择要下载的固件 hex 文件。
第三步:返回来点击停止按钮
第四步:在弹出的窗口中,选择要保存spt文件的地址,以及输入要保存的文件名。

准备写入EEPROM的iic文件

这个文件需要用到16进制的编辑器。
新建一个文本文件,修改后缀为iic,用16进制编辑器打开。这里我用的是Notepad++装了一个HEX-Editor的插件。
在View in HEX模式下:
CY7C68013 C0模式启动

C0模式下这8个字节对应的意义如下:
CY7C68013 C0模式启动

所以这里我修改的ID信息为:
VID_1234
PID_5678
DID_0000

烧写iic文件至EEPROM

修改好后将该iic文件保存。
然后进入CyConsole EZ-USB选取iic文件进行烧写。
CY7C68013 C0模式启动

修改驱动文件

留着下回写,好困==

相关文章:

  • 2022-01-12
  • 2021-04-17
  • 2021-07-17
  • 2021-04-11
  • 2021-07-07
猜你喜欢
  • 2022-12-23
  • 2021-12-13
  • 2021-11-19
  • 2021-10-15
  • 2021-04-05
  • 2021-09-17
相关资源
相似解决方案