背景
在许多不同的场景中,一些因素可能会妨碍J-Link与目标设备成功建立连接。本文介绍了J-Link与目标设备不能正常连接的不同情况,并提供了有关如何进行故障排除以及下一步如何修复它们的信息。通常,我们建议在使用具体环境(例如:Embedded Studio IDE)之前,使用J-Link Commander实用程序诊断并验证J-Link和目标设备之间是否可以正确连接。因此,本文将会用到J-Link Commander,并假定您已安装了最新版本的J-Link软件和文档包(包括J-Link USB驱动程序)。我们建议从头到尾仔细阅读这篇文章。
J-Link的连接
首先,确认J-Link和PC机之间是否连接正常,并且确认J-Link Commander是否可以与J-Link成功通信:
通过USB端口将J-Link连接到PC机
启动J-Link Commander
如果J-Link正常运行,则应该看到J-Link Commander窗口中报告USB连接正常。并输出其使用的固件信息:
目标的连接
通常,我们建议使用厂家提供的评估板来验证J-Link和目标设备之间是否能够正常连接,然后再转移到自定义硬件上,以排除可能由错误的硬件设计引起的问题。
使用J-Link Commander验证功能
请确保您使用的是最新软件版本,可从此处下载:https://www.segger.com/downloads/jlink
通过USB将J-Link连接到PC机
给目标设备供电
将目标设备与J-Link连接
启动J-Link Commander并按照启动配置说明进行操作
连接失败
如果连接仍然失败,请按照下面的故障排除说明进行操作。如果您使用的是SEGGER或者芯片厂商的评估板,而且按照故障排除说明进行操作后问题仍然存在,请与segger产品的代理商:北京麦克泰软件技术有限公司联系或直接与SEGGER联系:https://www.segger.com/ticket/
VTref 的电压是0.000V
J-Link检测到目标参考电压是0V。由于J-Link使用目标参考电压来创建调试信号的电平,因此必须使用参考电压。
检查目标硬件的电源,并验证其电源的供电(打开电源,正确设置跳线等)。
使用万用表测量调试连接器的引脚1(VTref)和引脚4(GND)之间的电压。
接口设置
在某些硬件/设备上,仅某些已连接的调试接口可以使用。另一个问题可能是硬件不允许更高的接口速度。
检查是否选择了正确的目标接口(JTAG,SWD等)
将接口速度降低到100 kHz
对于ARM926EJ-S内核,最大值 JTAG速度== MCU速度的1/8,最高为的1/6(可能小于100 kHz)
接口信号
如果J-Link到目标的连接仍然失败,则很可能是接口信号本身存在问题。可能的原因:
调试信号未连接
l 调试信号与其它外设或板载仿真器共享
可能的解决方案:
断开板载仿真器或其它可能在目标接口线上交互的外围设备
使用示波器检查调试信号的质量
对目标设备进行编程后,J-Link不再能够建立连接
这可能涉及许多不同的因素,例如:应用程序确实禁用了调试接口,重新配置了调试引脚进入了某种低功耗模式或激活了设备的安全防护功能。为了防止在开发过程中出现此类情况,我们建议:
在执行实际的应用程序代码之前,增加一秒的延迟,这允许调试仿真器在MCU执行将阻止J-Link成功建立连接的“错误代码”之前,重置MCU并使其停止运行。
选择正确的设备,这允许J-Link DLL执行(例如:在引导加载程序中暂停,重置下连接或检查是否是不安全的设备)特殊处理。