JTAG与SWD接口的.ppt
STM32F103的SWD、JTAG接口remap禁止后

手贱将STM32F103的SWD、JTAG接口remap禁止后单片机:stm32f103开发环境:keil uvision4烧写器:J-link,SWD接口使用STM32F103的PB3引脚作为GPIO口,但其默认功能为JTDO,需要remap。
Remap 中,使能GPIO_Remap_SWJ_JTAGDisable就可以了,这样是禁止JTAG,但保留SWD,因为板子设计用的是使用SWD接口进行烧写。
结果手贱,尝试了GPIO_Remap_SWJ_Disable,将整个SWD和JTAG都禁止了。
好吧,接下来就是程序运行完毕remap后,keiluvision4就不能再读取stm32的寄存器内容了,变量窗口的变量不能再查看了;想再重新烧写下、擦除下,提示错误,no cortex-m device,断电再上电,也不行,因为flash中的程序上电后自动运行,将SWD口禁止了。
网上查,解决方法是“将BOOT0脚和BOOT1脚接3.3V,这种方法是由RAM启动,所以之前你烧进去的程序是不会运行的,也就不存在JTAG被禁止”。
如果你的板子上做了BOOT 启动选择电路,那你就可以不用往下看了。
但略坑的是我的板子上的BOOT0已经直接接到GND了,总不能割线再飞线吧。
然后想到的就是NRST复位了。
但是,再次略坑的是板子上没有做手动复位电路,NRST 悬空在。
好吧,还好,NRST复位脚悬空在,而不是直接拉高。
比较幸运的是板子上焊接了一个拨码开关模块,开关ON时,接GND,开关OFF时,悬空。
接下来使用NRST来实现重新烧写。
飞线将NRST接到该开关,打到ON档,将NRST接GND。
板子上电,烧写时提示错误:cpudid not halt after reset(类似于这样,记不清)。
这是因为NRST一直为低,CPU一直为复位。
比较幸运的是,keil+J-Link还是比较执着,尝试一次不成功后,还尝试了第2、第3次等(具体几次不记得了,从output消息窗口可看出J-Link尝试了好几次)。
B52-2.5-JTAG-SWD-调试接口

• 芯片内嵌 (JTAG/SWD)调试接口
典型调试系统:ARM7TDMI处理器的高级调试特性使 应用程序、操作系统和硬件的开发变得更加容易。
调试主机: 一台运行调试软件 的计算机。 ADS1.2+AXD1.2 MDK-Keil for ARM
协议转换器: 将调试主机发出的 高级命令转换到处 理器JTAG接口的 低级命令。有3种:
14/20PIN JTAG接口电缆
较新的基于USB接口接口转换器(USB←→SWD) 仅有4根联线:VCC、SWDIO、SWCLK、GND
调试目标: 具体的硬件目标板。 调试接口有2种 JTAG、SWD
1.LPT←→JTAG B←→JTAG B←→SWD
STM32F103核心板
早期(2000年前后) 基于IEE488并行打印口的 JTAG协议转换器 电路原理图
USB←→JTAG(14/20PIN)
并行打印机接口信号
STLINK和JLINK使用 SWD四线 调试 下载STM32

For my breadboarded test rig, I used a four pin Harwin M20 connector. Even on a half size micromouse, this will not take up much room and I may use it as the only debug/programming connector.The pins on the 20-pin standard JTAG connector to use are:Pin 1 – VCC:This is the traget board Vcc. It is used by the STLINK/V2Pin 7 – TMS/SWDIO:The SWD Data signalPin 8 – GND:Be sure there is a common groundPin 9 – TCK/SWCLKThe SWD Clock SignalPin 15 – nSRST/RESETSystem reset – probably optional(你可以不要这个复位pin,直接关电源再上电来复位)ST-Link/V2 JTAG/SWD接口定义:可以自己做一些转接PCB板子,现在USB四线的可以用起来。
做一个现在智能手机usb接口,接四根线就好SWD不单单可以下载还可以单步调试,速度比JTAG快。
有人问,那为什么要发明JTAG这个20pin 的接口呢?因为JTAG标准制定不是为了下载程序调试程序用的,它用来做“边界扫描”用的,什么是边界扫描不知道的可以搜搜一些,在国内谷歌需要翻墙软件才好用。
百度搜索专业术语类不好用,最近我发现好多东西搜搜比百度好用不少。
JTAG接口

