芯片为TMS320F28035,新投的PCB,送焊回来后连接JTAG仿真器发现连接不上,报错如下:
(Error -516 @ 0x0)
The user selected specific frequency failed the scan-path reliability test. The utility or debugger requested the JTAG controller and cable, that generate the JTAG clock, to provide a user selected fixed frequency. The built-in scan-path reliability test has failed. This indicates that the JTAG controller and its cable cannot reliably communicate with the target system at that frequency. (Emulation package 5.1.450.0)
截图如下:
仿真器是XDS100 V3。这个错误说仿真器在与DSP通讯过程中,发生了不稳定因素,导致时钟线信号错误,从而校验失败。
这个表明了两点:一是JTAG识别到了DSP;二是通讯中出现了导致不稳定因素,导致通讯中断。因为仿真器可以确认没有问题,JTAG线也并未与其他线路复用,板上其他功能也未开启,只是电源在供电,所以可以确定应该是电源出现了问题。
DC-DC设计输入24V,输出5V 1A,经过1117转换为3.3V。经过测量,5V和3.3V电压都正确,用示波器观察两路电压纹波分别在80mVp-p和60mVp-p左右,这个幅度对DC-DC和DSP来讲都是可以接受的,按理不应该有问题。
于是用替换策略,从外部电源引线过来,发现JTAG连接正常。
因此可以确定,就是板子上的电源存在问题。
既然电源供电能力没有问题,尝试用另一块板子的5V给这块板子供电,发现JTAG也能连接正常了!
至此,可以缩小了范围,一定是板子上的电源和JTAG之间发生了干扰。经过仔细查看PCB,发现DC-DC距离JTAG线路是有点近:
怀疑是干扰串到了JTAG线上,于是在JTAG线路上贴了一块金箔屏蔽贴线并焊接到GND上,发现JTAG能不太稳定的连接了,就是先能连接上,但是烧写到一半又断掉!
于是确定是DC-DC对JTAG造成了干扰,经过仔细审视PCB,发现地线连接欠妥,形成了地线环路:
看起来JTAG与DC-DC的GND连接过近,形成较大压差和环路辐射。
于是用小刀把上面箭头处割断,形成单点共地。烧写稳定,问题解决。