S32K144 mới không thể nạp firmware


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.

Chip cũng không kết nối được, RESET xuống đất 0V

SEGGER J-Link Commander V9.72 (Compiled Aug 26 2026 14:39:38)
DLL version V9.72, compiled Aug 26 2026 14:38:37

Connecting to J-Link …O.K.
Firmware: J-Link LPCXpresso V2 compiled May 2 2023 17:39:56
Hardware version: V1.00
J-Link uptime (since boot): 0d 00h 20m 46s
S/N: 724304970
VTref=3.300V

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:

  1. 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.

  2. 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.

  3. 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ý.

  4. 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:

  1. 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.

  2. Đ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).

  3. Dùng J-Link Commander giảm xuống 100kHz để thử.

  4. unlock Kinetis + mass erase (nếu vẫn còn có thể kết nối được).