当前位置:   article > 正文

STM32 JTAG电路设计

jtag电路

学习需要刨根问底

1. 什么是JTAG

JTAG(Joint Test Action Group)是一个接口,为了这个接口成立了一个小组叫JTAG小组,它成立于1985年,比推丸菌的年龄还大。 在1990年IEEE觉得一切妥当,于是发布了 IEEE Standard 1149.1-1990,并命名为 Standard Test Access Port and Boundary-Scan Architecture,这就是大名鼎鼎的JTAG了。

2. JTAG用在哪里?

JTAG的三大功能你知道吗,响当当的:

  • 下载器,即下载软件到FLASH里。
  • DEBUG,跟医生的听诊器似的,可探听芯片内部小心思。
  • 边界扫描,可以访问芯片内部的信号逻辑状态,还有芯片引脚的状态等等。

3. JTAG原理

下图为JTAG控制器的内部结构框图,这部分讲解起来比较麻烦,这就就简单的介绍一下TRST管脚,该管脚为可选管脚,主要的作用是复位调试器,在实际开发中如果有相应的需求时可以接上,也可以不接。其他管脚的定义在后面的图会详细的解释.
在这里插入图片描述

下图为JTAG重要的四根线:TDI、TDO、TMS、TCK等。

  • TDI为测试数据输入,用于指令以及测试和编程数据的串行输入管脚,在TCK的上升沿移入。注意后面这句话,可以通过将改管脚接VCC来禁用JTAG,意思是在不用JTAG的时候可以将其禁用, 那么在电路设计时,接入一个上拉电阻就行,尽管后面有25K的弱上拉,但是在调试过程中会出现高速下载的时候,下载不了程序,建议外部预留上拉电阻(4.7K或者10K的电阻)
  • TDO和TDI类似, 唯一的不同是TDO是三态的,三态意味着可以不接上下拉电阻,该管脚是在TCK下降沿移出。禁用JTAG时,只需要悬空该管脚,所以这个管脚不需要加上下拉电阻。
  • TMS为测试模式选择,提供控制信号输入管脚,控制信号用来控制TAP状态机的跳变。状态机跳变发生在TCK的上升沿,将此管脚接VCC禁用JTAG。建议在外部加4.7的上拉电阻
  • TCK是测试时钟输入,边界扫描电路的时钟输入脚,如果不需要使用JTAG,则需要拉低,建议在外部加上4.7K的下拉电阻。
    在这里插入图片描述

4. JTAG接口定义

JTAG根本没有标准的接口定义,甚至每家公司定义都不一样,推丸菌罗列了4种接口定义,有ARM公司的定义,有ST公司的定义等等,仅供大家参考。可能有眼尖的工程师,对的,我这个跟Intel的文档是一样的[请参考jtag-101-ieee-1149x-paper.pdf]。推丸菌建议硬件攻城狮不要纠结于引脚定义,而要专心设计电路,深入理解TMS/TCK/TDO/TDI等信号。下图为常见的几种定义(大部分采用ARM 20PINS的标准)

在这里插入图片描述

5. SWD模式

SWD是ARM公司提出的另一种调试接口,相对于JTAG接口,使用更少的信号。四根信号如下:

  • VRef:目标板参考电压信号。用于检查目标板是否供电,直接与目标板VDD联,并不向外输出电压;
  • GND:公共地信号;
  • SWDIO:串行数据输入输出,作为仿真信号的双向数据信号线,建议上拉(高速下载时一定需要上拉);
  • SWCLK:串行时钟输入,作为仿真信号的时钟信号线,建议下拉(高速下载时一定需要下拉);
  • SWO:串行数据输出引脚,CPU调试接口可通过SWO引脚输出一些调试信息。该引脚是可选的;
  • RESET:仿真器输出至目标CPU的系统复位信号。该引脚可选,建议选择上,因为ULINK是一定需要该管脚的,使得仿真器能够在连接器件前对器件进行复位,以获得较理想的初始状态,便于后续连接仿真。

6. JTAG接口设计

6.1 四线SWD

该方式是目前STM32最小系统用的最多的方式,体积小。不过还是建议选择五线SWD
在这里插入图片描述

6.2 五线SWD

为什么把复位管脚放置在GND后面呢, 因为目前市面上大部分仿真器的SWD线序为VCC、SWDIO、SWCLK、GND,为了兼容市面上的四线的仿真器接口,所以选择放置在最后
在这里插入图片描述

6.3 20P ARM JTAG

该种方式是最稳定的下载方式,速度相对于前两者可以很快,但是需要占用的体积大
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/81706
推荐阅读
相关标签
  

闽ICP备14008679号