Joint Test Action Group
디지털 회로에서 특정 노드의 입출력을 위해 직렬 통신으로 입력 또는 출력 데이터를 수신하는 방식.
JTAG는 Joint Test Action Group의 약자로, 디지털 회로의 테스트, 디버깅 및 프로그래밍을 위한 표준 인터페이스입니다. JTAG는 초기에는 반도체 장치의 테스트를 위해 개발되었지만, 이후에는 디버깅 및 프로그래밍에도 널리 사용되고 있습니다.
JTAG 인터페이스는 회로 기판에 내장된 테스트 포인트를 통해 접근하여 회로의 상태를 읽거나 제어할 수 있습니다. JTAG는 일련의 테스트 접근 포인트를 통해 회로의 내부 상태를 스캔하는 방식으로 동작합니다. 이를 통해 회로의 테스트, 디버깅, 프로그래밍 등을 수행할 수 있습니다.
JTAG는 다양한 디바이스, 특히 마이크로컨트롤러, FPGA, ASIC 등에서 사용됩니다. JTAG 인터페이스를 지원하는 디버거나 프로그래머를 사용하면 회로 기판 상의 장치를 초기화하거나 프로그램을 업로드하고 디버깅할 수 있습니다. 또한, JTAG를 통해 회로의 내부 레지스터 값을 읽거나 수정하여 디버깅에 활용할 수도 있습니다.
JTAG는 디지털 회로 개발 및 테스트에 있어서 매우 유용한 도구로 사용되며, 다양한 개발 환경과 디버거에서 지원되고 있습니다.
STM32 MCU를 위한 JTAG 디버거로는 다음과 같은 종류가 있습니다:
ST-Link: STMicro에서 제공하는 JTAG 디버거로, STM32 MCU와 완벽하게 호환됩니다. ST-Link는 내장된 디버깅 및 프로그래밍 기능을 제공하며, STM32CubeIDE 등의 개발환경과 함께 사용됩니다.
J-Link: SEGGER사에서 제공하는 JTAG 디버거로, STM32 MCU와 호환됩니다. J-Link는 강력한 디버깅 기능과 고속 프로그래밍을 지원하며, 다양한 개발환경과 함께 사용할 수 있습니다.
Black Magic Probe: Black Sphere Technologies에서 개발한 JTAG 디버거로, STM32 MCU와 호환됩니다. Black Magic Probe는 오픈 소스 기반으로 제작되었으며, 다양한 개발환경에서 사용할 수 있습니다.
ULINK: Keil사에서 제공하는 JTAG 디버거로, STM32 MCU와 호환됩니다. ULINK는 Keil MDK 개발환경과 함께 사용되며, 안정적인 디버깅 기능을 제공합니다.
개발 환경, 기능, 가격 등을 고려하여 적합한 디버거를 선택
STM8과 STM32를 동시에 지원하는 ST의 공식 디버거.
오픈소스로 공개된 자료가 있어 서드파티 제품도 많지만 크기 문제가 아니라면 ST 제품도 가격이 저렴한지라 그냥 정품 ST LINK도 많이 쓰인다.
ST LINK는 다음과 같은 버전이 있다.
V2 - 시장에 깔린 제품 대다수는 V2로 기본적으로 내부에 STM32F103CT8이 탑재되어 있으며 STM8과 STM32 프로그래밍을 지원한다.
V3 - 2020년에 출시된 차세대 제품. 원래 20핀짜리 커넥터를 쓰던 V2와는 다르게 좀더 작은 14핀 커넥터를 쓰며 STM32H시리즈로 메인 프로세서가 변경되었고 다음과 같은 종류로 나눠진다
V3SET - 기본형. V2 대비 다음과 같은 기능이 추가되어 있다.
버추얼 시리얼포트.
신호 변환기능. 단순 GPIO신호 뿐만 아니라 SPI/UART/I2C/CAN등의 통신 신호도 USB로 읽을수 있게 바꿔준다.
확장보드를 연결하면 14핀 커넥터 뿐만 아니라 기존 20핀 커넥터나 10핀짜리 커넥터도 쓸수있으며 시리얼 와이어만 따로 뽑아서 쓸수도 있다
보드 자체에서 전원을 뽑아서 프로그래밍 타겟에 전원을 공급 가능하다.