有很多不同的情況可能會導致J-Link無法與目標設備成功連接。下面我們根據遇到的不同的情況,提供一些排除故障以及修復的解決方法。
一般來說,我們建議在進入到實際環境(例如Embedded Studio IDE)之前,使用診斷實用工具J-Link Commander來驗證J-Link和目標設備之間是否正確連接。因此,本文引用了J-Link Commander,并假定已安裝最新的J-Link軟件和文檔包(包括已安裝J-Link USB驅動程序)。
1.J-Link 連接

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執行特殊的處理,例如在引導加載程序中停止,在重置或不安全的設備下連接等。