ARMJTAG仿真器电路讨论.

ARM JTAG仿真器电路讨论
以下是我在实践中的一些积累,发现这点是因为我在尝试用对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调试软件仅支持一种线序。

合集下载

JTAG电路的工作原理

JTAG电路的工作原理

JTAG电路的工作原理JTAG(Joint Test Action Group)是一种用于测试和调试集成电路的标准接口。

它提供了一种简单、高效的方法来访问和控制电路中的内部信号和逻辑。

本文将详细介绍JTAG电路的工作原理。

JTAG电路由两部份组成:测试访问端(TAP)和测试访问控制器(TAC)。

TAP是位于被测试电路和测试设备之间的接口,用于传输数据和控制信号。

TAC 是测试设备中的逻辑电路,用于控制TAP并处理测试数据。

JTAG电路的工作原理如下:1. TAP控制状态机(TAP Controller State Machine):TAP控制状态机是TAC 中的一种有限状态机,用于控制TAP的操作。

它包含四个状态:Test-Logic-Reset (TLR)、Run-Test/Idle(RTI)、Select-DR-Scan(SDR)和 Select-IR-Scan (SIR)。

在不同的状态下,TAP控制状态机会执行不同的操作。

2. 信号传输:JTAG电路通过四条信号线进行数据和控制信号的传输。

这四条信号线分别是:TCK(Test Clock)、TMS(Test Mode Select)、TDI(Test Data Input)和 TDO(Test Data Output)。

- TCK:测试时钟信号,用于同步数据传输和状态转换。

- TMS:测试模式选择信号,用于控制TAP状态机的状态转换。

- TDI:测试数据输入信号,用于向被测试电路传输测试数据。

- TDO:测试数据输出信号,用于从被测试电路读取测试结果。

3. TAP状态转换:TAP控制状态机通过TMS信号控制状态的转换。

根据TMS 信号的不同序列,TAP状态机可以从一个状态转换到另一个状态。

例如,从TLR 状态转换到RTI状态,或者从RTI状态转换到SDR状态。

4. 测试数据传输:在SDR状态下,可以通过TCK、TDI和TDO信号进行测试数据的传输。

AVRJTAGICE仿真器使用说明

AVRJTAGICE仿真器使用说明

AVRJTAGICE仿真器使用说明
首先,我们需要准备一台计算机和AVR JTAG ICE 仿真器。

将仿真器
插入计算机的USB接口,并确保计算机已安装了AVR Studio软件,这是
一款用于AVR 微控制器开发的集成开发环境(IDE)。

接下来,我们将目标设备与AVRJTAGICE仿真器连接起来。

首先,在
目标设备上找到JTAG接口的引脚,通常为4个或5个引脚,并将仿真器
的JTAG线连接到目标设备的JTAG接口上。

然后,将仿真器的USB线连接
到计算机的USB接口上。

现在,我们打开AVR Studio软件,并创建一个新的项目。

选择正确
的目标设备,并确保使用JTAG作为调试接口。

AVR Studio会自动检测到
连接的AVR JTAG ICE 仿真器,并在界面上显示连接状态。

在仿真调试模式下,我们可以通过设置断点、单步执行、查看变量值
等方式进行调试。

AVR Studio提供了丰富的调试功能,如查看寄存器、
查看存储器、查看端口状态等。

我们可以根据需要使用这些功能进行调试,以发现和修复程序中的错误。

在进行仿真调试时,还可以使用"Watch"功能监视变量的值。

通过添
加变量到监视列表中,我们可以随时查看变量的当前值,并在程序执行过
程中观察变量的变化情况。

当调试完成后,我们可以通过点击"Stop Debugging"按钮退出仿真调
试模式。

在退出之前,我们可以选择保存当前的仿真调试结果,以便日后
查看和分析。

arm仿真器

arm仿真器

