【转】wiggler 与 sdt JTAG(三)

来源:百度文库 编辑:神马文学网 时间:2024/05/01 14:24:15

wiggler 与 sdt JTAG(三)

嵌入式开发2007-11-07 09:50:09阅读141评论2  字号:大中小 订阅

以下转贴的都是大虾级人物的谈话:

上善若水:

以下是我在实践中的一些积累,发现这点是因为我在尝试用对SAMSUNG S3C44B0JTAG适用的编程板电路给SAMSUNG的另一款ARM9内核MPU S3C2440JTAG编程时出现问题,查阅了一些资料后最终解决。希望这些对那些在自制ARM JTAG编程器上遇到困难的朋友一点帮助。
一.JTAG仿真器的实质
JTAG (Joint Test Action Group)编程调试实质上是利用了MCU/MPU片上自带的跟踪调试功能(需MCU/MPU硬件支持)。JTAG编程板一端与PC的并口相连,另一端连接至目标板,由于通常的MCU/MPU的工作电压在1.8V-3.6V之间,而PC机并口输出的电平逻辑为5V,因此需做电平转换,通常使用一枚缓冲/驱动器(如:74××244/74××541)作隔离,并通过电阻分压,限制进入目标板的电平。因PC并口没有电压输出,所以编程板上的IC要由目标板供电,即:JTAG接口中的VCC脚是必须恰当连接的。
二. JTAG接口的管脚定义

图一主流的JTAG接口有14针和20针两种

14针的JTAG接口为老式接口。
JTAG中的非地管脚定义如下图二。

图二

三. 第一种线序的JTAG编程板电路
实测我所使用的SAMSUNG ARM7S3C44B0开发套件中的JTAG编程板电路如图

图三

但将该编程板与S3C2440相连后却无法正确载入程序。
依据244的输入输出关系,可整理PC并口与JTAG接口管脚的对应关系如下:


PC并口引脚
   2     
   3   
    8     
      4
JTAG引脚
TCK
TMS
  TDI
  nSRST


四. 第二种线序的JTAG编程板电路经查阅S3C2440的官方JTAG编程板SJF2440的USER’SGUIDE中的编程板电路,整理PC并口与JTAG接口管脚的对应关系如下:


PC并口引脚
   2
   3   
     4      
    11
JTAG引脚
TCK  
TDI
  TMS
  TDO


其电路如图四:



图四

据此推测,使用S3C44B0JTAG编程板对S3C2440的JTAG调试失败是因PC并口控制管脚的分配有区别。即,S3C2440的JTAG调试代理模拟JTAG时序所用到的并口管脚与S3C44B0的调试代理所用到的不同。
据此,在S3C44B0JTAG编程板上灵活飞线,再次使用该编程板对S3C2440调试成功。

五. 一点推测
在JTAG相关搜索里,发现网友李杰给出的一个JTAG编程板电路,如图五:

图五


该电路中的JTAG管脚与PC并口管脚的对应关系与S3C2440JTAG编程板中的此对应关系相同,而作者称,该电路适用于所有的ARM芯片。据此推测:大多公司开发的ARM调试软件支持两种不同线序的并口模拟JTAG调试,并且在调试开始时能自动侦测出编程板硬件连接并实施控制。官方给出的S3C2440 JTAG调试软件仅支持一种线序。
请大家指教,我的这种推测对不对。

twentyone : 我来回答吧...

先定义一下JTAG接口信号:TMS, TCK, TDO, TDI,nTRST,RTCK。这6个信号当中,TMS,TCK,TDO,TDI是必须的,如果缺一,调试肯定不行。nTRST为可选,这个信号是用来复位JTAG电路的,JTAG电路的复位一般不影响系统。RTCK信号一般没用到,除非是LPC的片子。LPC的片子比较特别,很多片子需要通过RTCK来使能芯片的JTAG接口。

JTAG接口分为2部分,一部分是板子上的JTAG接口,分为14针和20针两种。现在20针的用的比较多。一般板子上的接口有个通用的标准,你随便拿一块板子就可以找到一个标准的电路。也就是LZ的帖子的第一个图。

最后,调试的时候,如果用的JTAG小板,你说的问题就显现出来了。JTAG小板一头接你的目标板子,一头接并口。JTAG小板接板子的这头,一般都很固定,和你板子上的20针JTAG接口的信号对应就可以了。问题是JTAG小板和并口的连接。这个连接没有一个固定的标准,所以说不上那个比较典型。比较通用的是WIGGLER,但WIGGLER也有很多变种。其它的还有SDTJTAG,还有一个就是三星的JTAG小板。JTAG小板和并口的连接可以用用户自己定义。如果你用H-JTAG的话,H-JTAG的JTAG设置部分提供了另外的设置,你只要根据你的JTAG小板的电路进行一一对应的设置就可以。