JTAG接口介绍

  • 格式:pdf
  • 大小:331.53 KB
  • 文档页数:7

下载文档原格式

  / 7
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

JTAG(Joint Test Action Group,联合测试行动小组)是一种国际标准测试协议,主要用于芯片内部测试及对系统进行仿真、调试,JTAG技术是一种嵌入式调试技术,它在芯片内部封装了专门的测试电路TAP(Test Access Port,测试访问口),通过专用的JTAG测试工具对内部节点进行测试。

目前大多数比较复杂的器件都支持JTAG协议,如ARM、DSP、FPGA器件等。标准的JTAG接口是4线:TMS、TCK、TDI、TDO,分别为测试模式选择、测试时钟、测试数据输入和测试数据输出。

JTAG测试允许多个器件通过JTAG接口串联在一起,形成一个JTAG链,能实现对各个器件分别测试。JTAG接口还常用于实现ISP(In-System Programmable在系统编程)功能,如对FLASH器件进行编程等。

通过JTAG接口,可对芯片内部的所有部件进行访问,因而是开发调试嵌入式系统的一种简洁高效的手段。目前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开发环境。

连接好硬件后,打开AXD Debugger,建立与目标板(待调试的系统板)的连接,AXDDebugger 有软件仿真方式和带目标系统的调试方式,此时应工作在带目标系统的调试方式。

选择菜单System Views→Command Line Interface功能,该选项为AXD Debugger的一个命令行窗口,可在该窗口内输入各种调试命令,使用非常方便。在命令行窗口输入:

>setmem0x3FF5000,0xFFFF,32

>setmem0x3FF5008,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:let0x3FF5000=0xFFFF

Debug:let0x3FF5008=0xFFFF

执行完以上两条命令后,连接在通用I/O口的4只LED应被点亮。

关于通用I/O口更具体的工作原理和使用方法,可参考S3C4510B用户手册。

用户系统若能正常完成上述操作并成功点亮连接在P3~P0口上的LED显示器,则表明

S3C4510B已在正常工作,且调试环境也已正确建立,以后的调试工作就相对简单。笔者曾遇到多个用户系统因为不能完成这步工作,使开发者失去信心而最终放弃。

很多工程师在对按键去抖动都会采用软件延时的方法,今天介绍下关于Piccolo DSP GPIO所具有的硬件去抖功能.

信号首先同步于系统时钟,在输入到内核改变之前要经过一定周期个数的量化,这种方式可以滤除噪声。量化窗口输入的结构示意图如图所示。

由图可知,外部的管脚输入信号经过一个量化窗口到达DSP内核。量化窗口的时间宽度取决于采样间隔和采样个数。采样间隔由GPxCTRL寄存器决定,采样个数由寄存器GPxQSELn决定。

如果QUxLPRDn=0,采样间隔为一个系统周期整数倍。如果QUxLPRDn=N(N≠0),

采样周期为系统周期的2N倍。如表所示

采样个数可以配置位三个或六个。通过寄存器GPAQSEL1、GPAQSEL2、GPBQSEL1来配置,当外部管脚电平状态发生变化时,量化窗口检测到三个或六个周期内相同的状态时,才把此次状态改变传送到内核,否则会当成杂波滤除。