JTAG使用说明

遵循JTAG的器件包含以下几个管脚
  TCK 测试时钟输入,它和系统时钟不同
  TDI测试数据输入,通过它数据移位进入器件
  TDO测试数据输出,通过它数据从器件移出
  TMS测试模式选择,在JTAG规范中TMS命令选择测试模式
  TRST测试复位输入,它为TAP控制器提供异步初始化
  器件的测试支持功能是通过TAP控制器来实现的。TAP是一个状态机,它控制控制所有相关操作,每种遵循JTAG的器件都有自己的TAP控制器,通过TCK和TMS可以使状态机内部的状态发生变化,从而支持诸如断点、单步、内部观察等调试工作。
  本章针对ARM7TDMI介绍调试结构。ARM的调试体系采用协议转换器来使调试器通过JTAG与ARM核直接通信。前面JTAG标准中提到的扫描链功能是测试用,这里把它作为调试用:捕获数据总线上的信号并向内核或存储器插入新的信息。ARM7TDMI-S核内具有EmbeddedICE逻辑,EmbeddedICE逻辑提供对片内调试的支持。调试指令直接通过扫描链插入ARM内核并执行。根据插入调试指令的不同,内核可
以处于观察、保存或改变状态。ARM的调试体系可以使程序指令执行速度处于调试速度或全速运行。在ARM中采用JTAG的特点是:通过JTAG接口可以观察ARM内核状态和系统状态(注意:系统状态包括片内外设,不同于内核状态);不占用额外的目标系统资源;提供传统的断点访问和观察点访问;不再需要另外的UART端口来和监控程序通信。
  围绕ARM内核有两个扫描链:围绕整个内核外围的一个扫描链以及仅仅覆盖数据总线和断点的扫描链。由于后者的链比较短,从而使调试指令和数据可以快速插入内核,避免了额外的时间
ARM系统的JTAG接口的设计不当往往使硬件系统无法调试,所以在设计ARM系统前要先熟悉ARM系统的JTAG接口的定义和常见问题。
1.ARM系统的JTAG接口是如何定义的? 每个PIN又是如何连接的?asmk
下图是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配备这种转接卡,随机配备。
至于楼主说的10管脚的,我还真没有到!????????????
目前 JTAG 接口的连接有两种标准,即 14 针接口和 20 针接口,其定义分别如下所示。
14 针JTAG 接口定义:
14 针 JTAG 接口定义引 脚 名 称 描 述
1 、 13               VCC 接电源
2 、 4 、 6 、 8 、 10 、 14    GND 接地
3  nTRST             测试系统复位信号
5  TDI              测试数据串行输入
7  TMS              测试模式选择
9  TCK              测试时钟
11 TDO              测试数据串行输出
12 NC               未连接
20 针 JTAG 接口定义引 脚 名 称 描 述
1 VTref             目标板参考电压,接电源
2 VCC 
             接电源
