以下是我在实践中的一些积累,发现这点是因为我在尝试用对SAMSUNG S3C44B0 JTAG适用的编程板电路给SAMSUNG的另一款ARM9内核MPU S3C2440 JTAG编程时出现问题,查阅了一些资料后最终解决。希望这些对那些在自制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 ARM7 S3C44B0开发套件中的JTAG编程板电路如图 但将该编程板与S3C2440相连后却无法正确载入程序。 依据244的输入输出关系,可整理PC并口与JTAG接口管脚的对应关系如下: PC并口引脚 2 3 8 4 JTAG引脚 TCK TMS TDI nSRST 四. 第二种线序的JTAG编程板电路 经查阅S3C2440的官方JTAG编程板SJF2440的USER’S GUIDE中的编程板电路,整理PC并口与JTAG接口管脚的对应关系如下: PC并口引脚 2 3 4 11 JTAG引脚 TCK TDI TMS TDO 据此推测,使用S3C44B0 JTAG编程板对S3C2440的JTAG调试失败是因PC并口控制管脚的分配有区别。即,S3C2440的JTAG调试代理模拟JTAG时序所用到的并口管脚与S3C44B0的调试代理所用到的不同。 据此,在S3C44B0 JTAG编程板上灵活飞线,再次使用该编程板对S3C2440调试成功。
五. 一点推测 在JTAG相关搜索里,发现网友李杰给出的一个JTAG编程板电路,如图五。 该电路中的JTAG管脚与PC并口管脚的对应关系与S3C2440 JTAG编程板中的此对应关系相同,而作者称,该电路适用于所有的ARM芯片。据此推测:大多公司开发的ARM调试软件支持两种不同线序的并口模拟 JTAG调试,并且在调试开始时能自动侦测出编程板硬件连接并实施控制。官方给出的S3C2440 JTAG调试软件仅支持一种线序。 请大家指教,我的这种推测对不对。
|