Difference between r1.9 and the current
@@ -5,7 +5,12 @@
[[TableOfContents]]
= JTAG =
== JTAG Pin ==
* nTRST : Power up 이후 적어도 한번은 Reset를 주어야 한다.
* TCK : Clock
* TMS : State machine signal
* TDI : Data input
* TDO : Data output
== 스캔 체인 ==
ARM은 크게 네 개의 스캔 체인(scan chain)을 갖는다.
* 스캔 체인0 - ARM7TDMI 코아
@@ -29,7 +34,25 @@
<< TAP 컨트롤러 상태 변이>>
=== 레지스터 ===
* DR Bypass register
* ID code register (Data 32bits)
* Instruction register (4bits)
* Scan path select register (4bits)
bypass 레지스터) 는 1 TCLK 지연을 두고 TDI입력이 TDO로 출력 될 때 사용된다. 이는 SHIFT-DR 상태에서 동작한다.
* IR (Instruction
ID code 레지스터) 는 32비트의 ID 코드 값을 갖고 있다. CAPTURE-DR 상태 동안 읽을 수 있다.
TAP에서 사용하는 명령(instruction)은 다음과 같다:
||'''명령'''||'''이진코드'''||'''16진코드'''||
||EXTEST||b0000||0x0||
||SCAN_N||b0010||0x2||
||SAMPLE/PRELOAD||b0011||0x3||
||RESTART||b0100||0x4||
||CLAMP||b0101||0x5||
||HIGHZ||b0111||0x7||
||CLAMPZ||b1001||0x9||
||INTEST||b1100||0xC||
||IDCODE||b1110||0xE||
||BYPASS||b1111||0xF||
JTAG에 대한 내용을 정리한다.
-- 김도집 (2006.3.2)
1.1 JTAG Pin #
- nTRST : Power up 이후 적어도 한번은 Reset를 주어야 한다.
- TCK : Clock
- TMS : State machine signal
- TDI : Data input
- TDO : Data output
ARM은 크게 네 개의 스캔 체인(scan chain)을 갖는다.
- 스캔 체인0 - ?ARM7TDMI 코아
- 스캔 체인1 - 스캔 체인0의 서브 셋 (디버그 모드)
- 스캔 체인2 - ICE
- 스캔 체인3 - External
- 스캔 체인6 - ?
- 스캔 체인15 - 코프로세서
스캔 체인0은 ARM 코아 전체를 커버한다. 데비터 및 어드레스 버스[31:0], 코아 제어 신호, ICE 제어 신호를 모두 커버한다.
스캔 체인1은 스캔 체인 0의 서브 셋으로 데이터 버스[31:0]과 BREAKPT 신호를 커버한다.
스캔 체인2은 ICE 관련 신호들을 커버한다.
스캔 체인15은 코프로세서 관련 신호들을 커버한다.
TAP은 Test Access Port의 약자이다. 시리얼 테스트 및 디버그를 위해서는 JTAG 상태 머신을 통해 제어가 필요하다. 이러한 것을 처리하는 것이 TAP 컨트롤러이다.
<< TAP 컨트롤러 상태 변이>>
- Bypass register
- ID code register (32bits)
- Instruction register (4bits)
- Scan path select register (4bits)
bypass 레지스터는 1 TCLK 지연을 두고 TDI입력이 TDO로 출력 될 때 사용된다. 이는 SHIFT-DR 상태에서 동작한다.
ID code 레지스터는 32비트의 ID 코드 값을 갖고 있다. CAPTURE-DR 상태 동안 읽을 수 있다.
TAP에서 사용하는 명령(instruction)은 다음과 같다:
명령 | 이진코드 | 16진코드 |
EXTEST | b0000 | 0x0 |
SCAN_N | b0010 | 0x2 |
SAMPLE/PRELOAD | b0011 | 0x3 |
RESTART | b0100 | 0x4 |
CLAMP | b0101 | 0x5 |
HIGHZ | b0111 | 0x7 |
CLAMPZ | b1001 | 0x9 |
INTEST | b1100 | 0xC |
IDCODE | b1110 | 0xE |
BYPASS | b1111 | 0xF |