JTAG仿真器
JTAG仿真器
JTAG仿真器也称为JTAG调试器,是通过ARM芯片的JTAG边界扫描口进行调试的设备。JTAG仿真器比较便宜, 连接比较方便,通过现有的JTAG边界扫描口与 ARM CPU核通信,属于完全非插入式(即不使用片上资源)调试,它 无需目标存储器,不占用目标系统的任何端口,而这些是驻留监控软件所必需的。另外,由于JTAG调试的目标程 序是在目标板上执行,仿真更接近于目标硬件,因此,许多接口问题,如高频操作限制、AC和DC参数不匹配,电 线长度的限制等被最小化了。使用集成开发环境配合JTAG仿真器进行开发是采用最多的一种调试方式。
基本信息
基本信息
arm仿真器在线仿真器使用仿真头完全取代目标板上的CPU,可以完全仿真ARM芯片的行为,提供更加深入的 调试功能。但这类仿真器为了能够全速仿真时钟速度高于100MHz的处理器,通常必须采用极其复杂的设计和工艺, 因而其价格比较昂贵。在线仿真器通常用在ARM的硬件开发中,在软件的开发中较少使用,其价格高昂也是在线 仿真器难以普及的因素。 ARM SDT、ARM ADS、MULTI 2000、Hitools for ARM、Embest IDE for ARM五种集 成开发环境在国内有相对较畅通的销售渠道,用户容易购买。前三种由国外厂商出品,历史比较悠久,在全球范 围内应用较为广泛,后两种由国内厂商推出,具有很高的性价比。另外选取了国际市场上较流行的两种JTAG仿真 器:EPI公司的JEENI和ARM公司的Multi-ICE。
技术支持
技术支持
以上这些仿真器都可以通过ARM国内代理商购买,以及获得相关技术支持。 DSTREAM仿真器源自谢谢观看arm仿真器
用于调试基于ARM内核芯片的硬件模块
目录

JTAG仿真器原理

JTAG仿真器原理

JTAG仿真器原理调试的基础是检测,而检测有“无损(non-intrusive)”和“无损(intrusive)”之分。

理想的检测手段应该是不使被测对象的状态(包括时序)因此而造成任何改变,否则测到的数据就不准确了。

可是,严格意义上的无损检测不可能实现,因此实际上是“测不准”的。

人们所能做到的只是尽量减少对被测对象的状态改变,将误差减少到可以接受的程度。

这还是比较容易理解的。

不过原来看ARM资料的时候,调试手段一大堆,但是都没有深刻的印象,以致于以前还一直在怀疑,为什么下载的jflash-s3c2410,不能通过仿真器下载呢?现在想想,其实对于什么是调试器,什么是仿真器,调试的模型是什么都是非常模糊的,所以下决心首先从概念上理解调试模型。

之后随着技术深入,可以逐步深入理解调试技术。

现代调试技术大致可以归为指令级仿真调试和硬件仿真调试两种。

1 指令级仿真调试我想这个比较容易理解。

指令集仿真调试属于纯软件仿真,比如ARM公司的ARMulator。

因为有的时候嵌入式软件的开发需要在目标系统(硬件)并不存在的条件下进行,所以需要这种通过软件来模拟目标系统的CPU。

现在有个开源项目skyeye,也是这样一个指令级仿真调试工具。

这一系列的软件以数据结构来模拟目标机CPU中各个寄存器和其他资源,以及目标系统的有关资源(比如内存等),并且通过软件模拟,即逐条指令地解释执行目标机可执行映象中的程序。

例如,“mov r1, #0”,就代表往寄存器r1的数据结构中写0,如此。

模拟执行的速度当然慢一些,但是可以验证逻辑,在某些条件下是一种重要的手段。

2 硬件仿真调试现在比较成熟的技术有如下四种:·Ad-hoc test·Scan-based test·Build-in-self test·Boundary-scan test因为不是专业研究这个方向,对这四个测试技术的区别也没大有必要深究。

自制AVR JTAG仿真器

自制AVR JTAG仿真器

