采用swd接口程序时使用哪些引脚

采用swd接口程序时使用哪些引脚,第1张

stm32的调试接口SWD要配置下载器才可以既有下载功能又有io功能。比较常用的是Jlink下载器 ,这种下载器有一个缺点就是使用的Jtag 20PIN接口,太多的PIN会导致一些小型的PCB板很拥挤,也会增加布线的难度。 而使用SWD接口下载调试,只需要要使用4个PIN: GND, RST, SWDIO, SWDCLK ,而且下载速度可以达到10M/s,优势显而易见。打开工程OPTION设置:

在开发低功耗产品时,为了尽可能的降低功耗,一般会讲未使用的GPIO设置为某个状态,比如在STM32L4xx理,GPIO在 analog 模式功耗是最优。SWD口除了开发调试及生产烧录,出去后用不到,所以会设为 analog 模式(调试的时候保留,正式版才关闭,这个大家都懂,万一生产返工呢………………)。

这样就会出现个问题:空片的SWD没有被禁止,所以随时都可以烧录,但是烧过程序的就被关闭了,怎么办?

其实,MCU在复位的时候,SWD所在的那两个GPIO默认就是SWD接口,还是可以连上的。说得那么简单,那也没必要写这篇文章了。复位后GPIO确实是SWD接口,但是jlink连接芯片也是要时间的,虽然很短,如果在复位后立马就去将SWD口改了,jlink就连不上了。说到这,应该都明白该怎么做了: 系统启动后不要立马去更改SWD口的配置,过一会再改,比如其它的初始化 *** 作都完成了再改!!!

血和泪的教训…………………………

前面说,在复位后的那一小会是可以连接的,但是调试的时候总不能每次都去按复位键或重新上电那得多麻烦。这方面,jlink想得很周到,提供了一个 reset 脚,将该脚连到MCU的复位脚,并在IDE上做如下配置即可:

IAR:

1) SWD 仿真模式概念简述

先所说 SWD 和传统的调试方式有什么不一样:

首先给大家介绍下经验之谈:

(一): SWD 模式比 JTAG 在高速模式下面更加可靠. 在大数据量的情况下面 JTAG 下载 程序会失败, 但是 SWD 发生的几率会小很多. 基本使用 JTAG 仿真模式的情况下是可以直接使用 SWD 模式的, 只要你的仿真器 支持. 所以推荐大家使用这个模式.

(二): 在大家 GPIO 刚好缺一个的时候, 可以使用 SWD 仿真, 这种模式支持更少的引脚.

(三): 在大家板子的体积有限的时候推荐使用 SWD 模式, 他需要的引脚少, 当然需要的 PCB 空间就小啦. 比如: 你可以选择一个很小的 2.54 间距的 5 芯端子做仿真接口.

(2) 仿真器对 SWD 模式支持情况

再说说市面上的常用仿真器对 SWD 仿真的支持情况.

(1) JLINKV6 支持 SWD 仿真模式. 速度较慢.

(2) JLINKV7 比较好的支持 SWD 仿真模式, 速度有了明显的提高. 速度是 JLINKV6 的 6 倍.

(3) JLINKV8 非常好的支持 SWD 仿真模式, 速度可以到 10M.

(4) ULINK1 不支持 SWD 模式

(5) 盗版 ULINK2 非常好的支持 SWD 模式. 速度可以达到 10M.

(6) 正版 ULINK2 非常好的支持 SWD 模式. 速度可以达到 10M.

再所说硬件上的不同:

(1) JLINKV6 需要的硬件接口为: GND, RST, SWDIO, SWDCLK

(2) JLINKV7 需要的硬件接口为: GND, RST, SWDIO, SWDCLK

(3) JLINKV8 需要的硬件接口为: VCC, GND, RST, SWDIO, SWDCLK

(4) ULINK1 不支持 SWD 模式

(5) 盗版 ULINK2 需要的硬件接口为: GND, RST, SWDIO, SWDCLK

(6) 正版 ULINK2 需要的硬件接口为: GND, RST, SWDIO, SWDCLK

由此可以看到只有 JLINKV8 需要 5 个引脚. 那么给大家介绍下为什么有了 VCC 这个引脚时候有好处, 我的个人理解: 我认为有这个引脚是最合适的, 仿真器对目标板子的仿真需要用到 RST 引脚, 其实使用仿真器内部的 VCC 做这个功能其实并不是非常美妙. 因此 JLINKV8 选择了只和目标板共 GND, 但是不共 VCC. 因此我觉得这种模式最合理, 当然通常情况下仿真器和目标板共 GND 和 VCC 是没有错的.


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8143240.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-13
下一篇2023-04-13

发表评论

登录后才能评论

评论列表(0条)

    保存