历史上的今天
返回首页

历史上的今天

今天是:2025年01月16日(星期四)

正在发生

2019年01月16日 | stm32的两种固件下载模式:JTAG和SWD

2019-01-16 来源:eefocus

一、JTAG模式


这种模式一般有10pin的、14pin的和20pin的,尽管引脚数和引脚的排列顺序不同,但是其中有一些引脚是一样的。值得注意的是,不同的IC公司会自己定义自家产品专属的Jtag头,来下载或调试程序。


Test Clock Input (TCK) -----强制要求1:TCK在IEEE1149.1标准里是强制要求的。TCK为TAP的操作提供了一个独立的、基本的时钟信号,TAP的所有操作都是通过这个时钟信号来驱动的。


Test Mode Selection Input (TMS) -----强制要求2:TMS信号在TCK的上升沿有效。TMS在IEEE1149.1标准里是强制要求的。TMS信号用来控制TAP状态机的转换。通过TMS信号,可以控制TAP在不同的状态间相互转换。


Test Data Input (TDI) -----强制要求3:TDI在IEEE1149.1标准里是强制要求的。TDI是数据输入的接口。所有要输入到特定寄存器的数据都是通过TDI接口一位一位串行输入的(由TCK驱动)。


Test Data Output (TDO) -----强制要求4:TDO在IEEE1149.1标准里是强制要求的。TDO是数据输出的接口。所有要从特定的寄存器中输出的数据都是通过TDO接口一位一位串行输出的(由TCK驱动)。


Test Reset Input (TRST) ----可选项1:这个信号接口在IEEE 1149.1标准里是可选的,并不是强制要求的。TRST可以用来对TAPController进行复位(初始化)。因为通过TMS也可以对TAP Controll进行复位(初始化)。所以有四线JTAG与五线JTAG之分。


 (VTREF) -----强制要求5:接口信号电平参考电压一般直接连接Vsupply。这个可以用来确定ARM的JTAG接口使用的逻辑电平(比如3.3V还是5.0V?)


Return Test Clock ( RTCK) ----可选项2:可选项,由目标端反馈给仿真器的时钟信号,用来同步TCK信号的产生,不使用时直接接地。


System Reset ( nSRST)----可选项3:可选项,与目标板上的系统复位信号相连,可以直接对目标系统复位。同时可以检测目标系统的复位情况,为了防止误触发应在目标端加上适当的上拉电阻。


USER IN:用户自定义输入。可以接到一个IO上,用来接受上位机的控制。


USER OUT:用户自定义输出。可以接到一个IO上,用来向上位机的反馈一个状态


由于JTAG经常使用排线连接,为了增强抗干扰能力,在每条信号线间加上地线就出现了这种20针的接口。但事实上,RTCK、USER IN、USER OUT一般都不使用,于是还有一种14针的接口。对于实际开发应用来说,由于实验室电源稳定,电磁环境较好,干扰不大。


 


上述Jtag头的管脚名称是对IC而言的。例如TDI脚,表示该脚应该与IC上的TDI脚相连,而不是表示数据从该脚进入download cable。


实际上10针的只需要接4根线。4号是自连回路,不需要接。1和2号接的都是1管脚;而8和10接的是GND,也可以不接。

 

二、SWD模式


在给STM32烧写程序调试的时候,传统20脚JTAG底座个头大,占用PCB面积多,连接线复杂。


采用SWD模式Jlink,只需要三根线即可与目标板实现通讯,可实现程序下载,单步调试等功能,除了不能检测目标板电压、不能给目标板供电、速度有所降低之外,与完整版JLink的功能是一样的。


20脚JTAG底座, 只需要 SWDIO、SWCLK、GND三根线,即 7号、9号及GND 中的任意一根针。由于固件烧写一次后就不再使用(掉固件的可能性非常低),因此不需要再焊排针上去了,杜邦排针连接即可。


对于全功能JLink,1号针脚的功能有两个:检测目标板电压;为内部的电平转换芯片提供输出端参考电压。也就是说,如果目标板电压为3.3V,那么这里也必须给1号针脚提供3.3V电压,才能保证正常输出。由上图可知,20针JTAG的2号针可以提供VCC供电。打开J-Link Commander输入power on时,发现2号针脚输出的是5V电压,无法通过直接短路1、2号针来解决问题。所以必须给目标板上Jlink连接器的1号管脚提供3.3V的电压,可以在Jlink中获取,也可以在待烧写的板子中获得,这与三线SWD下载模式无关。


烧写程序接线顺序:插杜邦排针,原始JLink上电,待编程、烧写器上电(USB)。断开时步骤相反,切不可颠倒!尤其不能在上电时断开上图中的连接,否则会烧坏器件!


推荐阅读

史海拾趣

问答坊 | AI 解惑

电源电路(高手请进)

我们公司现在用的是:电源变压器:输入是230V ,50HZ .输出是38V和18V ,负载电压是29V和15.5V ,电流是1.8A和0.1A,由于电源变压器的价格太高,请问能否用高频变压器来代替.…

查看全部问答>

单片机如何采集内部产生的方波信号?

小弟在做一个试验,就是从单片机内部引脚产生一个占空比可调 频率可调的方波,然后进入AD,AD转换后在通过本身单片机实现在液晶显示转换结果, 现在我是分别做的这两部分:1.从外部输入一个方波信号,能实时液晶显示转换结果      ...…

查看全部问答>

请教一个关于s3c2410 UART的问题

我需要用xmodem协议从pc机下载一个文件 代码用的是vivi现成的,在57600的波特率下能正常运行 但是提高到115200的时候总是传一会儿就会出错(但是vivi是在115200波特率下正常运行) 读uerstat寄存器发现是overrun错, 明明手册上写的是当读出uer ...…

查看全部问答>

普通IO通信问题

想请教下两个单片机的IO口通过一根网线相连接.(八个普通的IO相连) 怎样才能知道网线中哪根通哪根断了.还有A单片机的哪个口对应的B单片机的哪个口. 不太知道思路.…

查看全部问答>

有谁在VS2005下开发sm5.0数据库为sqlite

有谁在VS2005下开发sm5.0数据库为sqlite,给发一个示例,8844.4321@163.com…

查看全部问答>

再来讨论个pll电路的设计

adf4360-7的频率源,没设计过rf高频电路,不知道输出的pcb该如何布线。…

查看全部问答>

dsp考试题??

我们DSP考试题目是 F2812中SCI通信 LSPCLK设置为40M,要使波特率为9600 则BRR高低位值为 A,0X23,0X0F B,0X0F,0X23 C,0X12,0X0F D,0X23,0X12 我计算出来没有答案啊,问老师,老师说题目没错,求真相…

查看全部问答>

TI 电源开关设计秘笈30 例(共3个PDF)

电源设计一直是工程师面对的一个难题,随着全球节能环保意识的提升,设计简捷、高效、轻巧的绿色电源成为工程师的首要任务,为了帮助工程师解决这方面的难题,现在特别隆重推出大量实用资料供工程师朋友下载,目前推出的一本电子书叫做《电源开关设 ...…

查看全部问答>