大猪蹄子的个人博客

大猪蹄子

【技术 Altera-1】Cyclone II/III/IV FPGA无法下载-——JTAG内部对地短路补救

2025 / 5 / 10

故障现象

  • FPGA原本固化的程序还能正常运行

  • 能识别到USB-Blaster但无法下载(进度显示Failed)

    • 进一步点击左边的Auto Dectect无法识别
  • 猜测存在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:初始版本,致谢@蒙古猫耳