最近新做了一块 FPGA 板子,在调试程序下载时,JTAG 模式下可以下载.sof 文件到 FPGA,但是不能通过 JTAG 下载.jic 文件到 EPCQ64,提示错误:Error (209025): Can’t recognize silicon ID for device 1。
出现这种情况,无非以下几种原因:
- QII 中选择的配置芯片和电路板中的芯片不一致;
- 下载线损坏,或者过长;
- 配置芯片损坏;
- 电路中的 AS 模式中的上拉电阻和下拉电阻是否虚焊,即 MSEL[2..0]模式配置;
- nSTATUS 等信号未接上拉电阻。
这里还是先从电路查起,确认电路没有问题,同时也确认.sof 文件转.jic 文件的步骤没有错误。那么,接下来就是测试 EPCQ64 的几个通信引脚。刚好手边也有一块之前的 FPGA 板子,做了测试对比波形,如图 2 图 3 所示。
发现新做的这块板子 FPGA 连接 EPCQ64 的几个通信引脚几乎没有信号发出来,因此,猜测 MSEL[2..0]配置出现了问题。
在新的板子中 MSEL[2..0]的配置是根据 Cyclone IV Device Handbook 中的描述来定义的:
Connect the nCONFIG and MSEL pins to support a non-JTAG configuration scheme. If you only use JTAG configuration, connect the nCONFIG pin to logic-high and the MSEL pins to GND. In addition, pull DCLK and DATA[0] to either high or low, whichever is convenient on your board.
Cyclone IV Device Handbook Page 8-47
根据上述的描述,想当然的把 JTAG 下载.jic 文件到 EPCQ64 也当成了 JTAG 模式,所以在新的板子把 MSEL 这几个引脚都下拉了。
其实,JTAG 配置模式是把程序下载到 FPGA 内部的 SRAM 中,AS 配置模式是把程序下载到外部配置芯片中。JTAG 下载.jic 文件到 EPCQ64,JTAG 只是起到桥接的作用——把 JTAG 信号转换成 SPI 信号(EPCQ64),相当于调试器。如果 MSEL[2..0]不配置成 AS 模式,FPGA 就发不出来 SPI 信号。因此,按照 Handbook 中的描述,修改 MSEL[2..0]配置模式为 010,即 MSEL[2][0]为下拉电阻,MSEL[1]为上拉电阻。
由于板子上同时预留了上拉电阻和下拉电阻,修改之后,下载成功。
扫码关注尚为网微信公众号
原创文章,作者:sunev,如若转载,请注明出处:https://www.sunev.cn/embedded/728.html