FSTWikiDiff for 1.4 김도집/JTAG
Login:
Password:
Join
U E D R S I H P RSS
FrontPage|FindPage|TitleIndex|RecentChanges

Difference between r1.4 and the current

@@ -2,18 +2,30 @@

-- 김도집 (2006.3.2)

= JTAG =[[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 코아
* 스캔 체인1 - 스캔 체인0의 서브 셋(디버그 모드)
* 스캔 체인2 - ICE
* 스캔 체인3 - External 
* 스캔 체인6 - ?
* 스캔 체인15 - 코프로세서

스캔 체인0은 ARM 코아 전체를 커버한다. 데비터 및 어드레스 버스[31:0], 코아 제어 신호, ICE 제어 신호를 모두 커버한다.
스캔 체인1은 스캔 체인 0의 서브 셋으로 데이터 버스[31:0]과 BREAKPT 신호를 커버한다.
스캔 체인2은 ICE 관련 신호들을 커버한다.
스캔 체인15은 코프로세서 관련 신호들을 커버한다.

== TAP ==
@@ -22,7 +34,25 @@
<< TAP 컨트롤러 상태 변이>>

=== 레지스터 ===
* data Bypass register 
* ID code register (32bits) 
* Instruction register (4bits) 
* Scan path select register (4bits) 
 
bypass 레지스터 (5비트 유효)는 1 TCLK 지연을 두고 TDI입력이 TDO로 출력 될 때 사용된다. 이는 SHIFT-DR 상태에서 동작한다. 
* instruction  
ID code 레지스터 (4는 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)

Contents

1 JTAG
1.1 JTAG Pin
1.2 스캔 체인
1.3 TAP
1.3.1 레지스터

1 JTAG #

1.1 JTAG Pin #

  • nTRST : Power up 이후 적어도 한번은 Reset를 주어야 한다.
  • TCK : Clock
  • TMS : State machine signal
  • TDI : Data input
  • TDO : Data output

1.2 스캔 체인 #

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은 코프로세서 관련 신호들을 커버한다.

1.3 TAP #

TAP은 Test Access Port의 약자이다. 시리얼 테스트 및 디버그를 위해서는 JTAG 상태 머신을 통해 제어가 필요하다. 이러한 것을 처리하는 것이 TAP 컨트롤러이다.

<< TAP 컨트롤러 상태 변이>>

1.3.1 레지스터 #

  • 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진코드
EXTESTb00000x0
SCAN_Nb00100x2
SAMPLE/PRELOADb00110x3
RESTARTb01000x4
CLAMPb01010x5
HIGHZb01110x7
CLAMPZb10010x9
INTESTb11000xC
IDCODEb11100xE
BYPASSb11110xF

last modified 2006-03-07 09:32:22
ShowPage|FindPage|DeletePage|LikePages Valid XHTML 1.0! Valid CSS! powered by MoniWiki
0.0318 sec