Skip navigation.

Fat R笔记……与减肥无关

Fat awful terrible Rubbish-bin

JTAG...

常见的JTAG cable结构都比较简单,一端是DB25,接到电脑的并口上,中间经过74HC244和一些电阻实现电平转换(5V<->3.3V?)(也有比较猥琐的只用了几个100 Ohm电阻的方案,似乎我这里用来烧CPLD的就是一条这样子的...),另一端的JTAG header接到目标板的JTAG interface。

并口DB25原先主要是用来连接打印机,其引脚定义如下:
25 Pin D-Sub SPP SIGNAL DIRECTION IN/OUT
1 /Strobe In/Out
2 Data 0 Out
3 Data 1 Out
4 Data 2 Out
5 Data 3 Out
6 Data 4 Out
7 Data 5 Out
8 Data 6 Out
9 Data 7 Out
10 /ACK In
11 Busy In
12 Paper Out In
13 Select In
14 /Line Feed In/Out
15 /Error In
16 /INIT In/Out
17 /Select In In/Out
18-25 Ground GND


可见,数据线Pin2~Pin9可以用来发送数据,Pin10~Pin13等可以用来接收数据。
JTAG的数据传输形式是串行,主要使用了以下引脚:
TDI (Test Data In)
TDO (Test Data Out)
TCK (Test ClocK)
TMS (Test Mode Select)
TRST (Test ReSeT) optional.

因此,DB25-JTAG实际上只利用了DB25的少数几根线。但由于DB25的8条数据线都可以作为output,市面上就出现了各种使用不同Pin Assignment的JTAG线。例如Wiggler的Pin assignment:
TMS   : Pin3 (D1)
TCK   : Pin4 (D2)
TDI   : Pin5 (D3)
TDO   : Pin11 (Busy)
SRST  : Pin2 (D0)
TRST  : Pin6 (D4)

(参见Wiggler的电路图,但最后的nSRST和nTRST可能不一定用到,并且在H-JTAG中的定义也不一样,TRST是Pin2,没有SRST)

H-JTAG里还有另外一种接法--STD,定义如下:
TMS   : Pin3 (D1)
TCK   : Pin2 (D0)
TDI   : Pin8 (D6)
TDO   : Pin13 (Select)
SRST  : N/A
TRST  : Pin4 (D2)


而S3C2410的烧写程序SJF2410用的是:
TCK   : Pin2 (D0)
TDI   : Pin3 (D1)
TMS   : Pin4 (D2)
TDO   : Pin11 (Busy)

这个可以在源代码中的jtag.h文件里看到。

除了DB25那边的Pin Assignment有多种方案,JTAG connector也有20pin, 14pin, 12pin, 10pin等几种标准。这里一块ARM9开发板配的DB25-JTAG转换板就十分好玩,上面也是只有一块244,但是有Wiggler, STD, S3C2410三个20pin接口。由于20pin connector的Pin Assignment是固定的,三个接口对应的是DB25那边的三种接法,因此开发板可以根据pc上运行的程序不同选择不同的接口来接。

20Pin Connector的定义如下(参考此图):
 Vcc      1  2 NC
 nTRST    3  4 GND
 TDI      5  6 GND
 TMS      7  8 GND
 TCK      9 10 GND
 GND     11 12 GND
 TDO     13 14 GND
 NRESET  15 16 GND
 NC      17 18 GND
 NC      19 20 GND


14Pin:
 nTRST  1   2 GND
 TDI    3   4 GND
 TDO    5   6 GND
 TMS    7   8 GND
 TCK    9  10 GND
 nSRST 11  12 n/a
 DINT  13  14 Vcc

(DINT pin is used to raise Debug Interrupt. Many chips has no this pin.)


12Pin:
 nTRST  1   2 GND
 TDI    3   4 GND
 TDO    5   6 GND
 TMS    7   8 GND
 TCK    9  10 GND
 nSRST 11  12 GND


10Pin:
 TCK    1   2 Vcc
 TDI    3   4 Vcc
 TDO    5   6 GND
 TMS    7   8 GND
 nTRST  9  10 GND



关于JTAG几个信号,在H-JTAG主页上提供了一个文档,里面有对此进行介绍:

……下面,让我们从TAP(Test Access Port)开始。
  TAP是一个通用的端口,通过TAP可以访问芯片提供的所有数据寄存器(DR)和指令寄存器(IR)。对整个TAP的控制是通过TAP Controller来完成的。TAP总共包括5个信号接口TCK、TMS、TDI、TDO和TRST :其中4个是输入信号接口和另外1个是输出信号接口。一般,我们见到的开发板上都有一个JTAG接口,该JTAG接口的主要信号接口就是这5个。下面,我先分别介绍这个5个接口信号及其作用。
