ARM系统的JTAG接口的设计不当往往使硬件系统无法调试,所以在设计ARM系统前要先熟悉ARM系统的JTAG接口的定义和常见问题。
|
|
1.ARM系统的JTAG接口是如何定义的? 每个PIN又是如何连接的? |
下图是JTAG接口的信号排列示意:
|
|
接口是一个20脚的IDC插座。下表给出了具体的信号说明:
|
表 1 JTAG引脚说明
|
序号
|
信号名
|
方向
|
说 明
|
1
|
Vref
|
Input
|
接口电平参考电压,通常可直接接电源
|
2
|
Vsupply
|
Input
|
电源
|
3
|
nTRST
|
Output
|
(可选项) JTAG复位。在目标端应加适当的上拉电阻以防止误触发。
|
4
|
GND
|
--
|
接地
|
5
|
TDI
|
Output
|
Test Data In from Dragon-ICE to target.
|
6
|
GND
|
--
|
接地
|
7
|
TMS
|
Output
|
Test Mode Select
|
8
|
GND
|
--
|
接地
|
9
|
TCK
|
Output
|
Test Clock output from Dragon-ICE to the target
|
10
|
GND
|
--
|
接地
|
11
|
RTCK
|
Input
|
(可选项) Return Test Clock。由目标端反馈给Dragon-ICE的时钟信号,用来同步TCK信号的产生。不使用时可以直接接地。
|
12
|
GND
|
--
|
接地
|
13
|
TDO
|
Input
|
Test Data Out from target to Dragon-ICE.
|
14
|
GND
|
--
|
接地
|
15
|
nSRST
|
Input/Output
|
(可选项) System Reset,与目标板上的系统复位信号相连。可以直接对目标系统复位,同时可以检测目标系统的复位情况。为了防止误触发,应在目标端加上适当的上拉电阻。
|
16
|
GND
|
--
|
接地
|
17
|
NC
|
|
保留
|
18
|
GND
|
--
|
接地
|
19
|
NC
|
--
|
保留
|
20
|
GND
|
--
|
接地
|
|
|
2.目标系统如何设计? |
目标板使用与Dragon-ICE一样的20脚针座,信号排列见表1。RTCK和 nTRST这两个信号根据目标ASIC有否提供对应的引脚来选用。nSRST则根据目标系统的设计考虑来选择使用。下面是一个典型的连接关系图:
|
复位电路中可以根据不同的需要包含上电复位、手动复位等等功能。如果用户希望系统复位信号nSRST能同时触发JTAG口的复位信号nTRST,则可以使用一些简单的组合逻辑电路来达到要求。后面给出了一种电路方案的效果图。
图 3 一个复位电路结构的例子
在目标系统的PCB设计中,最好把JTAG接口放置得离目标ASIC近一些,如果这两者之间的连线过长,会影响JTAG口的通信速率。 另外电源的连线也需要加以额外考虑,因为Dragon-ICE要从目标板上吸取超过100mA的大电流。最好能有专门的敷铜层来供电,假如只能使用连线供电的话,最小线宽不应小于10mil (0.254mm)。
|
|
3. 14脚JTAG如何与20JTAG连接? |
Dragon-ICE使用工业标准的20脚JTAG插头,但是有些老的系统采用一种14脚的插座
|
。这两类接口的信号排列如下:
|
|
这两类接口之间的信号电气特性都是一样的,因此可以把对应的信号直接连起来进
|
行转接。Dragon-ICE配备这种转接卡,随机配备。
|