自制AVR JTAG仿真器(1)将ISP下载线与开发板的ISP输入口相连,打开ponyprog(小马软件)烧写程序,单片机选Atmega16,选择file菜单中的opendevice file。

选项,调入bootice16_rom.hex文件,如下图所示:(2)选择“命令”菜单中的“编程选项”按照下图所示选择选择,选好后点击“确定”:(3)选择“命令”菜单中的“写入所有”如下图所示:执行写入操作,将BOOTROM烧入仿真适配器的单片机中。

照下图所示的方式配置熔丝位:(配置好后点击“写入”)(5)断开电源,拔下ISP下载电缆,取下Atmega16芯片,安装到JTAG的仿真电路板上,将JTAG电路板的串口和计算机的串口相连,通入电源。

打开AVR Studio 软件,点击“Cancel”按钮,关闭欢迎窗口。

在AVR Studio软件中选择“tool”菜单,选择“AVR Prog......”选项,如下图所示:(6)在弹出的电话框中,用鼠标单击“Browse”按钮,在对话框中选择“C:\Program File\Atmel\AVR Tool\JTAG ICE\upgrade.ebn”(假设AVR Studio 软件安装在默认的位置)。

然后单击“Flash”选项里的“Program”按钮,开始向jtag电路板的Atmega16芯片中烧入程序。

如下图所示:(7)烧写结束后,自动校验数据时会提示错误,只要单击确定键即可,入下图所示:(8)关闭AVR Studio软件,断开jtag电路板的电源,重新将ISP下载线接入开发板的ISP下载接口中。

接通电源,进入PonyProg烧写界面,选择“命令”菜单下的“Security and Configuration Bits”选项,打开熔丝位的配置菜单,按照下图所示配置熔丝位,然后点击“写入”按钮,将熔丝位信息烧写入芯片中。

(9)这样,jtag仿真器就做好了。

几点说明:(1)做jtag仿真器上的用的Atmega16芯片最好使用新买的,且没有配置过熔丝位的芯片。

JTAG电路的工作原理

JTAG电路的工作原理

JTAG电路的工作原理JTAG(Joint Test Action Group)是一种用于测试和调试电子设备的标准接口。

它被广泛应用于集成电路、嵌入式系统和电子设备的开辟过程中。

本文将详细介绍JTAG电路的工作原理,包括其基本原理、信号传输方式以及应用场景等。

一、基本原理JTAG电路的基本原理是通过在被测试的电子设备上添加一组专用的测试逻辑电路,实现对设备内部的功能模块进行测试和调试。

这组测试逻辑电路被称为JTAG接口或者TAP(Test Access Port)。

它由四个主要组成部份构成:Test Data Register(TDR)、Instruction Register(IR)、Data Register(DR)和控制逻辑。

TDR用于存储测试数据,IR用于存储测试指令,DR用于存储测试结果。

控制逻辑则负责控制测试过程的流程和时序。

通过这些组成部份的协作,可以实现对电子设备内部各个模块的测试和调试。

二、信号传输方式JTAG接口使用了一种称为“串行矢量传输”(Serial Vector Transmission)的方式来传输测试数据和指令。

在这种传输方式下,数据和指令是按位(bit)进行传输的,每一个位都经过一个时钟周期。

这种串行传输的方式具有较高的灵便性和可扩展性,可以适应不同的测试需求。

具体而言,JTAG接口通过四个信号线来实现数据和指令的传输:TCK(Test Clock)、TDI(Test Data In)、TDO(Test Data Out)和TMS(Test Mode Select)。

TCK是时钟信号,用于同步数据和指令的传输;TDI是输入信号,用于传输测试数据和指令;TDO是输出信号,用于传输测试结果;TMS是控制信号,用于控制测试过程的状态转换。

三、应用场景JTAG电路在电子设备的开辟过程中有广泛的应用场景。