Test Clock Input (TCK)
TCK为TAP的操作提供了一个独立的、基本的时钟信号,TAP的所有操作都是通过这个时钟信号来驱动的。TCK在IEEE 1149.1标准里是强制要求的。
Test Mode Selection Input (TMS)
TMS信号用来控制TAP状态机的转换。通过TMS信号,可以控制TAP在不同的状态间相互转换。TMS信号在TCK的上升沿有效。TMS在IEEE 1149.1标准里是强制要求的。
Test Data Input (TDI)
TDI是数据输入的接口。所有要输入到特定寄存器的数据都是通过TDI接口一位一位串行输入的(由TCK驱动)。TDI在IEEE 1149.1标准里是强制要求的。
Test Data Output (TDO)
TDO是数据输出的接口。所有要从特定的寄存器中输出的数据都是通过TDO接口一位一位串行输出的(由TCK驱动)。TDO在IEEE 1149.1标准里是强制要求的。
Test Reset Input (TRST)
TRST可以用来对TAP Controller进行复位(初始化)。不过这个信号接口在IEEE 1149.1标准里是可选的,并不是强制要求的。因为通过TMS也可以对TAP Controller进行复位(初始化)。

  事实上,通过TAP接口,对数据寄存器(DR)进行访问的一般过程是:
  1 通过指令寄存器(IR),选定一个需要访问的数据寄存器;
  2 把选定的数据寄存器连接到TDI和TDO之间;
  3 由TCK驱动,通过TDI,把需要的数据输入到选定的数据寄存器当中去;同时把选定的数据寄存器中的数据通过TDO读出来。


另外,可选信号nSRST的定义如下(见参考资料1):
nSRST is a "system reset" signal and acts like conventional "Reset' button.


参考资料:
[1] http://www.linux-mips.org/wiki/JTAG
[2] http://en.wikipedia.org/wiki/Jtag
[3] http://docwiki.gumstix.org/JTAG
[4] http://wiki.openwrt.org/OpenWrtDocs/Customizing/Hardware/JTAG_Cable
[5] http://www.bluewaternz.com/corporate/uni/unikit/jtag/

orz...原来vb的native code是这样调试的……The magic behind TaskSwitchXP

Comments

Anonymous 22. September 2006, 05:17

Anonymous writes:

随着通讯电子技术发展,芯片、单板、系统的复杂度不断提高,体积不断缩小,测试的难度、成本、周期都在急剧增加,边界扫描测试技术就是在这种背景下应运而生的,并成为业界最成熟的DFT技术。

金鹏飞科技经过不懈努力,自主开发了金鹏飞 JTAG 边界扫描测试 系统平台。该产品符合电气电子工程协会IEEE1149.1标准,可应用于产品设计、原型调试、生产测试、现场安装、维修服务等产品生命周期的全过程,对降低测试难度、提高测试质量、提高产品故障定位能力等各个方面都有重大意义。

以金鹏飞 JTAG 边界扫描测试 系统平台为基础,金鹏飞科技相继推出了电信类产品、高密度类产品、高可靠性类产品、终端类产品、定制类产品 JTAG 边界扫描测试系统方案,协助客户提高测试效能。

金鹏飞 JTAG 边界扫描测试 系统软件平台全中文界面,支持WINDOWS NT/2000/XP,自动化程度高,操作便捷。同时金鹏飞 JTAG 边界扫描测试系统平台以下一代测试平台为目标,产品功能特色显著:提供开发调试、小批量验证、批量生产和市场服务的综合解决方案;集成电路板级/系统级工艺测试诊断、ISP编程、开发调试功能;提供开放的工业级标准脚本开发语言;提供多功能非BS扩展测试;提供文档锁定功能;支持逻辑功能自学习功能;兼容各种标准数据接口等。

摘自WWW.TESTCENT.COM

Anonymous 22. September 2006, 05:18

Anonymous writes:

JTAG 边界扫描测试系统平台功能
◆JTAG 扫描链路分析测试

◆BS器件安装检查

◆电路板DFT设计检查

◆电路板工艺互连测试

◆故障定位诊断

◆非BS扩展测试

◆物理接口测试

◆电路板可靠性验证

◆CLUSTER逻辑功能验证

◆ASIC芯片功能验证

◆信号采样调试

◆CPU读写调试

◆FLASH加载

◆存储器测试

◆FPGA/EPLD编程

How to use Quote function:

  1. Select some text
  2. Click on the Quote link

Write a comment

Comment
(BBcode and HTML is turned off for anonymous user comments.)

If you can't read the words, press the small reload icon.


Smilies