J-Link EDU Mini 영입
최근 nRF54를 사용하는 스마트 굴비 프로젝트에서 J-Link의 RTT(Real Time Transfer)를 맛보게 되었습니다. 여태까지는 로깅용 UART를 뽑은 뒤 UART to USB 모듈 하나 붙여 로그를 확인하곤 했는데요, SWD만으로 로그를 확인할 수 있다는 게 정말 편리했습니다.
찾아보니 OpenOCD를 사용하면 RPi Debug Probe 같은 CMSIS-DAP 프로브도 RTT를 지원한다고 하더라고요. 그런데 IoT 프로젝트에 자주 사용하는 nRF Connect SDK가 하필 CMSIS-DAP 호환성이 구려서 이참에 J-Link를 하나 장만하기로 했습니다.

처음에는 기본 모델인 J-Link BASE Compact를 봤는데, 자주 사용하는 MCU를 모두 지원한다지만 $600은 과하지 않나 싶더라고요. 어차피 집에서는 취미로 사용하니 저렴한 J-Link EDU Mini로 구매했습니다.

EDU Mini가 24년 8월 즈음에 V2로 바뀌었다고 합니다. 케이스가 생기고, 전압 범위가 넓어지고, 가장 마음에 드는 점으로 Type-C를 사용하는데요, 디바이스마트의 썸네일 사진은 V1인 반면 리뷰를 보니 V2로 발송된다고 합니다. 처음에는 마우저에서 구매할까 하다가 V2 여부 확인이 불가하다는 답변을 받고 디바이스마트에서 구매하기로 했습니다.
언박싱 #


"It simply works!".. 그 돈 받고 팔면 당연히 잘 작동해야 하지 않을까 하는 생각이 듭니다. 포장 박스는 잘 만들었네요. 멋집니다.


박스를 까면 디버거가 반겨줍니다. 커다랗게 SEGGER 로고가 박혀 있네요.

동봉된 USB는 C to C입니다. CC 핀 처리 당연히 잘했겠죠. 마음에 듭니다.
분해 #

커버가 달려 있으면 열어 달라는 거겠죠. 안에 들어 있는 회로도 확인해 봤습니다.


MCU는 NXP의 MK22FN128VLH10입니다. 100MHz, SRAM 24kB, Flash 128kB 사양입니다. 이걸로 훨씬 빠른 MCU들을 디버깅하는 게 신기합니다. 그나저나 NXP 웹페이지가 MCU 정보를 엄청 깔끔하게 보여주네요. 언젠가 한번 맛을 봐야겠습니다.
회로 오른쪽도 살펴보면 LDO 같은 게 2개..? 하나는 저항이 주렁주렁 달린 것이 타겟 MCU 전압에 맞춰주는 느낌이고 다른 하나는 MCU 전원으로 보입니다. 아래쪽에는 Tag-Connect의 TC2030 NL 패드도 보입니다. 하나 가지고 싶은데 정말 사악한 가격.. 당장은 FTSH-105로 만족해야겠습니다.
디버깅 #
가지고 있는 개발보드로 테스트해 봤습니다.
nRF52840-DK #

nRF54L15-DK는 디버깅 입력이 없는 관계로 nRF52840-DK로 테스트합니다. 개발보드 디버깅 입력 단자에 커넥터를 꽂았습니다.

nRF Connect SDK에서 잘 인식됩니다.


간단하게 Blink 예제를 업로드해 봤고요, RTT까지 잘 먹는 모습입니다.
NUCLEO-C031C6 #
ST 쪽도 확인해 봅시다. F103은 진부하니 C031로, Zephyr를 올리고 RTT까지 테스트합니다.


JTAG/SWD 10핀 브레이크아웃 보드를 사두긴 했지만 납땜을 하지 않아서 어거지로 연결해야 합니다. 개발보드의 ST-Link 점퍼를 뽑은 다음 SWD, CLK, nRST, Vref 이렇게 4개 핀을 연결했습니다. Nucleo 참 마음에 안 듭니다. 핀 찾는다고 데이터시트를 얼마나 왔다 갔다 해야 하는지..


# board.cmake
board_runner_args(jlink "--device=STM32C031C6" "--speed=4000")nucleo_c031c6 보드의 flashing runner는 ST-Link뿐입니다. jlink runner를 추가한 뒤 flashing, 디버깅, RTT 모두 확인했습니다.
Pico2 #
마지막으로 OpenOCD 친화적인 RP2350입니다.

역시나 대충 연결해 주고요, 그러고 보니 GND를 전부 빼먹었네요. 디버거야 버텨!!!


이번에는 Zephyr SDK에 jlink runner가 있어서 바로 진행합니다. 역시나 잘 되네요.