SEGGER | J-Link无法连接CPU,怎么解决?
来源:segger.com | 作者:segger | 发布时间: 2023-12-20 | 80 次浏览 | 分享到:


 问题?

有很多不同的情况可能会导致J-Link无法与目标设备成功连接。下面我们根据遇到的不同的情况,提供一些排除故障以及修复的解决方法。

一般来说,我们建议在进入到实际环境(例如Embedded Studio IDE)之前,使用诊断实用工具J-Link Commander来验证J-Link和目标设备之间是否正确连接。因此,本文引用了J-Link Commander,并假定已安装最新的J-Link软件和文档包(包括已安装J-Link USB驱动程序)。

1.J-Link 连接

首先,确认J-Link与PC之间的连接正常,并且J-Link Commander能够与J-Link正常通信:
(1)通过USB连接J-Link到PC
(2)启动J-Link Commander  
(3)如果J-Link功能正常,您应该看到J-Link Commander报告USB连接正常并输出固件字符串:

2.连接不成功

如果连接不成功,首先检查J-Link在Windows设备管理器中是否被识别。


3.测试连接

(1)重新启动电脑,确保USB协议本身没有处于混乱状态

(2)更换USB连接线

(3)尝试不同的USB插槽

(4)如果使用USB集线器,请将其拆卸

(5)确认J-Link USB驱动已安装

(6)切换到不同的PC,以排除PC相关问题


请确保您没有受到以下问题的影响:

J-Link配置为CMSIS启动模式,检查J-Link配置器中的设置:

https://wiki.segger.com/J-Link_Configurator#Configuring_Bootmode

·https://wiki.segger.com/Incorrect_J-Link_USB_driver_installed

·https://wiki.segger.com/J-Trace_PRO_Cortex-M

https://wiki.segger.com/J-Trace_driver_(WinUSB)_is_installed_but_the_driver_could_not_be_started

如果连接仍然不成功,请按照下面的故障排除说明进行操作。

4.VTref为0.000V

J-Link测量目标参考电压是0V。由于J-Link使用目标参考电压来创建调试信号的水平,因此参考电压是很必要的。

(1)检查目标硬件的电源,并确认其是否通电(接通开关,跳线设置正确等)。

(2)使用万用表测量调试连接器的pin 1(VTref)和pin 4(GND)之间的电压。

(3)如果应通过J-Link(Pin19)提供电源,请确保电源已启用。

5.接口设置

在某些硬件/设备上,只有某些调试接口被连接并可以使用。另一个问题可能是,硬件不允许接口速度过高。

 (1)检查是否选择了正确的目标接口(JTAG,SWD,...)。

 (2)将接口速度降低到100 kHz。

 (3)对于ARM926EJ-S内核,最大JTAG速度= MCU速度的1/8到1/6(可能小于100 kHz)。

6.接口信号

如果与目标的连接仍然失败,则接口信号本身很可能存在问题。可能的原因:

(1)调试信号未连接。

  (2)调试信号与其他外设/板载仿真器共享。

(3)调试信号与其他外设/板载仿真器共享。

解决办法:

(1)断开板载模拟器或其他可能与目标接口线上进行交互的外设连接。

(2)使用示波器检查调试信号的质量。

7.在对目标设备进行编程后,J-Link未能建立连接

这可能有不同的原因,例如应用程序禁用调试接口,重新配置调试引脚,进入某种低功耗模式或设备的安全性被激活。为了在开发过程中防止出现这种情况,我们建议:

(1)在执行实际的应用程序代码之前增加一秒钟的延迟。这样调试器就能重置MCU,并在“错误代码”阻止J-Link建立成功的连接之前停止执行。

  (2)选择正确的设备,因为这允许J-Link DLL执行特殊的处理,例如在引导加载程序中停止,在重置或不安全的设备下连接等。