J-Link는 다양한 대상 인터페이스들을 지원합니다. 현재는 다음의 인터페이스들을 지원하고 있습니다:
- JTAG
- SWD/SWO/SWV
- cJTAG
- FINE
- SPD
- ICSP
흔한 인터페이스 예제 중 하나는 JTAG입니다. JTAG 인터페이스 연결은 아래와 같이 20핀 시스템입니다.
* J-Link ULTRA+와 같은 최신 J-Link 제품에서는 펌웨어 확장용으로 남겨둡니다. 일반적인 디버그 환경에서는 오픈 상태로 두거나 GND에 연결하면 됩니다. 일반적으로 JTAG/SWD에 필수적인 핀은 아닙니다.
J-Link의 JTAG 커넥터는 ARM의 Multi-ICE와 호환됩니다. JTAG 커넥터는 키(key)가 있는 20핀의 2.54mm 수 박스 헤더 절연 변위 커넥터(Insulation Displacement Connector, IDC)로 리본 케이블에 장착된 IDC 소켓과 체결됩니다. 올바르게 연결하기 위해서는, JTAG 핀 배치를 꼼꼼히 확인할 필요가 있습니다.
다음은 J-Link의 JTAG 핀 배치를 나타냅니다:
핀 | 신호 | 유형 | 설명 | 기능 |
---|---|---|---|---|
1 | VTref | 입력 | 대상의 기준 전압 | 대상에 전력이 공급되었는지 확인하기 위해, 입력 비교기를 위한 논리 레벨 기준을 만들기 위해 그리고 대상으로의 출력 논리 레벨을 제어하기 위해 사용됩니다. 일반적으로 대상 보드의 Vdd로부터 공급되며 직렬 저항이 없어야 합니다. |
2 | 연결하지 않음 | NC | J-Link에서 연결되어 있지 않음 | 다른 장비와의 호환성을 위해 남겨두었습니다. 대상 시스템에서는 Vdd에 연결하거나 오픈 상태로 둡니다. |
3 | nTRST | 출력 | JTAG 리셋 | J-Link에서 대상 JTAG 포트의 리셋 신호로의 출력. 일반적으로 대상 CPU의 nTRST에 연결됩니다. 해당 핀이 연결되지 않았을 때 의도치 않게 리셋 되는 것을 방지하기 위해 이 핀은 일반적으로 대상에서 하이로 풀업 되어 있습니다. |
5 | TDI | 출력 | 대상 CPU의 JTAG 데이터 입력 | 대상 보드에서 이 핀을 정의된 상태로 풀업 또는 풀다운 하는 것이 권장됩니다. 일반적으로 대상 CPU의 TDI에 연결됩니다. |
7 | TMS | 출력 | 대상 CPU의 JTAG 모드 설정 입력 | 이 핀은 대상에서 풀업 되어 있어야 합니다. 일반적으로 대상 CPU의 TMS에 연결됩니다. |
9 | TCK | 출력 | 대상 CPU의 JTAG 클럭 신호 | 대상 보드에서 이 핀을 정의된 상태로 풀업 또는 풀다운 하는 것이 권장됩니다. 일반적으로 대상 CPU의 TCK에 연결됩니다. |
11 | RTCK | 입력 | 대상으로부터의 반환 테스트 클럭 신호 | 일부 대상은 JTAG 입력을 내부 클럭에 동기화해야만 합니다. 이 요구 사항을 충족하기 위해, 반환되어 보정된(returned and retimed) TCK 신호를 사용하여 TCK 속도를 동적으로 제어할 수 있습니다. 추가 변경을 하기 전에 TCK 변경 내용이 올바르게 반영되기를 기다리는 적응형 클럭(adaptive clocking)을 J-Link는 지원합니다. 가능한 RTCK에 연결하고, 그렇지 않을 경우 GND에 연결합니다. |
13 | TDO | 입력 | 대상 CPU의 JTAG 데이터 출력 | 일반적으로 대상 CPU의 TDO에 연결됩니다. |
15 | nRESET | I/O | 대상 CPU 리셋 신호 | 일반적으로 대상 CPU의 RESET 핀에 연결되며, 일반적으로 “nRST”, “nRESET” 또는 "RESET"라고 합니다. 이 신호는 액티브 로우 신호입니다. |
17 | DBGRQ | NC | J-Link에서 연결되어 있지 않음 | 대상 시스템에의 디버그 요청 신호로 사용되는 다른 장비와의 호환성을 위해 남겨두었습니다. 일반적으로 가능한 DBGRQ에 연결하고, 그렇지 않을 경우 오픈 상태로 둡니다. |
19 | 5V-전원 | 출력 | 공급 전압 | 이 핀은 대상 하드웨어에 전원을 공급하는 데 사용할 수 있습니다. |
참고사항
- NC로 표기된 모든 핀들은 J-Link 내부에서 연결되어 있지 않습니다. 아무 신호나 여기에 인가할 수 있습니다; J-Link는 그런 신호들을 무시할 것입니다. 4, 6, 8, 10, 12, 14, 16, 18 및 20번 핀은 J-Link의 GND에 연결되어 있는 GND 핀입니다. 대상 시스템에서도 GND로 연결해야만 합니다.
- 2번 핀은 J-Link 내부에서는 연결되어 있지 않습니다. 많은 대상들이 1번 핀과 2번 핀이 연결되어 있습니다. 일부 대상은 VCC 공급에 1번 핀 대신 2번 핀을 사용합니다. 이런 대상들은 대상의 JTAG 커넥터에서 1번 핀과 2번 핀이 연결되어 있지 않는 한, J-Link로는 동작하지 않을 것입니다.
- 3번 핀 (TRST)는 대상 CPU의 TRST 핀 (nTRST라고도 함)에 연결해야 합니다. 이 핀이 연결되어 있지 않더라도 J-Link는 동작하지만, 디버깅 시 일부 제한을 경험할 수 있습니다. TRST는 CPU 리셋(15번 핀)과 분리되어야 합니다.
- 11번 핀 (RTCK)는 가능한 RTCK에 연결하고, 그렇지 않을 경우 GND에 연결해야 합니다.
- 커넥터의 19번 핀 (5V-대상 전원)은 대상 하드웨어에 전원을 공급하는 데 사용할 수 있습니다. 공급 전압은 5V이며 최대 전류는 300mA입니다. 출력 전류는 모니터링되며 과부하 및 단락으로부터 보호됩니다.
J-Link 인터페이스에 대해 보다 자세히 알고 싶다면, 여기를 방문해 보시기 바랍니다: “Segger J-Link interface description”.