Skip to content

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 PixhawkHobbyKing HKPilot32)。

Pixhawk 连接器标准调试端口

Pixhawk 项目针对不同的 Pixhawk FMU 版本定义了标准的引脚分配和连接器类型:

TIP

请查看您的 特定板卡 以确认所使用的端口。

FMU 版本Pixhawk 版本调试接口
FMUv2Pixhawk / Pixhawk 1 飞控板10 针 ARM 调试接口
FMUv3Pixhawk 2 飞控板6 针 SUR 调试接口
FMUv4Pixhawk 1/2 飞控板Pixhawk 迷你调试端口
FMUv5Pixhawk 4 FMUv5 飞控板Pixhawk 迷你调试端口
FMUv5XPixhawk 5X 飞控板Pixhawk 完整调试端口
FMUv6Pixhawk 6 飞控板Pixhawk 完整调试端口
FMUv6XPixhawk 6X 飞控板Pixhawk 完整调试端口
FMUv6X-RTPixhawk 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)(侧面安装)。

您可以使用 这样的线缆 连接到调试端口。

6 针 JST SH 线缆

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)(侧面安装)。

您可以使用 这样的线缆 连接到调试端口。

10 针 JST SH 线缆

适用于 PX4 硬件的调试探针

飞行控制器通常会提供一个 单一的调试端口,该端口同时引出 SWD 接口系统控制台

有几种经过测试且支持连接到这些接口中的一个或两个的调试探针:

连接到调试端口的适配器可能会随您的飞行控制器或调试探针一起提供。 下面给出了其他选择。

调试适配器

Holybro Pixhawk 调试适配器

在调试使用 Pixhawk 标准调试连接器之一的控制器时,强烈推荐 使用 Holybro Pixhawk 调试适配器

它是最简便的连接方式:

Holybro Pixhawk 调试适配器

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 调试探针的线缆随适配器一起提供。

连接到 STLinkv3-MINIE 的 CUAV C-ADB 适配器

调试探针适配器

一些 SWD 调试探针 会随附用于连接常见 Pixhawk 调试端口 的适配器/线缆。 已知随附连接器的探针如下:

特定板卡的适配器

一些制造商提供线缆,以便轻松连接 SWD 接口和 系统控制台

6 针 JST SH 线缆

定制线缆

您也可以制作定制线缆,用于连接不同的板卡或探针:

  • 将调试探针上的 SWDIOSWCLKGND 引脚连接到调试端口上的相应引脚。
  • 如果调试探针支持,连接 VREF 引脚。
  • 如果存在其余引脚,连接这些引脚。

有关如何焊接定制线缆的指南,请参阅 STLinkv3-MINIE 调试探针

TIP

在可能的情况下,我们强烈建议您制作或获取一个适配器板,而不是使用定制线缆来连接 SWD/JTAG 调试器和计算机。 这可以降低因布线不良导致调试问题的风险,并且适配器通常提供一个通用接口,可用于连接多种流行的飞行控制器