Bo mạch mới đã đến, nhưng lần này không nạp được nữa, dưới đây là nhật ký
SEGGER J-Link GDB Server V9.72 Command Line Version
JLinkARM.dll V9.72 (DLL compiled Aug 26 2026 14:38:37)
WARNING: Unknown command line parameter -RestoreRAMOnDownload found.
WARNING: Unknown command line parameter 0 found.
Command line: -if swd -device S32K144 -endian little -speed 500 -port 2331 -swoport 2332 -telnetport 2333 -vd -ir -localhostonly 1 -singlerun -timeout 0 -nogui -RestoreRAMOnDownload 0
-----GDB Server start settings-----
GDBInit file: none
GDB Server Listening port: 2331
SWO raw output listening port: 2332
Terminal I/O port: 2333
Accept remote connection: localhost only
Generate logfile: off
Verify download: on
Init regs on start: on
Silent mode: off
Single run mode: on
Target connection timeout: 0 ms
------J-Link related settings------
J-Link Host interface: USB
J-Link script: none
J-Link settings file: none
------Target related settings------
Target device: S32K144
Target device parameters: none
Target interface: SWD
Target interface speed: 500kHz
Target endian: little
Connecting to J-Link…
J-Link is connected.
Firmware: J-Link LPCXpresso V2 compiled May 2 2023 17:39:56
Hardware: V1.00
S/N: 724304970
Checking target voltage…
Target voltage: 3.30 V
Listening on TCP/IP port 2331
Connecting to target…
ERROR: J-Link script file function InitTarget() returned with error code -1
ERROR: Could not connect to target.
Target connection failed. GDBServer will be closed…Restoring target state and closing J-Link connection…
Shutting down…
Could not connect to target.
Please check power, connection and settings.
Type “connect” to establish a target connection, ‘?’ for help
J-Link>connect
Please specify device / core. : S32K144
Type ‘?’ for selection dialog
Device>
Please specify target interface:
J) JTAG (Default)
S) SWD
T) cJTAG
TIF>S
Specify target interface speed [kHz]. : 4000 kHz
Speed>
Device “S32K144” selected.
Connecting to target via SWD
ConfigTargetSettings() start
ConfigTargetSettings() end - Took 15us
InitTarget() start
SWD selected. Executing JTAG → SWD switching sequence.
Connect Under Reset
SWD selected. Executing JTAG → SWD switching sequence.
Communication error while accessing MDM-AP.
Connect Under Reset
InitTarget() end - Took 409ms
Connect failed. Resetting via Reset pin and trying again.
ConfigTargetSettings() start
ConfigTargetSettings() end - Took 13us
InitTarget() start
SWD selected. Executing JTAG → SWD switching sequence.
Connect Under Reset
SWD selected. Executing JTAG → SWD switching sequence.
Communication error while accessing MDM-AP.
Connect Under Reset
InitTarget() end - Took 406ms
****** Error: J-Link script file function InitTarget() returned with error code -1
Error occurred: Could not connect to the target device.
For troubleshooting steps visit: https://kb.segger.com/J-Link_Troubleshooting
Trước hết, so với hai bài trước thì nhật ký lần này đã thay đổi về chất — hai bài trước vẫn còn giao tiếp được, thanh ghi vẫn đọc ra được; còn lần này thì ngay cả MDM-AP cũng không truy cập được, trình gỡ lỗi bị chặn ngay từ cổng con chip.
Giải thích từng mục:
Communication error while accessing MDM-AP —— Giao thức gỡ lỗi SWD của dòng S32K1 bắt tay thông qua MDM-AP (Memory Debug Access Port), và việc truy cập AP này là bước đầu tiên của giao tiếp gỡ lỗi. MDM-AP truy cập thất bại = chip hoàn toàn không phản hồi trên bus SWD, có thể là chip bị treo, đường vật lý không thông, hoặc时序 tín hiệu debug bị sai.
Connect Under Reset thất bại cả hai lần —— J-Link đã thử kết nối ở trạng thái reset để tránh nhiễu từ mã đang chạy, nhưng vẫn thất bại. Điều này cho thấy vấn đề không phải là “chương trình chạy loạn khiến trình gỡ lỗi mất quyền kiểm soát”, mà là chip và trình gỡ lỗi hoàn toàn không thông ở tầng vật lý/giao thức.
RESET 对地 0V —— Lần này khác với bài 411 ở mức 1V. 1V là bất thường do chia áp, còn 0V nghĩa là RESET đang bị mạch bên ngoài kéo xuống đất. Trong sơ đồ nguyên lý của bạn, đường TP65 NTRST đi qua R86 100Ω + C76 0.22μF + R85 4.7k kéo lên D3V3_MCU để tạo đường reset. Khi J-Link Connect Under Reset, nó sẽ kéo NTRST xuống thấp; nếu NTRST và RESET trên PCB của board bạn được nối vào cùng một điểm (hoặc bên trong chip có đường NTRST→RESET), thì việc RESET hiện đang bị kéo thấp là hợp lý.
J-Link LPCXpresso V2 —— Lưu ý rằng bạn không dùng J-Link tiêu chuẩn, mà là firmware V2 tích hợp trên board LPCXpresso. LPCXpresso tương thích tốt nhất với chip của chính NXP, nhưng S32K144 không nằm trong danh sách “hỗ trợ gốc” của nó, nên script gỡ lỗi có thể không đầy đủ.
Thứ tự kiểm tra đề xuất:
Rút USB của trình gỡ lỗi ra, cấp nguồn riêng cho board, đo điện áp RESET (phải là 3.3V, không phải 0V). Nếu vẫn là 0V, hãy kiểm tra khu vực nút reset / R86 / C76.
Đo thông mạch từ đường SWDIO/SWCLK đến chân MCU (đặc biệt kiểm tra xem các diode ESD D11–D15 có bị hàn ngược không — nếu JEB240P0603 bị hàn ngược sẽ gây chập trực tiếp).
Dùng J-Link Commander giảm xuống 100kHz để thử.
unlock Kinetis + mass erase (nếu vẫn còn có thể kết nối được).