JTAG接口
JTAG口(Joint Test Action Group,联合测试行动小组)是一种国际标准测试协议,主要用于芯片内部测试及对系统进行调试和仿真。
标准的JTAG接口是4线:TMS、TCK、TDI、TDO,分别为模式选择、时钟、数据输入和数据输出线。
JTAG模块采用了10PIN仿真调试接口,如图所示,表为对应管脚定义。
20PIN的插座连接C8051F360芯片的JTAG接口,插座的信号配置要和ARM LM LINK调试器接口一致。
JTAG调试电路设计如图所示。
136
79
248
5
10
JTAG插针示意图
F360的JTAG插座管脚定义
PIN号名称
1 VDD
2 ,
3 , 9 GND
5 /RST
7 /RST/C2CK
6 P4.6/C2D
10 NC
使用方法:调试程序以及下载程序时将JTAG接口按照缺口方向接上。
不使用时拔下。
JTAG与SWD接口的工作原理

何宾 2011.12
本章内容
本章主要介绍PSoC3的编程和调试接口功能,其 内容主要包括:
测试控制器的模块结构和连接器接口; JTAG和SWD接口的工作原理; PSoC3的JTAG和SWD接口的工作原理; 8051的片上调试模块(DoC); 非易失性存储器的编程。
位代码 0101
1010 1011 1000
1100
指令
PSoC3功能
CLASMP
DPACC APACC
将TDI和TDO连接到BYPASS寄存器,设置引脚到边界扫描 寄存器的当前内容
连接TDI和TDO到DP/AP寄存器,用于访问调试端口寄存器 连接TDI和TDO到DP/AP寄存器,用于访问访问端口寄存器
PSoC3 JTAG接口与IEEE1149.1-2001规范兼容,同 时提供了额外的指令。指令寄存器为4比特宽度。下表给 出了PSoC3额外的JTAG指令。
JTAG与SWD接口的工作原理 --PSoC3的JTAG和SWD接口的工作原理
位代码 1111 1110 0010
0000 0100
表 PSoC3额外的JTAG指令
2.10针连接器 如下图所示,10针连接器配置成双排,每针之间间隔
为50mil。
图 10针连接器
测试控制器
--连接器接口
表 不同通信协议的引脚分配
协议
信号
5针
10针
ISSP
SCLK
4
SDAT
5
XRES
3
JTAG
TMS
2
TCK
4
TDO
6
TDI
8
XRES
10
SWD/SWV
JTAG与SWD引脚对比

