JTAG使用说明
本作品内容为JTAG使用说明,格式为 docx ,大小 19454 KB ,页数为 13页
('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又是如何连接的?下图是JTAG接口的信号排列示意:接口是一个20脚的IDC插座。下表给出了具体的信号说明:表1JTAG引脚说明序号信号名方向说明1VrefInput接口电平参考电压,通常可直接接电源2VsupplyInput电源3nTRSTOutput(可选项)JTAG复位。在目标端应加适当的上拉电阻以防止误触发。4GND--接地5TDIOutputTestDataInfromDragon-ICEtotarget.6GND--接地7TMSOutputTestModeSelect8GND--接地9TCKOutputTestClockoutputfromDragon-ICEtothetarget10GND--接地11RTCKInput(可选项)ReturnTestClock。由目标端反馈给Dragon-ICE的时钟信号,用来同步TCK信号的产生。不使用时可以直接接地。12GND--接地13TDOInputTestDataOutfromtargettoDragon-ICE.14GND--接地15nSRSTInput/Output(可选项)SystemReset,与目标板上的系统复位信号相连。可以直接对目标系统复位,同时可以检测目标系统的复位情况。为了防止误触发,应在目标端加上适当的上拉电阻。16GND--接地17NC--保留18GND--接地19NC--保留20GND--接地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、13VCC接电源2、4、6、8、10、14GND接地3nTRST测试系统复位信号5TDI测试数据串行输入7TMS测试模式选择9TCK测试时钟11TDO测试数据串行输出12NC未连接20针JTAG接口定义引脚名称描述1VTref目标板参考电压,接电源2VCC接电源3nTRST测试系统复位信号4、6、8、10、12、14、16、18、20GND接地5TDI测试数据串行输入7TMS测试模式选择9TCK测试时钟11RTCK测试时钟返回信号13TDO测试数据串行输出15nRESET目标系统复位信号17、19NC未连接下面以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开发环境。连接好硬件后,打开AXDDebugger,建立与目标板(待调试的系统板)的连接,AXDDebugger有软件仿真方式和带目标系统的调试方式,此时应工作在带目标系统的调试方式。选择菜单SystemViews→CommandLineInterface功能,该选项为AXDDebugger的一个命令行窗口,可在该窗口内输入各种调试命令,使用非常方便。在命令行窗口输入:>setmem0x3FF5000,0xFFFF,32>setmem0x3FF5008,0xFFFF,32setmem命令用于对特定的地址设置特定的值,待设定的值可以是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作为调试工具,操作方法类似。连接好硬件后,打开ARMDebuggerforWindows,建立与目标板(待调试的系统板)的连接,选择菜单View→Command功能,即可显示命令行窗口,在命令行窗口输入:Debug:let0x3FF5000=0xFFFFDebug:let0x3FF5008=0xFFFF执行完以上两条命令后,连接在通用I/O口的4只LED应被点亮。关于通用I/O口更具体的工作原理和使用方法,可参考S3C4510B用户手册。用户系统若能正常完成上述操作并成功点亮连接在P3~P0口上的LED显示器,则表明S3C4510B已在正常工作,且调试环境也已正确建立,以后的调试工作就相对简单。笔者曾遇到多个用户系统因为不能完成这步工作,使开发者失去信心而最终放弃。紧急求救:JTAG的TRST#引脚出问题了不知道什么原因,我的板子JTAG的TRST#引脚出问题了。导致无法进入仿真界面。以前是可以进入仿真环境,并下载代码执行的,后来给同学使用了一周,他调试了其他的部分,我接手后突然发现不能仿真了。状况如下:TRST#对地电阻仅为20欧姆,(原本应当是很大,约100M),说明TRST#引脚可能被击穿了。该引脚是输入引脚,由JTAG提供,按道理应当不可能损坏,可就是出问题了。目前测试DSP的情况是:RESET#信号稳定而且正常,CVDDDVDD稳定而且正常,说明电源部分问题不大。CLKIN=25M,CLKOUT2输出为12.5MHZCLKOUT3=3.125MHZ稳定方波(8分频)ECLKOUT=12.5MHZ(2分频),说明PLL的D0D1D2D3都是复位后的正常值,OSCDIV0是8分频,说明DSP时钟部分应当是正常的。JTAG测试情况是:未接仿真器:TMS=1TRST#=0TDIPD、TCKTCKRET.EMU0/1=1GND=0接入仿真器后:TMS出现一高电平优恢复到0,TRST#=1.2V左右(有问题),TDI=1,PD=1TDO=0TCK和TCKRET#有10MHZ左右方波,EMU0/1=1。tck_ret相对TCK衰减很小说明除了TRST#信号之外,其余jtag信号应当正常。TRST#和GND之间并未短路,只是对地阻抗很小。我没有在JTAG和DSP之间加入缓冲,二者之间布线距离约1.65inch。走线为第2信号层(中间层)。TRST#中间没有和任何其他器件相连,直接从DSP引到JTAG的TRST#引脚。现在的主要问题是TRST#信号线,肯定出问题了。我们的工程师估计有三种可能:DSPTRST#被击穿,TRST#被接到了负电压,静电击穿。旦好像都不太可能。我板上没有负电压,就算是短路也不会影响该引脚。就算是大电压也应当不会影响该引脚。此外,我测试另一张板,TRST#对地电阻为100M欧姆左右,说明PCB制版没有问题。焊接后初期还能使用,调试代码,说明焊接也应当没有多大问题,难道是后来的原因?反正搞得我稀里糊涂了。唯一的结论是:TRST#肯定出问题了。请问:SEED的工程师对这个问题怎么看?有没有解决和补救的办法?补充DSP型号为TMS320C6713BGDP225我也是初次开发DSP硬件,之前对DSP虽了解了不少,但还没有经验。一开始调试,将电源系统调试完毕,CVDD=1.2VMAX=1.5VMIN=1.12V左右,VPP=350-400MV左右,DVDD=3.3V,max=3.5vmin=3.08V左右VPP=400-500MV电源纹波还将就能用,就是不知道CVDD合适否?之后DSP能进入仿真环境,并能下载执行代码,能够修改内外部RAM,其他一些调试都比较正常,总算松口气了。我只调试了该板1周。因为没经验,只看到DSP能够正常运行,其他器件都正常,因此一开始就没有仔细测试和检查DSP的状况,也没有记录。之后同学来调试了该板上的其他部件(非DSP部分),调试了一周后,我拿回来就发现出问题了。大体情况是这样的,请各位高手多多帮忙,非常感谢。我已经用开发板测试过了,JTAG本身正常,仿真器能正常工作。请问:现在没有TRST#信号能否用其他方法让JTAG工作?应该测试哪些引脚,才能确定DSP是没有损坏的?如何确定DSP-6713还是正常工作的?support2005-10-913:35没有其它的方法,可能DSP击穿了。feeling7112005-10-920:43那为什么复位信号RESET#和PLL复位后的输出都是正确的?还能检查其他引脚么?igor2007-3-2909:46我用的USB的仿真器,在仿真TMS320F2812的时候也遇到了JTAG的TRST与GND之间的对地电阻很小只有几欧姆,板子一开始仿真的时候都是好的,能够下载程序,用了几次以后就出现了JTAG的TRST与GND之间的对地电阻很小只有几欧姆的现象。请问版主引起这种问题的原因可能在那呢?这种问题后来是怎么解决的啊?^_^g0214t2007-6-516:25我也遇到这个棘手的问题,我使用的TMS320VC5509A,仿真器是合众达的并口仿真器,每次遇到这个问题都是很郁闷,TRST是输入引脚,被击穿后就不能修复,只能是换芯片。在我们的一块板卡中,一直存在这个隐患。同一批次的其他板卡中DSP没有这个问题。能力有限,确实找不出原因,望大师们指点迷津。',)
提供JTAG使用说明会员下载,编号:1700773997,格式为 docx,文件大小为13页,请使用软件:wps,office word 进行编辑,PPT模板中文字,图片,动画效果均可修改,PPT模板下载后图片无水印,更多精品PPT素材下载尽在某某PPT网。所有作品均是用户自行上传分享并拥有版权或使用权,仅供网友学习交流,未经上传用户书面授权,请勿作他用。若您的权利被侵害,请联系963098962@qq.com进行删除处理。