以下列举几个常见的应用场景:1. 测试和调试:JTAG接口可以用于对电子设备内部各个模块进行测试和调试,包括逻辑电路、存储器、寄存器等。

实验1输入输出实验

实验1 输入输出实验一、实验目的1. 掌握ARM的通用输入输出接口工作原理。

2. 学习编程实现GPIO的方法,掌握I/0的功能复用,并能熟练的配置。

二、实验内容1. 通过按键输入开关量。

2. 在实验箱的主板上点亮LED灯LED1、LED2和LED3(分别接GPC5、GPC6和GPC7),并轮流闪烁。

三、预备知识1. 用EW ARM集成开发环境,编写和调试程序的基本过程。

2. ARM应用程序的框架结构。

3. 了解GPIO。

四、实验设备及工具硬件:ARM嵌入式开发平台,PC机,JTAG仿真器。

软件:操作系统WindowsXP/7,EWARM集成开发环境,仿真器驱动程序,超级终端通讯程序。

五、实验原理及说明编写程序,当用户在实验箱上按下“INTKEY”键时,在中断服务子程序中将相关信息打印到串口中,并显示在超级终端上。

1. 上拉电阻和下拉电阻上拉就是将不确定的信号通过一个电阻箝位在高电平,电阻同时起限流作用,下拉同理;上拉是对器件注入电流,下拉是输出电流。

1)一般作单键触发使用时,如果IC本身没有内接电阻,为了使单键维持在不被触发的状态或是触发后回到原状态,必须在IC外部另接一电阻。

2)数字电路有三种状态:高电平、低电平、和高阻状态,有些应用场合不希望出现高阻状态,可以通过上拉电阻或下拉电阻的方式使处于稳定状态,具体视设计要求而定。

3)I/O端口驱动有的可以设置,有的不可以设置,有的是内置,有的是需要外接。

I/O 端口的输出通过一个电阻和电源连接在一起的时候,该电阻成为上拉电阻,也就是说,如果该端口正常时为高电平。

通过一个电阻和地连接在一起的时候,该电阻称为下拉电阻,使该端口平时为低电平。

当一个接有上拉电阻的端口设为输入状态时,它的常态就为高电平,用于检测低电平的输入。

4)上拉电阻是用来解决总线驱动能力不足时提供电流的,是拉电流;下拉电阻是用来吸收电流的,也就是我们通常所说的灌电流。

5)接电组就是为了防止输入端悬空。

ARM仿真器JLINK、ULINK使用SWD调试时的接线方式

ARM仿真器JLINK、ULINK使用SWD调试时的接线方式
ARM仿真器JLINK、ULINK使用SWD调试时的接线
方式
手头的仿真器是JLINK V8,连接STM32F103 时,使用SWD 方式。

JTAG 引脚示意图:
一、SWD 和传统的调试方式区别
1. SWD 模式比JTAG 在高速模式下面更加可靠
2. GPIO 刚好缺一个的时候, 可以使用SWD 仿真, 这种模式支持更少的引脚
3. 在板子的体积有限的时候推荐使用SWD 模式
二、仿真器对SWD 模式支持情况
1. 市面上的常用仿真器对SWD 模式支持情况
JLINKV8 非常好的支持SWD 仿真模式, 速度可以到10M
ULINK2 非常好的支持SWD 模式,速度可以达到10M
2. SWD 硬件接口上的不同
(1) JLINKV7 需要的硬件接口为: GND, RST, SWDIO, SWDCLK(2) JLINKV8 需要的硬件接口为: VCC, GND, RST, SWDIO, SWDCLK (注:下面有我自己用JLINKV8 的实际连线及相应实验结果)(3) ULINK1 不支持SWD 模式(4) ULINK2 需要的硬件接口为: GND, RST, SWDIO, SWDCLK
三、在MDK 中SWD 模式的设置
正常的JTAG 需要20 管脚,而J-Link 的SWD 只需要2 根线(PA13/JTMS/SWDIO、PA14/JTCK/SWCLK)就够了(加上电源线也就4 根),这样就节省了3 个I/O 口(PA15/JTDI、PB3/JTDO、PB4/JNTRST)为其它所用,并且可节省一部分板子的空间(只需4 个口就可以了)。