JTAG与SWD引脚对比JTAG与SWD引脚对于仿真ARM,TKScope仿真器家庭的AK100/AK100Pro、K8/K9等仿真器提供标准的20PIN调试接口。
接口管脚定义如下。
其中ARM芯片有两种调试模式,一种是JTAG,一种是SWD,二者在管脚上有复用。
具体所用的型号是否支持,需要查看数据手册。
JTAG调试接口引脚JTAG调试接口必须使用VCC、GND电源信号,以及TMS、TCK、TDI、TDO四根调试信号,可选TRST、RESET复位信号和RTCK(同步时钟)信号。
VRef :目标板参考电压信号。
用于检查目标板是否供电,直接与目标板VDD联,并不向外输出电压;GND:公共地信号;TRST:JTAG复位,连接到目标CPU的nTRST引脚,用于复位CPU调试接口的TAP控制器;目标板上应将此脚上拉到高电位,避免意外复位;TDI:仿真器连接至目标CPU的数据输入信号,建议在目标板上将此脚上拉到Vdd;TMS:仿真器输出给目标CPU的JTAG模式设置信号。
必须在目标板上将此脚上拉; TCK:仿真器输出给目标CPU的JTAG时钟信号,建议在目标板上将此脚上拉; TDO:目标CPU返回给仿真器的数据信号;RTCK:目标CPU提供给仿真器的时钟信号。
有些目标要求JTAG的输入与其内部时钟同步。
仿真器利用此引脚的输入可动态地控制自己的TCK速率。
若不使z用此功能,在目标板上将此脚接地,有些芯片可能要求上拉;RESET:仿真器输出至目标CPU的系统复位信号。
’虽然TRST、RESET是可选的信号;但一般都建议接上,使得仿真器能够在连接器件前对器件进行复位,以获得较理想的初始状态,便于后续仿真。
SWD接口引脚SWD是ARM公司提出的另一种调试接口,相对于JTAG接口,使用更少的信号。
四根信号如下:VRef :目标板参考电压信号。
用于检查目标板是否供电,直接与目标板VDD联,并不向外输出电压;GND:公共地信号;SWDIO:串行数据输入输出,作为仿真信号的双向数据信号线,建议上拉;SWCLK:串行时钟输入,作为仿真信号的时钟信号线,建议下拉;SWO:串行数据输出引脚,CPU调试接口可通过SWO引脚输出一些调试信息。
周立功致远电子:ISP、IAP、ICP、JTAG、SWD的编程特点

周立功致远电子:ISP、IAP、ICP、JTAG、SWD的编程特点摘要:ISP、IAP、ICP、JTAG、SWD这些术语,经常看到、听到,在日常的工作中也经常用到,但你真的了解她们吗?电子工程师都知道,半导体技术发展迅猛,带动了各种芯片技术的不断升级。
在数据存储方面,从最初的掩膜ROM,发展到现在的Flash技术,存储技术的不断改进,相对应的编程技术也在不断发展。
记得老一辈工程师在烧写51单片机的时候还是用一台硕大的编程器进行程序下载,而且还是一次性的(OTP),每次都小心谨慎的把代码调试了又调试后才下载看效果。
现在简单到只需一个串口下载器即可实现程序下载,基本不需要考虑编程次数的问题,一有想法随时编译下载更新。
在这个发展过程中,也诞生了很多编程技术,比如ISP、IAP、ICP,另外还有JTAG编程、SWD编程、UART编程等等。
玩单片机的对这些词应该都不陌生,但他们之间有什么区别呢?首先看下他们的定义:ISP:In System Programing,在系统编程ICP:In Circuit Programing,在电路编程IAP:In Application Programing,在应用编程JTAG编程:通过JTAG协议进行编程SWD编程:通过SWD协议进行编程UART编程:通过UART进行编程看似很乱,其实捋清楚他们之间的层次关系就不会乱了。
用个图来形象表示一下:从图上看,ISP和ICP是处于最顶层的技术。
描述的是一种编程结构,所用使用到的协议、通信端口等,不同芯片有不同的定义。
IAP在第二层,是一种编程方式。
实现方式是将一段目标芯片可执行的代码通过某种通信协议下载到芯片RAM中并由芯片执行,由该代码实现具体操作以达到编程的目的。
这种方式需要芯片支持通过某种通信协议对芯片的RAM进行读写并能控制其CPU。
这是在编程结构下的一种编程方式,像AK100Pro、SmartPRO 5000U-Plus等烧录器,都用到了这种编程方式。
Jtag的各种引脚定义

