JTAG(Joint Test Action Group)과 SWD(Serial Wire Debug)

JTAG(Joint Test Action Group)

JTAG은 임베디드 시스템 개발에서 널리 쓰는 디버그 통신 방식이다. IEEE 1149.1 표준을 기반으로 하며, MCU에 프로그램을 내려받거나 레지스터와 메모리를 읽고 브레이크포인트를 걸 수 있다.




디버거를 연결하면 PC 환경에서 코드 실행을 멈추고 변수 값을 확인하는 것처럼 대상 MCU의 내부 상태를 점검할 수 있다.




JTAG 디버깅 연결 구조

JTAG 인터페이스

JTAG 인터페이스는 일반적으로 TCK, TMS, TDI, TDO와 리셋 또는 기준 전압 핀으로 구성된다. 보드와 디버거가 같은 전압 기준을 공유하는지 먼저 확인해야 한다.




JTAG 핀 구성

JTAG 인터페이스 종류

커넥터는 10핀, 14핀, 16핀, 20핀처럼 여러 규격으로 제공된다. 핀 수가 같아도 제조사별 핀 배열이 다를 수 있으므로 대상 보드의 회로도와 디버거 매뉴얼을 함께 확인한다.




JTAG 커넥터 규격

SWD(Serial Wire Debug)

SWD는 ARM 코어 기반 MCU에서 주로 쓰는 디버그 방식이다. SWCLK와 양방향 데이터 핀 SWDIO만으로 기본 디버깅을 수행할 수 있어 핀 수가 제한된 보드에서 유리하다.




SWDIO와 SWCLK는 각각 JTAG의 TMS와 TCK에 오버레이될 수 있다. 같은 커넥터를 공유하는 구성도 있으므로 실제 보드 설계와 디버거 설정을 기준으로 연결한다.

Comments

댓글을 불러오고 있습니다.