arm jtag 调试原理

arm jtag 调试原理嗨,小伙伴!今天咱们来唠唠ARM JTAG调试原理这个超有趣的事儿。

JTAG呢,就像是给ARM芯片开的一个特殊小后门。

想象一下,ARM芯片就像一个神秘的小城堡,里面有好多好多的小房间(各种寄存器、功能模块啥的),但是这个城堡外面围着高高的城墙,我们平常很难直接看到里面到底发生了什么。

这时候JTAG 就闪亮登场啦。

JTAG有几个特别的线,就像是几根魔法绳索。

其中有TMS(测试模式选择)线,这根线就像是一个指挥棒。

你看啊,当我们在调试的时候,通过在这根线上发送不同的高低电平信号,就像是在给芯片里的调试模块打暗号呢。

比如说,高电平可能表示“咱们要进入这个特定的测试模式啦”,低电平可能就是“现在先停一停这个操作”。

还有TCK(测试时钟)线,这可是整个调试的节奏大师哦。

它就像一个小鼓手,不停地打着节拍。

芯片里的调试操作都得按照这个节拍来进行。

就像我们跳舞得跟着音乐的节奏一样,芯片里的各种测试和数据传输都要和TCK的节奏同步。

如果TCK这个小鼓手乱了节奏,那整个调试可就乱套啦,就像一群舞者突然找不到音乐的节奏,乱成一锅粥了呢。

TDI(测试数据输入)线呢,这是往芯片里送宝贝(数据)的通道。

我们想要查看芯片里某个寄存器的值,或者给某个模块设置一个初始状态,就可以通过TDI把这些数据送进去。

这就好比我们通过一个小管道,把我们想要的东西送进城堡里的各个小房间。

而TDO(测试数据输出)线呢,它是把芯片里的信息反馈出来的通道。

就像是城堡里的小信使,把城堡里各个房间的情况给我们带出来。

比如说我们想知道某个寄存器现在存的是什么数,芯片就会通过TDO把这个数给我们送出来,就像小信使把房间里的小纸条递给我们一样。

那这个JTAG到底是怎么在ARM芯片里工作的呢?当我们把JTAG接口连接到ARM 芯片上,就相当于把我们的魔法绳索系到了城堡上。

然后我们通过外部的调试工具,像是JTAG调试器之类的。

这个调试器就像是一个超级管家,它知道怎么摆弄那些魔法绳索。

JTAG仿真接口电路设计

JTAG仿真接口电路设计
连接测试组(JTAG,Joint Test Action Group)接口用于连接最小系统板和仿真器,实现仿真器对DSP 的访问,JTAG 接口的连接需要和仿真器上的接口一致。

不论什么型号的仿真器,其JTAG 接口都满足IEEE 1149.1 的标准。

满足IEEE 1149.1 标准的14 脚JTAG 接口如图1 所示。

图1 14 脚仿真口引脚
一般情况下,最小系统板需要引出双排的14 脚插针和图2 所示的一致,图中引脚间隔为0.1 英寸,引脚宽度为0.025 英寸,引脚长度为0.235 英寸。

在大多数情况下,如果开发板和仿真器之间的连接电缆不超过6 英寸,可以采用
图2 接法。

需要注意的是其中DSP 的EMU0 和EMUI 引脚都需要上拉电阻,
推荐阻值为4.7kΩ或者10kΩ。

如果DSP 和仿真器之间的连接电缆超过6 英寸,必须采用图3 接法,在数据传输引脚加上驱动。

图2 小大于6 英寸的JTAG 连接方法
图3 大于6 英寸的JTAG 连接方法
tips:感谢大家的阅读,本文由我司收集整编。

仅供参阅!。

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