使用过ARM芯片的人肯定都听过一个仿真器————JLINK,为什么ARM芯片现在能够这么流行?其中恐怕就有一个原因就是很多的ARM芯片都支持使用Jlink进行调试和仿真。
所以你只要有一个Jlink,不管是ARM7、ARM9、ARM11还是最新的ARM Cortex 系统都能下载和调试了。
以前的嵌入式开发者,可能使用什么公司的芯片就得买一个对应芯片的下载和仿真器,这样如果你只使用一种芯片,可能还好,不过恐怕没有那种芯片能够一直引领市场。
Jlink使用的是一种叫做JTAG的协议,JTAG原本是用于芯片内部测试的,现在大多用于芯片的程序下载和调试仿真。
由于现在Jlink用的比较多,所以有些人可能把Jlink就等同于JTAG了,实际上,JTAG是一种协议,只要满足这种协议的就可以叫做JTAG,比如H—JTAG、OpenJTAG、OSJTAG等等。
正版的Jlink是卖的很贵的。
大概是1000到2000RMB吧。
不过,中国的山寨能力是很强的,而且你硬件卖给别人了,你也没办法控制别人说你不许拆开我的东西看里面的电路是怎么样的。
所以Jlink就被破解了,破解之后的Jlink很便宜,网上五六十块钱就能买到一个能用的Jlink。
除了商业版的Jlink和H—JTAG,网上还有一些电子爱好者,他们参照开源软件的模式,设计了开源硬件,比如arduino。
还有人制作了开源版本的JTAG仿真器——OpenJTAG。
而一些芯片的开发商不像那些软件厂商,会给软件做很多的限制,他们对于开源硬件还是比较开明的,所以他们也支持了一些开源硬件。
比如TI公司的MSP430 LaunchPad、ST公司的STM Discovery 等等板子。
还有飞思卡尔公司的USBDM和OSJTAG。
他们把这些硬件的原理图、PCB还有固件都放在了网络上供人自由下载和制作,你也可以根据他的资料进行改进。
这样能使大家对于他们家的芯片有更多的了解,所以,他们也乐于开源一些评估板。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
JTAG接口由:
测试数据输入(TDI); 测试数据输出(TDO); 测试模式选择(TMS); 测试时钟信号(TCK)和其它信号构成。
下图给出了JTAG连接多个IC芯片的结构。
第5章 PSoC编程和调试接口功能
何宾 2011.12
本章内容
本章主要介绍PSoC3的编程和调试接口功能,其 内容主要包括:
测试控制器的模块结构和连接器接口; JTAG和SWD接口的工作原理; PSoC3的JTAG和SWD接口的工作原理; 8051的片上调试模块(DoC); 非易失性存储器的编程。
JTAG与SWD接口的工作原理 --JTAG工作原理
下图给出了JTAG接口的内部结构。
图 JTAG内部结构
JTAG与SWD接口的工作原理 --JTAG工作原理
如下图,TMS信号控制TAP的状态机,状态机控制 哪个寄存器(包括边界扫描通路)在TDI-TDO移位通 路上。
图 TAP状态机
JTAG与SWD接口的工作原理 --JTAG工作原理
这个解决方案就是后来的IEEE1149.1-2001标准, 这个标准基于一个概念,即使用一个布线贯穿所有IC引 脚的移位寄存器(这也叫做边界扫描)。每个引脚上都 有一个边界扫描单元。在PSoC3中,大部分的GPIO和 SIO端口引脚都有边界扫描单元。
JTAG与SWD接口的工作原理 --JTAG工作原理
TAP内的寄存器包含:
1)Instruction:2-4位宽,存放当前指令,该指令定义了在 TDI-TDO移位通道上的数据寄存器,引起设备被旁路用于 JTAG模式;
2)Bypass:1位宽度,TDI和TDO直接连接; 3)ID:32位宽,用于读JTAG的制造商/芯片的ID号; 4)Boundary Scan Path(BSR):宽度等于I/O引脚(有边
调试操作;
测试控制器 --测试控制器模块结构
如下图,PSoC3测试控制器将JTAG或者SWD访问转 换成DoC模块内寄存器的访问。
图 PSoC3测试控制器模块图
测试控制器 --连接器接口
1.5针连接器 如下图所示,5针连接器配置成单排,每针之间间隔
为100mil。
图 5针连接器
测试控制器 --连接器接口
支持到调试主机的JTAG或者SWD接口; SWD接口可以使用GPIO或者USB引脚; 支持边界扫描IEEE标准1149.1-2001“Test Access Port and
Boundary-Scan Architecture”; 支持额外的JTAG指令/寄存器,用于访问芯片的剩余部分; 与PSoC3的调试模块接口用于访问芯片的剩余部分用于编程和
界扫描单元)的数量,用于设置或者读写这些I/O引脚的状 态;
JTAG与SWD接口的工作原理 --JTAG工作原理
在IEEE1149中,给出了标准的指令集: 1)EXTEST:该指令将使得TDI和TDO连接到边界扫
描通路上(BSR),芯片将从普通操作模式改变为测试模 式。芯片引脚的状态可以使用capture dr的JTAG状态进行 采样,使用updata dr状态新的值可以用于芯片引脚上。
JTAG与SWD接口的工作原理 --SWD工作原理
SWD接口是由ARM公司开发出来的,目的是减少 调试接口所使用的引脚数。SWD接口使用两个信号 线:双向的数据线(SWDIO)和用于数据线的时钟信 号(SWDCK)。
JTAG与SWD接口的工作原理 --JTAG工作原理
2)SAMPLE:该指令将使得TDI和TDO连接到边 界扫描通路上(BSR),但是芯片仍然处于普通操作模 式。使用该指令,BSR可以使用capture dr的JTAG状态进 行读取,对进入的功能数据进行采样,然后移出芯片。 3)PERLOAD:该指令将使得TDI和TDO连接到边 界扫描通路上(BSR),但是芯片仍然处于普通操作模 式。该指令用于在加载EXTEST指令前,预加载测试数 据到BSR。
JTAG与SWD接口的工作原理 --JTAG工作原理
下面给出了可选的指令: 1)IDCODE:该指令使得TDI和TDO线连接到
IDCODE寄存器。 2)INTEST:该指令将使得TDI和TDO连接到边界
扫描通路上(BSR)。当EXTEST指令允许访问芯片引脚 时,INTEST能访问芯片内核逻辑的信号。
6
XRES
3
10
I2C
SCK
4
SDA
5
JTAG与SWD接口的工作原理 --JTAG工作原理
为了应对IC芯片日益增加的高引脚密度,联合行 动测试小组(Joint Test Action Group,JTAG)提供了一 个用于测试电路板的方法,这个方法就是通过一个独立 的测试接口来控制IC的引脚(和读取它们的值)。
测试控制器 --测试控制器模块结构
PSoC3结构包括一个测试控制器,主要用于下面 的目的:
用于边界扫描测试访问I/O引脚; 通过PSoC3的片上调试DoC模块来访问芯片的存储器和寄存
器。
测试控制器 --测试控制器模块结构
测试控制器通过边界扫描端口(Joint Test Action Group,JTAG)或者串行调试(Serial Wire Debug, SWD)接口连接到片外设备。测试控制器包含下面的特 性:
其中:
1)ir:是指令寄存器; 2)dr:其它寄存器中的一个(包括边界扫描路径),由指
令寄存器的内容确定; 3)capture:将dr寄存器的内容传输到移位寄存器中,然后
移出TDO; 4)update:传输移位寄存器的内容,从TDI移入到一个dr;
JTAG与SWD接口的工作原理 --JTAG工作原理
2.10针连接器 如下图所示,10针连接器配置成双排,每针之间间隔
为50mil。
图同通信协议的引脚分配
协议
信号
5针
10针
ISSP
SCLK
4
SDAT
5
XRES
3
JTAG
TMS
2
TCK
4
TDO
6
TDI
8
XRES
10
SWD/SWV
SDIO
5
2
SCK
4
4
SWV