STLink V2 调试编程器应用图解
STLink
是由意法半导体公司推出的在线调试编程器,采用5V
的USB2.0全速接口进行供电与数据传输,可以方便的对内部固件进行升级,同时支持以
JTAG 或 SWD 模式连接至 STM32
系列微控制器,或者以 SWIM 模式连接至 STM8
系列微控制器,操作温度介于0 ~ 50℃
之间。由于 ST
公司极为重视中国市场,因此 STLink
的销售价格相对其它国外大厂的在线仿真设备要实惠许多,基本成为国内嵌入式工程师人手上必备的工具。
本文详细介绍 Keil uVision 5 开发环境下 ST-LINK/V2 版本的调试编程器使用方法,并介绍了相关接口的详细定义与接线方法,文中部分内容翻译至意法半导体官方提供的《用于 STM8 与 STM32 的 ST-LINK/V2 在线调试编程器用户手册》,以确保使用方法与解释的规范性。
配件说明
ST-LINK/V2
基于意法半导体自己的STM32F103C8微控制器,主要提供了一个用于
STM32 的JTAG与SWD/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】按钮图标,就可以进入仿真模式。
STLink V2 调试编程器应用图解