SWD 调试端口
PX4 运行在 ARM Cortex-M 微控制器上,这些微控制器包含专用硬件,可通过 [串行线调试(SWD)][swd] 接口进行交互式调试,并通过 [串行线输出(SWO)][itm] 以及 [跟踪(TRACE)引脚][etm] 实现非侵入式性能分析和高带宽跟踪。
SWD 调试接口允许对微控制器的处理器和外设进行直接的底层硬件访问,因此它不依赖于设备上的任何软件。 所以,它可用于调试引导加载程序以及诸如 NuttX 之类的操作系统。
调试信号
调试时需要四个信号(加粗显示),其余信号则为推荐使用。
参数名 | 类型 | 描述 |
---|---|---|
接地(GND) | 电源 | 公共电位,接地。 |
参考电压(VREF) | 电源 | 目标参考电压使调试探针能够在信号上使用电平转换器。 |
串行线调试数据引脚(SWDIO) | 输入/输出 | 串行线调试数据引脚。 |
串行线调试时钟引脚(SWCLK) | 输入 | 串行线调试时钟引脚。 |
复位引脚(nRST) | 输入 | 复位引脚为可选(n 表示低电平有效)。 |
串行线跟踪异步数据输出(SWO) | 输出 | 单线跟踪异步数据输出,可输出 ITM 和 DWT 数据。 |
跟踪时钟(TRACECK) | 输出 | 并行总线的跟踪时钟。 |
跟踪数据引脚(TRACED[0-3]) | 输出 | 具有 1、2 或 4 位的跟踪同步数据总线。 |
硬件复位引脚是可选的,因为大多数设备也可以通过 SWD 线路进行复位。不过,通过按钮快速复位设备对于开发工作来说非常有用。
SWO 引脚可以发出低开销的实时性能分析数据,并带有纳秒级时间戳,因此强烈建议在调试时使用该引脚。
TRACE 引脚需要专用的调试探针来处理高带宽数据以及后续的数据流解码。 它们通常不易访问,并且通常仅用于调试非常特定的时序问题。
自动驾驶仪调试端口
飞行控制器通常会提供一个单一的调试端口,该端口同时引出 SWD 接口 和 系统控制台。
Pixhawk 连接器标准 规范了每个 FMU 版本必须使用的端口。 然而,仍有许多板卡使用不同的引脚分配或连接器,因此我们建议您查看 您的自动驾驶仪文档 以确认端口位置和引脚分配。
以下是部分自动驾驶仪的调试端口位置和引脚分配链接:
飞控 | 调试接口 |
---|---|
Holybro Pixhawk 6X-RT(FMUv6X-RT) | Pixhawk 完整调试端口 |
Holybro Pixhawk 6X(FMUv6x) | Pixhawk 完整调试端口 |
Holybro Pixhawk 5X(FMUv5x) | Pixhawk 完整调试端口 |
Holybro Durandal 飞控板 | Pixhawk 迷你调试端口 |
Holybro Kakute F7 飞控板 | 焊接焊盘 |
Holybro Pixhawk 4 Mini 飞控板(FMUv5) | Pixhawk 迷你调试端口 |
Holybro Pixhawk 4 飞控板(FMUv5) | Pixhawk 迷你调试端口 |
Drotek Pixhawk 3 Pro 飞控板(FMU-v4pro) | Pixhawk 迷你调试端口 |
CUAV V5+ 飞控板 | 6 针 JST GH 连接器 得捷电子(Digikey)编号:[BM06B-GHS-TBT(LF)(SN)(N)][bm06b-ghs-tbt(lf)(sn)(n)](垂直安装), [SM06B-GHS-TBT(LF)(SN)(N)][sm06b-ghs-tbt(lf)(sn)(n)](侧面安装) |
CUAV V5nano 飞控板 | 6 针 JST GH 连接器 得捷电子(Digikey)编号:[BM06B-GHS-TBT(LF)(SN)(N)][bm06b-ghs-tbt(lf)(sn)(n)](垂直安装), [SM06B-GHS-TBT(LF)(SN)(N)][sm06b-ghs-tbt(lf)(sn)(n)](侧面安装) |
3DR Pixhawk 飞控板 | ARM 10 针 JTAG 连接器(也用于 FMUv2 板卡,包括:mRo Pixhawk、HobbyKing HKPilot32)。 |
Pixhawk 连接器标准调试端口
Pixhawk 项目针对不同的 Pixhawk FMU 版本定义了标准的引脚分配和连接器类型:
TIP
请查看您的 特定板卡 以确认所使用的端口。
FMU 版本 | Pixhawk 版本 | 调试接口 |
---|---|---|
FMUv2 | Pixhawk / Pixhawk 1 飞控板 | 10 针 ARM 调试接口 |
FMUv3 | Pixhawk 2 飞控板 | 6 针 SUR 调试接口 |
FMUv4 | Pixhawk 1/2 飞控板 | Pixhawk 迷你调试端口 |
FMUv5 | Pixhawk 4 FMUv5 飞控板 | Pixhawk 迷你调试端口 |
FMUv5X | Pixhawk 5X 飞控板 | Pixhawk 完整调试端口 |
FMUv6 | Pixhawk 6 飞控板 | Pixhawk 完整调试端口 |
FMUv6X | Pixhawk 6X 飞控板 | Pixhawk 完整调试端口 |
FMUv6X-RT | Pixhawk 6X-RT 飞控板 | Pixhawk 完整调试端口 |
INFO
仅在 FMUv5X 之后的版本中,FMU 和 Pixhawk 的版本才是一致的。
Pixhawk 迷你调试端口
Pixhawk 连接器标准 定义了 Pixhawk 迷你调试端口,这是一个 6 针 SH 调试端口,可用于访问 SWD 引脚和 系统控制台。
该端口用于 FMUv4 和 FMUv5 版本。
其引脚分配如下(调试所需的引脚加粗显示):
针脚 | 信号 |
---|---|
1 | 参考电压(VREF) |
2 | 控制台发送(Console TX) |
3 | 控制台接收(Console RX) |
4 | 串行线调试数据引脚(SWDIO) |
5 | 串行线调试时钟引脚(SWDCLK) |
6 | 接地(GND) |
调试端口定义还包括以下焊接焊盘(位于连接器旁边的板上):
焊盘 | 信号 | 电压 |
---|---|---|
1 | 复位引脚(nRST) | +3.3V |
2 | 通用输入输出引脚 1(GPIO1) | +3.3V |
3 | 通用输入输出引脚 2(GPIO2) | +3.3V |
该插座为 6 针 JST SH 连接器,得捷电子编号:BM06B-SRSS-TBT(LF)(SN)(垂直安装), SM06B-SRSS-TBT(LF)(SN)(侧面安装)。
您可以使用 这样的线缆 连接到调试端口。
Pixhawk 完整调试端口
Pixhawk 连接器标准 定义了 Pixhawk 完整调试端口,这是一个 10 针 SH 调试端口,可用于访问 SWD 引脚和 系统控制台。 这实际上是将 Pixhawk 迷你调试端口 旁边的焊接焊盘整合到了连接器中,并且还增加了一个 SWO 引脚。
该端口指定用于 FMUv5x、FMUv6、FMUv6x 版本。
其引脚分配如下(调试所需的引脚加粗显示):
针脚 | 信号 |
---|---|
1 | 参考电压(VREF) |
2 | 控制台发送(Console TX) |
3 | 控制台接收(Console RX) |
4 | 串行线调试数据引脚(SWDIO) |
5 | 串行线调试时钟引脚(SWDCLK) |
6 | 串行线跟踪异步数据输出(SWO) |
7 | 通用输入输出引脚 1(GPIO1) |
8 | 通用输入输出引脚 2(GPIO2) |
9 | 复位引脚(nRST) |
10 | 接地(GND) |
GPIO1/2 引脚是空闲引脚,可用于在软件中生成信号,以便使用逻辑分析仪进行时序分析。
该插座为 10 针 JST SH 连接器,得捷电子编号:BM10B-SRSS-TB(LF)(SN)(垂直安装) 或 SM10B-SRSS-TB(LF)(SN)(侧面安装)。
您可以使用 这样的线缆 连接到调试端口。
适用于 PX4 硬件的调试探针
飞行控制器通常会提供一个 单一的调试端口,该端口同时引出 SWD 接口 和 系统控制台。
有几种经过测试且支持连接到这些接口中的一个或两个的调试探针:
- SEGGER J-Link 调试探针:商业探针,无内置串行控制台,需要适配器。
- 黑魔法探针(Black Magic Probe):集成了 GDB 服务器和串行控制台,需要适配器。
- STLink 调试探针:性价比最高,集成了串行控制台,适配器必须焊接。
- MCU-Link 调试探针:性价比最高,集成了串行控制台,需要适配器。
连接到调试端口的适配器可能会随您的飞行控制器或调试探针一起提供。 下面给出了其他选择。
调试适配器
Holybro Pixhawk 调试适配器
在调试使用 Pixhawk 标准调试连接器之一的控制器时,强烈推荐 使用 Holybro Pixhawk 调试适配器。
它是最简便的连接方式:
- 适用于使用 Pixhawk 完整调试端口(10 针 SH 连接器)或 Pixhawk 迷你调试端口(6 针 SH 连接器)调试端口的飞行控制器。
- 适用于支持 10 针 ARM 兼容接口标准(如 Segger JLink EDU mini 调试探针 所使用的标准)或与 Segger JLink 或 STLink 兼容的 20 针接口标准的 SWD 调试探针。
CUAV C-ADB Pixhawk 调试适配器
CUAV C-ADB 二次开发 Pixhawk 飞行控制器调试适配器 随附一个 STLinkv3-MINIE 调试探针。
该适配器具有用于连接 Pixhawk 完整调试端口(10 针 SH 连接器)和 CUAV 标准 DSU 接口的端口(但不包括 Pixhawk 迷你调试端口(6 针 SH 连接器))。
适配器上的 M2 连接器为 14 针 CN4 STDC14 连接器(更多信息请参阅 STLinkv3-MINIE 用户手册)。 用于连接 M2 连接器和 STLinkv3-MINIE 调试探针的线缆随适配器一起提供。
调试探针适配器
一些 SWD 调试探针 会随附用于连接常见 Pixhawk 调试端口 的适配器/线缆。 已知随附连接器的探针如下:
- DroneCode 探针:随附一个用于连接 Pixhawk 迷你调试端口 的连接器
特定板卡的适配器
一些制造商提供线缆,以便轻松连接 SWD 接口和 系统控制台。
- CUAV V5nano 飞控板 和 CUAV V5+ 飞控板 包含此调试线缆:
定制线缆
您也可以制作定制线缆,用于连接不同的板卡或探针:
- 将调试探针上的
SWDIO
、SWCLK
和GND
引脚连接到调试端口上的相应引脚。 - 如果调试探针支持,连接 VREF 引脚。
- 如果存在其余引脚,连接这些引脚。
有关如何焊接定制线缆的指南,请参阅 STLinkv3-MINIE 调试探针。
TIP
在可能的情况下,我们强烈建议您制作或获取一个适配器板,而不是使用定制线缆来连接 SWD/JTAG 调试器和计算机。 这可以降低因布线不良导致调试问题的风险,并且适配器通常提供一个通用接口,可用于连接多种流行的飞行控制器