JTAG只断一颗器件,整条链也可能扫不出来
JTAG只断一颗器件,整条链也可能扫不出来

下载器插上后,一颗FPGA也扫不到,但板上的JTAG时钟明明在跳。这并不一定说明下载器坏了,也不意味着所有器件同时出问题。多器件菊花链的数据要逐级穿过器件,再返回下载器;中间一级没有正确转发,整条链的读回就可能失效。排查时应把“共享时钟能否到达”和“串行数据能否返回”分开,沿着实际连接顺序找断点。不必先把全板器件都更换一遍。
先画清数据到底从哪里回来
典型菊花链中,下载器的数据输出进入第一颗器件的TDI,第一颗TDO接第二颗TDI,最后一颗TDO返回下载器的数据输入。TCK和TMS通常并联分配给各器件,数据却是一条串行通路。时钟能同时到达三颗器件,只证明共享信号的一部分成立,不证明读回路径闭合。

三器件链路:TDI/TDO逐级串接,TCK/TMS共享。
原理图命名容易增加混乱:连接器上的TDI、TDO有时按目标器件视角命名,有时按工具视角描述。检查时不要只对着同名网络相连,要把方向写成“工具输出→器件TDI”和“末级TDO→工具输入”。同时核对实际封装引脚和装配选件,避免图纸正确、零欧姆电阻却装在另一条路径上。
实际布板中,链的逻辑顺序不一定等于器件在板面上的左右位置。用网络表和装配配置列出一张顺序表,注明每级输入、输出和测试点,可以减少拿探头来回找线的时间。表里不要只写FPGA型号,还应包括同链的其他JTAG器件;一个容易被忽略的小器件,同样可能位于返回路径上。
一颗器件掉电,可能堵住全部读回
链中的器件通常需要相关JTAG电源和引脚配置处于有效状态,才能按预期移位输出。如果中间器件掉电、处于禁用JTAG的状态,或TDO没有焊通,后级就可能收不到有效数据。具体掉电行为取决于器件设计,不能假设所有芯片都能自动透明穿越,也不能把外部上拉后的高电平当成正常数据。
上电核查应落到各器件对应的JTAG或I/O电源引脚,而不是只看主电源指示灯。不同器件电平是否兼容、工具参考电压接在哪里,也要分别确认。混合电压链需要按器件和工具规定处理电平转换,不能因为接口都叫JTAG就直接相连。
复位和模式脚同样要按各器件手册确认。某些复位只影响用户逻辑,某些配置会影响调试端口,不能把一种芯片的行为推广到整链。此处目标是恢复扫描通路,而不是处理用户配置丢失、Flash启动或工程文件下载失败,后几项应在扫链正常后另行定位。

断点示意:中间级无法输出时,末级返回值可能不再代表完整扫描链。
BYPASS也要靠器件正常工作
JTAG的BYPASS指令通常把该器件的数据通路切换到一位旁路寄存器,使扫描其他器件时少经过一些位。它仍需要器件的测试逻辑响应指令和时钟,并不等于把TDI和TDO用一根铜线直接短接。已经掉电或无法接收指令的器件,不能指望软件BYPASS自动修好。

逻辑BYPASS仍经过一位寄存器;物理旁路是另一个硬件配置。
如果板上预留了物理隔离跳线或零欧姆选配位,可以在断电并核对原理图后,将某级从路径中暂时移除,用于缩小故障范围。改变后还必须更新工具中的链顺序和指令寄存器长度等配置。不可在多个TDO仍互相连接时随意跨接,否则可能造成输出争用。
按级看TDO,比反复重装软件更直接
先检查工具端TCK、TMS和第一颗TDI,再按顺序观察每一级TDO及末级返回线。读回数据是否跳变只是线索,还要结合当前扫描阶段判断,不能要求所有时刻都翻转。必要时降低TCK频率做对照:低速能扫、高速失败,更应关注时序、负载和信号质量,而非直接判定某颗器件损坏。
记录每次只保留哪些器件、使用什么时钟频率、扫描结果如何。若移除某级后链路恢复,应进一步区分该器件供电、焊接、引脚配置和路径装配,而不是立即换芯片。最终恢复全链时,再核对器件顺序与工具配置一致,避免单颗能连、整链仍因配置长度错误而失败。

定位接点:顺着数据路径逐级检查,同时保留时钟与模式信号条件。
JTAG扫链失败,先把它当作一条需要逐级返回的数据通路,而不是一个只要时钟存在就成立的接口。下一步标出每一级TDI、TDO和对应电源,再从第一个异常输出缩小范围。你们的板卡是否预留了单颗隔离或物理旁路位置,还是只能一次面对整条链排查?
声明:
本文由凡亿教育整理,转载请注明来源!
投稿/招聘/广告/课程合作/资源置换 请加微信:13237418207






哔哩哔哩
微信公众号
小红书
抖音
知乎
西瓜视频
头条
微信视频号
