SWD and JTAG selection mechanism
SWD and JTAG selection mechanism
SWJ-DP enables either an SWD or JTAG protocol to be used on the debug port.
To do this, it implements a watcher circuit that detects a specific 16-bit selection sequence on the SWDIOTMS pin:
A 16-bit sequence is used to switch from JTAG to SWD operation
Another 16-bit sequence is used to switch from SWD to JTAG.
The switcher defaults to JTAG operation on power-on reset,
therefore the JTAG protocol can be used from reset without sending a selection sequence.
Switching from one protocol to the other can only occur when the selected interface is in its reset state.
JTAG must be in its Test-Logic-Reset (TLR) state and SWD must be in line-reset.
The SWJ-DP contains a mode status output, JTAGNSW,
that is HIGH when the SWJ-DP is in JTAG mode and LOW when in SWD mode. This signal can be used to:
disable other TAP controllers when the SWJ-DP is in SWD mode, for example by disabling TCK or forcing TMS HIGH
multiplex the Serial Wire output, TRACESWO, on to another pin such as TDO when in SWD mode.
Another status output, JTAGTOP, indicates the state of the JTAG-DP TAP controller. These states are:
Test-Logic-Reset
Run-Test/Idle
Select-DR-Scan
Select-IR-Scan.
This signal can be used with JTAGNSW to control multiplexers so that,
for example, TDO and TDI can be reused as General Purpose Input/Output (GPIO) signals when the device is in SWD mode.
The watcher block puts itself to sleep when it has finished tracking a specific sequence and only wakes up again
when it detects the next reset condition.
Figure 2.3 is a simplified state diagram that shows how the watcher transitions between sleeping, detecting, and selection states.
Figure 2.3. SWD and JTAG select state diagram
SWJ-DP switching sequences
The SWJ-DP switching sequences are described in:
JTAG to SWD switching
SWD to JTAG switching.
JTAG to SWD switching
To switch SWJ-DP from JTAG to SWD operation:
Send more than 50 SWCLKTCK cycles with SWDIOTMS=1.
This ensures that both SWD and JTAG are in their reset statesSend the 16-bit JTAG-to-SWD select sequence on SWDIOTMS
Send more than 50 SWCLKTCK cycles with SWDIOTMS=1.
This ensures that if SWJ-DP was already in SWD mode,
before sending the select sequence, the SWD goes to line reset.Perform a READID to validate that SWJ-DP has switched to SWD operation.
The 16-bit JTAG-to-SWD select sequence is defined to be 0b0111100111100111, MSB first.
This can be represented as 16'h79E7 if transmitted MSB first or 16'hE79E if transmitted LSB first.
This sequence has been chosen to ensure that the SWJ-DP switches to using SWD
whether it was previously expecting JTAG or SWD.
As long as the 50SWDIOTMS=1 sequence is sent first,
the JTAG-to-SWD select sequence is benign to SW-DP,
and is also benign to SWD and JTAG protocols used in the SWJ-DP,
and any other TAP controllers that might be connected to SWDIOTMS.
SWD to JTAG switching
To switch SWJ-DP from SWD to JTAG operation:
Send more than 50 SWCLKTCK cycles with SWDIOTMS=1.
This ensures that both SWD and JTAG are in their reset states.Send the 16-bit SWD-to-JTAG select sequence on SWDIOTMS.
Send at least five SWCLKTCK cycles with SWDIOTMS=1.
This ensures that if SWJ-DP was already in JTAG mode
before sending the select sequence, it goes into the TLR state.Set the JTAG-DP IR to READID and shift out the DR to read the ID.
The 16-bit JTAG-to-SWD select sequence is defined to be 0b0011110011100111, MSB first.
This can be represented as 16'h3CE7 if transmitted MSB first or 16'hE73C if transmitted LSB first.
This sequence has been chosen to ensure that the SWJ-DP switches to using JTAG
whether it was previously expecting JTAG or SWD.
If theSWDIOTMS=1 sequence is sent first, the SWD-to-JTAG select sequence is benign to SW-DP,
and is also benign to SWD and JTAG protocols used in the SWJ-DP,
and any other TAP controllers that might be connected to SWDIOTMS.
Restriction on switching
It is recommended that when a system is powered up, a debug connection is made, and the mode is selected,
either SWD or JTAG, that the system remains in this mode throughout the debug session.
Switching between modes must not be attempted while any component of the DAP is active.
If you attempt to switch between modes while any component of the DAP is active,
there can be unpredictable results.
A power-on reset cycle might be required to reset the DAP before switching can be retried.
SWD and JTAG selection mechanism的更多相关文章
- 浅论各种调试接口(SWD、JTAG、Jlink、Ulink、STlink)的区别
JTAG协议 JTAG(Joint Test Action Group,联合测试行动小组)是一种国际标准测试协议(IEEE 1149.1兼容),主要用于芯片内部测试.现在多数的高级器件都支持JTAG协 ...
- jlink的SWD与JTAG下载模式的对应接线方法
参考博客:http://blog.csdn.net/qq_26093511/article/details/59484249 (1)如果用jtag模式下载的话需要接线: jlink ...
- STM32的JTAG、SWD和串口下载的问题
最近有一个项目用到STM32,为了使PCB布线方便一些所以改了一些引脚,占用了JTAG接口的PA15和PB3,所以要禁用一下JTAG,下载采用SWD模式.这样在实际操作中做出一些总结(方法网上都有.这 ...
- SWD模式和JTAG模式
一.功能 SWD模式:仿真 下载 JTAG模式:仿真 下载 二.接口 1.J-link JTAG/SWD接口 2.开发板接口电路 ①SWD模式 4根线(包片机) ②JTAG模式 20脚JTAG(网络) ...
- STM32 ~ JTAG、SWD和串口下载的问题
最近有一个项目用到STM32,为了使PCB布线方便一些所以改了一些引脚,占用了JTAG接口的PA15和PB3,所以要禁用一下JTAG,下载采用SWD模式.这样在实际操作中做出一些总结(方法网上都有.这 ...
- Serial Wire Debug (SWD) Interface -- PSoc5
PSoC 5 supports programming through the serial wire debug (SWD) interface. There are two signals in ...
- SWD烧录/仿真方式
单片机在烧写/仿真的时候具有一种方式叫做SWD,这种方式只用到两根线SWDIO,SWCLK.一般SWD和JTAG中的JTMS和JTCK共用的.由于线少,所以使用非常方便,但是速率相对较低. 在接线时, ...
- Introduction to Cortex Serial Wire Debugging
Serial Wire Debug (SWD) provides a debug port for severely pin limited packages, often the case for ...
- ARM Cortex Design Considerations for Debug
JTAG was the traditional mechanism for debug connections for ARM7/9 parts, but with the Cortex-M fam ...
随机推荐
- 深入浅出js事件
深入浅出js事件 一.事件流 事件冒泡和事件捕获分别由微软和网景公司提出,这两个概念是为了解决页面中事件流(事件发生顺序)的问题. <div id="outer"> & ...
- scrapy主动触发关闭爬虫
在spider中时在方法里直接写 self.crawler.engine.close_spider(self, 'cookie失效关闭爬虫') 在pipeline和downloaderMiddle ...
- OS X 10.11:在exFAT分区的外置硬盘上使用Time Machine。
Time Machine默认需要使用HFS+分区的外置硬盘,但在网络硬盘上也可以使用单个的 .sparsebundle 镜像文件备份.在本地USB或Firewire等接口连接的外置硬盘,只有exFAT ...
- ASP.NET中Request.ApplicationPath、Request.FilePath、Request.Path、.Request.MapPath、
1.Request.ApplicationPath->当前应用的目录 Jsp中, ApplicationPath指的是当前的application(应用程序)的目录,ASP.NET中也是这 ...
- VM workstation 与 VM vSphere的区别 [转载]
在学完vSphere后,想起了VMware Workstation.这两个都是虚拟化的东西,这两者到底有什么本质的不同呢?顺着我的思路我开始将所学过的进行检索期望从中寻到一丝半点的线索.很快大脑中建立 ...
- 解决tomcat 启动 一闪而过
有的朋友在启动Tomcat的时候会出现问题. 1例如: 手动点击startup.bat 后 ,一闪而过 2例如:在cmd下 进到tomcat的bin目录 运行 startup.bat ,然后输出 了J ...
- ORM,DAO,MVC,POJO
1.ORM 对象关系映射(Object Relational Mapping,简称ORM)是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术. 简单的说,ORM是通过使用描述对象和数据库之间 ...
- php实现https(tls/ssl)双向认证
php实现https(tls/ssl)双向认证 通常情况下,在部署https的时候,是基于ssl单向认证的,也就是说只要客户端认证服务器,而服务器不需要认证客户端. 但在一些安全性较高的场景,如银行, ...
- jQuery库冲突
jQuery库冲突解决办法 一次面试中面试官问到jQuery和别的库冲突怎么解决?虽然以前看过,但是我已经不记得了. 我的思路就是如果让我来设计,那我就用一个默认值$,不传参数,那就用$,最后就挂 ...
- 【Java】快速排序的非递归实现
快速排序一般采用递归方法(详见快速排序及其优化),但递归方法一般都可以用循环代替.本文实现了java版的非递归快速排序. 更多:数据结构与算法合集 思路分析 采用非递归的方法,首先要想到栈的使用,通过 ...