C0或是C2启动的目的,是更改USB芯片的ID信息,并把固件载入到芯片内部RAM中运行。
C0模式是指只从EEPROM中载入USB ID信息,因为只有ID信息(8个字节),所以只需要一个小容量的EEPROM即可。当然大容量的EEPROM也可以使用C0模式,但是小容量的EEPROM只能使用C0模式启动。
如下图所示:
使用小容量的EEPROM要将A0,A1,A2接地。
这里我用了个24LC01,容量128字节,完全足够。
C0模式需要准备两个ID信息:
1. 写入EEPROM中的VID/PID/DID
2. 固件中使用的VID/PID/DID
写入EEPROM中的ID信息是用来匹配执行固件下载脚本的驱动的;
固件程序中的ID信息是用来执行传输功能操作的。
如果这两个ID相等,那么驱动会不停的下载固件到芯片,芯片又会不停的复位重启,然后又下固件。。。陷入死循环而无法正常使用板卡。
修改固件中的ID信息
固件中的ID信息在固件工程中的 DSCR.A51 文件中进行修改: