# STLink 调试探头

STLinkv3-MINIE (打开新窗口) 是一款廉价、快速、功能强大的调试探头,可作为 PX4 开发人员的独立调试和控制台通信设备:

  • 只有一个 USB-C 连接,用于复位、SWD、SWO 和串行接口,封装非常小巧!
  • 高达 24MHz 的 SWD 和 SWO 连接。高达 16 MBaud 的串行接口。目标电压为 1.65V 至 3.6V。USB2 高速 480 Mbps 连接。
  • 由 STLink 或 OpenOCD 软件驱动,支持多种设备。
  • 比 Pixhawk 调试适配器(约 20 欧元)和 JLink EDU mini(约 55 欧元)或 JLink BASE(约 400 欧元)便宜得多(15 欧元),同时硬件规格也更高。

STLink 调试探针不附带与 Pixhawk 飞行控制器配合使用的适配器。调试探针 Pixhawk 调试端口适配器 下面的部分将介绍如何制作您自己的设备(需要一些焊接)。

备注

CUAV C-ADB Pixhawk 调试适配器 (约 65 欧元)配有 STLinkv3-MINIE!它有一个用于 Pixhawk 调试完毕 10 针 SH 端口(但不包括 Pixhawk 迷你调试器).

# 调试配置

STLink 提供 通过 OpenOCD 运行的 GDB 服务器 (打开新窗口):

# Ubuntu
苏都 适切 安装 openocd
# macOS安装 open-ocd

您可以在一个新的终端 shell 中启动 GDB 服务器:

openocd -f interface/stlink.cfg -f target/stm32f7x.cfg

配置文件必须是

  • FMUv2-v4: -f target/stm32f4x.cfg
  • FMUv5: -f target/stm32f7x.cfg
  • FMUv6: -f target/stm32h7x.cfg

然后就可以通过 GDB 连接到 3333 端口:

arm-none-eabi-gdb build/px4_fmu-v5x_default/px4_fmu-v5x_default.elf -ex "target extended-remote :3333";

参见 嵌入式调试工具 (打开新窗口) 以获取更多高级调试选项。

# Pixhawk 调试端口适配器

要连接到 Pixhawk 调试端口,您需要焊接一个适配器(除非使用了 CUAV 调试适配器).

本焊接指南需要

Pixhawk 调试端口已在 DS-009 中标准化 (打开新窗口) 并需要连接到 STLinkv3-MINIE 板对板(BTB)卡边缘连接器 CN2。此处描述了引脚输出映射:

#Full #Mini Pixhawk 调试 STLinkv3 #BTB
1 1 VREF VCC 10
2 2 控制台 TX(输出) TX (in) 8
3 3 控制台 RX(英寸) RX(输出) 7
4 4 SWDIO TMS 3
5 5 SWCLK CLK 4
6 SWO 运输署 5
7 GPIO1
8 GPIO2
9 nRST RST 9
10 6 接地 接地 6

STLinkv3 不支持 GPIO1/2 引脚,我们建议使用数字 ITM 仿真,而不是 SWO,后者更加灵活,并支持周期精确时间戳。

您可以选择将短电缆或长电缆焊接到 BTB 连接器上。短电缆更适合高速通信,但焊接难度较大。我们建议先焊接长电缆,然后测试与目标通信的速度。

备注

本指南针对完整的 10 针调试端口编写。如果您想焊接迷你 6 针版本,只需省略您没有的信号即可。STLink 支持任何基于 SWD/JTAG 的调试接口,因此您可以将本指南用于您可能拥有的任何其他连接器。调试探针非常便宜,每个连接器只需一个,无需使用适配器。

这就是 STLinkv3-MINIE 的交付方式。

拆开 PCB,检查有无损坏。插上电源,看是否能正常开机。

# 短电缆

短电缆需要使用剪线钳和剥线器,焊接技术要求也更高一些。不过,它使整个调试探头变得更小。

组装不带 GPIO1/2 的 10 针连接器。如果您已经有一根组装好的电缆,请用镊子提起固定电缆的钉子,小心地取下两根 GPIO1/2 电缆。将电缆剪成约 2 厘米(约 1 英寸)短的长度,并剥去电线。

给 STLink 上的 BTB 连接器和电缆都镀锡。

首先焊接 GND 和 VCC 信号,使连接器与边缘平行。然后焊接 TX 和 RX 引脚。最后焊接 RST 连接。

将 STLink 翻过来,焊接其余三根导线。首先焊接 SWDIO->TMS,然后焊接 SWCLK->CLK,最后焊接 SWO->TDO。

# 长电缆

如果使用预装电缆,长电缆尤其有用,因为它省去了剪线或剥线的麻烦。

小心地从电缆的一个连接器上取下两条 GPIO1/2 电缆。然后从另一个连接器上拆下所有电缆。电线末端只剩下八个压接连接器。

给压接电缆连接器和 BTB 连接器镀锡,然后将压接连接器直接焊接到 STLinkv3 上。注意不要在电缆之间产生短路,因为压接连接器相当大。

# 测试

现在应测试调试探针,确保没有任何电气短路。

  1. 通过 Pixhawk 调试端口将探针插入目标机。
  2. 使用自己选择的程序测试串行端口。
  3. 通过 [OpenOCD][https://openocd.org]测试 SWD 和 RST 连接或 STLink (打开新窗口) 软件
  4. 通过 [Orbuculum][https://github.com/orbcode/orbuculum]测试 SWO 连接。

参见 嵌入式调试工具 (打开新窗口) 了解有关 PX4 FMUv5 和 FMUv6 飞行控制器软件支持的更多信息。

# 缩小尺寸

此步骤移除 STLinkv3-MINIE 背面的 14 针调试接口,并在整个器件周围添加收缩管,以改善操作性,防止 STLink 与金属部件或 PCB 短路。此步骤完全是可选的,需要

  • 1x 20 毫米收缩套管,长约 5 厘米。
  • 1x 扁钳,用于通过 USB-C 端口夹住 STLinkv3。
  • 1x 细钳或烙铁。
  • 1x 热风枪

用钳子轻轻拉开 STDC14 连接器的塑料部分。这样就只剩下连接器引脚了。

用细钳子剪掉连接器针脚,要非常小心,不要损坏 PCB 或 PCB 上的任何元件。或者,也可以将这些连接器针脚从印刷电路板上焊接下来,但需要较长的时间。

旋转 STLinkv3 切下另一行,同样要非常小心,以免损坏。

剪下一段约 5 厘米(约 2 英寸)长的收缩管。它应与 USB-C 连接器齐平,并稍稍超出末端。

用平钳夹住 PCB 和收缩管的两侧 底层 USB-C 连接器的金属部分。小心不要误挤 USB-C 接口中间的塑料部分!

使用热风枪收缩调试探针周围的管子。确保管子收缩均匀,保护整个 PCB。

您还可以选择在纸上印上自己喜欢的徽标,并按尺寸裁剪。需要注意的是,热量会使墨水有点流动,因此您可能需要尝试一下打印机的设置。

# 另见