2025 / 5 / 10
故障现象
FPGA原本固化的程序还能正常运行
能识别到USB-Blaster但无法下载(进度显示Failed)
猜测存在JTAG对地短路,可以通过以下几种方法测试:
万用表直接扫,最直接的一集
如果是TDI短路,在JTAG Chain Debugger(Quartus自带的工具)中可以点击Test JTAG Chain,此时是能扫描到具体芯片,但软件会提示TDI短路(原理和JTAG的不同模式有关,当读取FPGA ID时没有用到TDI读出来了,证明TCK TMS TDO时正常的,其他用到TDI的模式异常,说明TDI故障)这次我是中这个奖了……
这位博主是TDO对地短路,修复成功 (点击跳转)
TCK短路貌似没救
TMS暂时无案例
补救措施
准备个万用表,先测定现在的对地短路电阻(我这儿是1欧左右)
调到DC电流档,能显示到1mA就行,串联到3V3+限流电阻(100R左右,博主说要几十mA,NC也行,小心电流过大)到短路的PIN上
上电
观察电流表数值,有从高到底的变化趋势(当然啦,电阻恢复电流能不下降吗)(我这儿是85mA-->79mA,忘了限流,命大无需多言)
烧个十秒就断电测一下电阻,大于50欧后就可以尝试重新下载
重复几次,直到成功or成仁(我这儿先恢复到50欧后,软件不再报TDI短路,但还无法下载;后进一步恢复到57欧左右,软件可以正常使用)
实现原理
首先……可能是Altera的锅,设计上存在易损坏的缺陷,参考博主 (点击跳转)
其次,内部短路烧哪儿了?可能是内部IO ESD对地短路
最后,怎么恢复的?大力出奇迹……强行喂电源,可能导致内部IO ESD芯片金属层对地烧的更狠,直到断路(那不就是没短路了吗!甜菜!)
当然……恢复后的IO就处于裸奔状态了,最好外部再加ESD……
版本更新
250510:初始版本,致谢@蒙古猫耳