STLink V2 调试编程器应用图解

STLink 是由意法半导体公司推出的在线调试编程器,采用5VUSB2.0全速接口进行供电与数据传输,可以方便的对内部固件进行升级,同时支持以 JTAGSWD 模式连接至 STM32 系列微控制器,或者以 SWIM 模式连接至 STM8 系列微控制器,操作温度介于0 ~ 50℃之间。由于 ST 公司极为重视中国市场,因此 STLink 的销售价格相对其它国外大厂的在线仿真设备要实惠许多,基本成为国内嵌入式工程师人手上必备的工具。

本文详细介绍 Keil uVision 5 开发环境下 ST-LINK/V2 版本的调试编程器使用方法,并介绍了相关接口的详细定义与接线方法,文中部分内容翻译至意法半导体官方提供的《用于 STM8 与 STM32 的 ST-LINK/V2 在线调试编程器用户手册》,以确保使用方法与解释的规范性。

配件说明

ST-LINK/V2 基于意法半导体自己的STM32F103C8微控制器,主要提供了一个用于 STM32 的JTAGSWD/SWV连接器(下图标识 A)和一个用于 STM8 的SWIM连接器(下图标识 B)两种连接方式,并带有一枚通信指示灯(下图标识 D)。其中,SWIM模式下支持1.65V ~ 5.5V应用电压,支持低速(9.7 Kbytes/s)和高速模式(12.8 Kbytes/s)编程,可使用 ERNI 标准的垂直/水平连接器,以及 2.54 毫米的连接插座。JTAG/SWD模式下支持1.65V ~ 3.6V的应用电压与5V容错输入,支持间距2.54mm的 20 针 JTAG 连接器,以及 SWD 和串行线查看器(SWV)通信。

ST-LINK/V2 调试编程器包含如下所示的配件与设备:

  • A)Mini USB 数据线。
  • B)ST-LINK/V2 调试编程器。
  • C)低成本 SWIM 连接器。
  • D)带有标准 ERNI 连接器的 SWIM 排线。
  • E)带有 20 针连接器的 JTAG 或 SWD排线。

固件升级

前往意法半导体官方网站ST-LINK/V2下载 USB 驱动程序与升级工具,安装驱动程序之后运行ST-LinkUpgrade.exe升级工具:

点击【Device Connect】连接 STLink(如果未连接成功,请将 Mini USB 数据线拔出后重新上电),连接成功后查看当前 STLink 的版本号,然后点击【Yes >>>>】按钮开始升级,完成以后将会弹出升级成功的提示。

指示灯状态说明

STLink 上 LED 指示灯用于提示当前的工作状态,具体情况如下:

  • LED 闪烁红色:STLink 已经连接至计算机。
  • LED 保持红色:计算机已经成功与 STLink 建立通信连接。
  • LED 交替闪烁红色绿色:数据正在传输。
  • LED 保持绿色:最后一次通信是成功的。
  • LED 为橘黄色:最后一次通信失败。

连接 STM8

开发 STM8 微控制器应用程序时,STLink 可以使用一端带有 ERNI 连接器的排线、以及间距 2.54 毫米的双排四针排线,共两种方式连接至开发板:

下面的表格是官方文档里对于 SWIM 四针连接器的针脚功能说明:

连接 STM32

开发 STM32 微控制器应用程序时,需要使用 20 针的 JTAG 排线将 STLink 连接至开发板。

下面的表格对于 20 针 JTAG 排线的针脚功能进行了说明:

Keil uVision 5 配置

JTAG(联合测试行动小组,Joint Test Action Group)是一种国际标准测试协议,标准 JTAG 接口采用 4 枚针脚,但是目前较为常用的是 14、20 个针脚,笔者之前《J-Link 仿真器固件恢复小记》一文中使用的 JLink 就是采用了 20 针的 JTAG 调试协议,当前使用的 STLink V2 也同样采用了该种 20 针接口,这里直接将其插入 STM32F103C8T6 实验电路中的调试插座,然后打开 Keil uVision 5 界面上的【Options for Target】对编译目标进行设置,选择【Debug】选项卡并选中【Use ST-Link Debugger】选项。

接下来再点击界面上的【Settings】选项,在弹出的【Cortex-M Target Driver Setup】设置界面当中,将【Debug】标签下的【Target Com】选择为JTAG,点击【确定】按钮以后退出。

接下来再打开【Options for Target】界面上的【Utilities】选项卡,将【Use Target Driver for Flash Programming】选中为ST-Link Debugger

最后点击选项菜单后面的【Settings】按钮,重新进入【Cortex-M Target Driver Setup】设置界面,点击【Add】添加合适的 Flash 编程算法,确定后保存退出。

注意:当前运行的 STM32 程序当中不能出现类似GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE)会造成禁用 JTAG 或 SW 接口的语句,并且同时需要注意将 STM32 的下载模式切换至FLASH ISP模式。

SWD(串行调试,Serial Wire Debug)拥有 4 个针脚,高速模式下 SWD 比 JTAG 接口更加稳定可靠,占用引脚数量更少且调试更为方便。

Keil uVision 5 使用

点击 Keil uVision 5 菜单栏上的【Download】按钮,可以通过 STLink 将程序烧写至微控制器的Flash当中并且运行,这与 ISP 下载软件的作用完全相同。完成下载之后,程序可以脱离 STLink 独立运行 FLASH 当中。

点击 Keil uVision 5 菜单栏上的【Start/Stop Debug】按钮图标,就可以进入仿真模式。