3 nTRST              测试系统复位信号
4、6、8、10、12、14、16、18、20  GND 接地
5 TDI               测试数据串行输入
7 TMS               测试模式选择
9 TCK               测试时钟
11 RTCK              测试时钟返回信号
13 TDO               测试数据串行输出
15 nRESET             目标系统复位信号
17 、 19 NC            未连接
气压顶杆下面以S3C4510B开发板为例说明JTAG接口:可用性评估
在保证电源电路、晶振电路和复位电路正常工作的前提下,可通过JTAG 接口调试S3C4510B,在系统上电前,首先应检测JTAG 接口的 TMS 、 TCK 、 TDI 、 TDO 信号是否已与 S3C4510B 的对应引脚相连,其次应检测 S3C4510B 的 nEWAIT 引脚( Pin71 )是否已上拉, ExtMREQ 引脚( Pin108 )是否已下拉,对这两只引脚的处理应注意,作者遇到多起S3C4510B 不能正常工作或无法与JTAG 接口通信,均与没有正确处理这两只引脚有关。
给系统上电后,可通过示波器查看 S3C4510B 对应引脚的输出波形,判断是否已正常工作,若S3C4510B 已正常工作,在使能片内 PLL 电路的情况下, SDCLK/MCLKO 引脚( Pin77 )应输出频率为 50MHz 的波形,同时, MDC 引脚( Pin50 )和其他一些引脚也应有波形输出。
在保证 S3C4510B 已正常工作的情况下,可使用 ADS 或 SDT 通过 JTAG 接口对片内的部件进行访问和控制。
在此,首先通过对片内控制通用 I/O 口的特殊功能寄存器的操作,来点亮连接在 P3 ~ P0 口上的4 只 LED ,用以验证 ADS 或 SDT 调试环境是否已正确设置,以及与 JTAG 接口的连接是否正常。
ADS 和 SDT 均为 ARM 公司为方便用户在 ARM 芯片上进行应用开发而推出的一整套集成开发工具,其中, ADS 为 SDT 的升级版本。该系统的调试以 ADS 为例,同时也适合于 SDT 开发环境。
连接好硬件后,打开 AXD Debugger ,建立与目标板(待调试的系统板)的连接, AXDDebugger 有软件仿真方式和带目标系统的调试方式,此时应工作在带目标系统的调试方式。
选择菜单 System Views → Command Line Interface 功能,该选项为 AXD Debugger 的一个命令行窗口,可在该窗口内输入各种调试命令,使用非常方便。在命令行窗口输入:
> setmem 0x3FF5000, 0xFFFF, 32
> setmem 0x3FF5008, 0xFFFF, 32
setmem 命令用于对特定的地址设置特定的值,待设定的值可以是 8 位、 16 位或 32 位,在此,对通用 I/O 口的模式寄存器和数据寄存器设置相应的值,点亮 LED 。
S3C4510B 在复位后,特殊功能寄存器的基地址为 0x3FF0000, 由表 5 -2-3 可知
,I/O 口的模式寄存器偏移地址为0x5000,因此, I/O 口的模式寄存器的物理地址为 0x3FF5000 ,设定该寄存器的值为 0xFFFF ,将 I/O 口置为输出方式。 I/O 口的数据寄存器的物理地址为 0x3FF5008 ,设定该寄存器的值为 0xFFFF ,将 I/O 口的输出置为高电平。
在执行完以上两条命令后,连接在通用 I/O 口的 4 只 LED 应被点亮,表示调试系统的软、硬件连接完好,可进行下一步的调试工作,否则,应重新检查调试系统。
用户若使用 SDT 作为调试工具,操作方法类似。 连接好硬件后,打开 ARM Debugger for Windows ,建立与目标板(待调试的系统板)的连接,选择菜单 View → Command 功能,即可显示命令行窗口,在命令行窗口输入:
Debug:let 0x3FF5000 = 0xFFFF
Debug:let 0x3FF5008 = 0xFFFF
执行完以上两条命令后,连接在通用 I/O 口的 4 只 LED 应被点亮。
涤绒
关于通用 I/O 口更具体的工作原理和使用方法,可参考S3C4510B 用户手册。
用户系统若能正常完成上述操作并成功点亮连接在P3~P0 口上的LED 显示器,则表明S3C4510B已在正常工作,且调试环境也已正确建立,以后的调试工作就相对简单。笔者曾遇到多个用户系统因为不能完成这步工作,使开发者失去信心而最终放弃。
紧急求救:JTAG的TRST#引脚出问题了
不知道什么原因,我的板子JTAG的TRST#引脚出问题了。导致无法进入仿真界面。
以前是可以进入仿真环境,并下载代码执行的,后来给同学使用了一周,他调试了其他的部分,我接手后突然发现不能仿真了。状况如下:
TRST#对地电阻仅为 20欧姆,(原本应当是很大,约100M),说明TRST#引脚可能被击穿了。该引脚是输入引脚,由JTAG提供,按道理应当不可能损坏,可就是出问题了。
目前测试DSP的情况是:RESET#信号稳定而且正常,CVDD DVDD稳定而且正常,说明电源部分问题不大。
CLKIN=25M,CLKOUT2输出为 12.5MHZ CLKOUT3=3.125MHZ稳定方波(8分频)
ECLKOUT=12.5MHZ(2分频),说明PLL的D0 D1 D2D3都是复位后的正常值,OSCDIV0是8分频,说明DSP时钟部分应当是正常的。
JTAG测试情况是:未接仿真器:TMS=1 TRST#=0 TDI PD、TCK TCKRET.EMU0/1=1
GND=0
烧烤车
接入仿真器后:TMS出现一高电平优恢复到0,TRST#=1.2V左右(有问题),TDI=1,PD=1
TDO=0 TCK和TCKRET#有10MHZ左右方波,EMU0/1=1。tck_ret相对TCK衰减很小
说明除了 TRST#信号之外,其余jtag信号应当正常。 TRST#和GND之间并未短路,只是对地阻抗很小。
我没有在JTAG和DSP之间加入缓冲,二者之间布线距离约1.65inch。走线为第2信号层(中间层)。 TRST#中间没有和任何其他器件相连,直接从DSP引到JTAG的TRST#引脚。
现在的主要问题是TRST#信号线,肯定出问题了。我们的工程师估
计有三种可能:DSP TRST#被击穿,TRST#被接到了负电压,静电击穿。旦好像都不太可能。我板上没有负电压,就算是短路也不会影响该引脚。就算是大电压也应当不会影响该引脚。
此外,我测试另一张板,TRST#对地电阻为100M欧姆左右,说明PCB制版没有问题。焊接后初期还能使用,调试代码,说明焊接也应当没有多大问题,难道是后来的原因?反正搞得我稀里糊涂了。唯一的结论是:TRST#肯定出问题了。
请问:SEED的工程师对这个问题怎么看?有没有解决和补救的办法?
补充
DSP型号为TMS320C6713BGDP225
我也是初次开发DSP硬件,之前对DSP虽了解了不少,但还没有经验。一开始调试,将电源系统调试完毕,CVDD=1.2V  MAX=1.5V MIN=1.12V左右, VPP=350-400MV左右,DVDD=3.3V,max=3.5v min=3.08V左右 VPP=400-500MV 电源纹波还将就能用,就是不知道CVDD 合适否?
之后DSP能进入仿真环境,并能下载执行代码,能够修改内外部RAM,其他一些调试都比较正常,总算松口气了。我只调试了该板1周。因为没经验,只看到DSP能够正常运行,其他器件都正常,因此一开始就没有仔细测试和检查DSP的状况,也没有记录。之后同学来调试了该板上的其他部件(非DS
P部分),调试了一周后,我拿回来就发现出问题了。
大体情况是这样的,请各位高手多多帮忙,非常感谢。
我已经用开发板测试过了,JTAG本身正常,仿真器能正常工作。
请问:
现在没有TRST#信号 能否用其他方法让JTAG 工作?
应该测试哪些引脚,才能确定 DSP是没有损坏的?
如何确定DSP-6713还是正常工作的?
support 2005-10-9 13:35
没有其它的方法,可能DSP击穿了。
feeling711 2005-10-9 20:43
那为什么复位信号 RESET#和 PLL 复位后的输出都是正确的?还能检查其他引脚么?
igor 2007-3-29 09:46
我用的USB的仿真器,在仿真TMS320F2812的时候也遇到了JTAG的TRST与GND之间的对地电阻很小只有几欧姆,板子一开始仿真的时候都是好的,能够下载程序,用了几次以后就出现了JTAG的TRST与GND之间的对地电阻很小只有几欧姆的现象。
请问版主引起这种问题的原因可能在那呢?这种问题后来是怎么解决的啊?^_^
g0214t 2007-6-5 16:25
我也遇到这个棘手的问题,我使用的TMS320VC5509A,仿真器是合众达的并口仿真器,每次遇到这个问题都是很郁闷,TRST是输入引脚,被击穿后就不能修复,只能是换芯片。在我们的一块板卡中,一直存在这个隐患。同一批次的其他板卡中DSP没有这个问题。能力有限,确实不出原因,望大师们指点迷津。

本文发布于:2024-09-24 22:35:58,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/271923.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:调试   系统   信号   目标   复位
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议