最近有用户使用TR5-A7开发板,当执行Demonstration\flash_programming\factory_programming_batch\flash_program.bat去固化.pof到开发板FLASH时遇到报错,提示Unexpected error in JTAG server --error code 12,如何解决?
可以看到这是正常固化的过程中突然被中断了。这种情况通常是因为JTAG时钟太快了。烧写.pof是一个涉及JTAG、FPGA、Flash三者的复杂、耗时的过程,确保固化过程通信的稳定性,建议适当降低jtag速度即可。
在Altera网站https://community.altera.com/kb/knowledge-base/how-do-i-change-the-clock-frequency-of-the-usb-blaster-ii-download-cable/342304 有提到 USB Blaster II 默认下载时钟是24MHz:
可以将jtag时钟降低为16MHz或者6MHz:
解决办法是在flash_program.bat里加下面2行指令即可:
%QUARTUS_BIN%\\jtagconfig --setparam 1 JtagClock 6M
%QUARTUS_BIN%\\jtagconfig --setparam 1 JtagClock
如果是通过Programmer界面下载.pof文件时,可以直接在如下红框界面进行jtag时钟的设定(Quartus 19.1 及以上版本才有如下配置界面):
注:这个方法适用于所有使用 USB Blaster II 的 Terasic FPGA 开发板。