# 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 调试适配器).
本焊接指南需要
1 个电缆连接器,用于与 JST SM10B(满装) (打开新窗口) 或 JST SM06B(迷你) (打开新窗口).
我们建议购买完全组装好的电缆,两侧有两个连接器。
1x 电烙铁和焊料。
一些钳子、切割钳和镊子。
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 上。注意不要在电缆之间产生短路,因为压接连接器相当大。
# 测试
现在应测试调试探针,确保没有任何电气短路。
- 通过 Pixhawk 调试端口将探针插入目标机。
- 使用自己选择的程序测试串行端口。
- 通过 [OpenOCD][https://openocd.org]测试 SWD 和 RST 连接或 STLink (打开新窗口) 软件
- 通过 [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。
您还可以选择在纸上印上自己喜欢的徽标,并按尺寸裁剪。需要注意的是,热量会使墨水有点流动,因此您可能需要尝试一下打印机的设置。
# 另见
← 黑魔法/无人机代码探测器 硬故障调试 →