JTAG下载调试电路
JTAG(Joint Test Action Group,联合测试行动小组)是一种国际标准测试协议(IEEE 1149.1兼容),主要用于芯片内部测试。现在多数的高级器件都支持JTAG协议,如ARM、DSP、FPGA器件等。标准的JTAG接口是4线:TMS、 TCK、TDI、TDO,分别为模式选择、时钟、数据输入和数据输出线。 相关JTAG引脚的定义为:
TMS:测试模式选择,TMS用来设置JTAG接口处于某种特定的测试模式;
TCK:测试时钟输入;
TDI:测试数据输入,数据通过TDI引脚输入JTAG接口;
TDO:测试数据输出,数据通过TDO引 脚从JTAG接口输出;
JTAG协议在定义时,由于当时的计算机(PC机)普遍带有并口,因而在连接计算机端是定义使用的并口。而计算机到了今天,不要说笔记本电脑,现在台式计算机上面有并口的都很少了,取而代之的是越来越多的USB接口。USB接口是一种串口协议,那么能不能让JTAG支持USB协议,用USB接口来调试ARM呢?这就要说到JLINK和ULINK了。
J-Link是德国SEGGER公司推出基于JTAG的仿真器。简单地说,是给一个JTAG协议转换盒,即一个小型USB到JTAG的转换盒,其连接到计算机用的是USB接口,而到目标板内部用的还是jtag协议。它完成了一个从软件到硬件转换的工作。
ULINK是ARM/KEIL公司推出的仿真器,目前网上可找到的是其升级版本,ULINK2和ULINKPro仿真器。ULINK/ULINK2可以配合Keil软件实现仿真功能,并且仅可以在Keil软件上使用,增加了串行调试(SWD)
ST-LINK是专门针对意法半导体STM8和STM32系列芯片的仿真器。
总结下,不管是JLink,ULINK还是ST-LINK都是基于JTAG协议实现的,也就是把协议烧到了实际硬件里面,后面的ULINK和ST-LINK可能对自己平台做了些优化。
如今 JTAG 接口的连接有三种标准,即 14 针接口和 20 针接口和10针接口,其定义分别如下所示。
14针
1 、 13 VCC 接电源
2 、 4 、 6 、 8 、 10 、 14 GND 接地
3 nTRST 测试系统复位信号
5 TDI 测试数据串行输入
7 TMS 测试模式选择
9 TCK 测试时钟
11 TDO 测试数据串行输出
12 NC 未连接
20针
1 VTref 目标板参考电压,接电源
2 VCC 接电源
3 nTRST 测试系统复位信号
4、6、8、10、12、14、16、18、20 GND 接地
5 TDI 测试数据串行输入
7 TMS 测试模式选择
9 TCK 测试时钟
11 RTCK 测试时钟返回信号
13 TDO 测试数据串行输出
15 nRESET 目标系统复位信号
17 、 19 NC 未连接
10针
仿真器端口 AVR端口 备注
1. TCK TCK
2. NC NC
3. TDO TDO
4. Vtref VCC
5. TMS TMS
6. nSRST RESET
7. NC / Vsupply NC / VCC JTAG ICE仿真器:VCC;JTAG ICE mkII仿真器:NC
8. nTRST NC ATMEL尚且保留该端口,如今暂不使用它,未来可能会使用
9. TDI TDI
10.GND GND
实际上10针的只需要接4根线,4号是自连回路,不需要接,1,2接的都是1管脚,而8,10接的是GND,也可以不接。
值得注意的是有些单片机在内部直接将与JTAG接口地方集成了上下拉电阻,这样就不用外接上拉或者下拉电阻了。上面的是在STM32单片机上手册的说明,很明显,它内部已经集成了上下拉电阻了。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步