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配备这种转接卡,随机配备。