# SWD (JTAG) 硬件调试接口

PX4 通常在自动驾驶控制器硬件上运行,该硬件提供 ARM 串行线调试 (SWD) 接口。SWD 是用于 ARM 处理器 JTAG 调试的低引脚数物理接口。它可与兼容 SWD 的调试探针(如 Segger J-Link EDU Mini, Dronecode 探针等)在 PX4 中设置断点,并在真实设备上逐步运行代码。

SWD 接口还可用于在完全空白的电路板(未安装 USB 引导加载程序的电路板)上添加新的引导加载程序和/或固件。

本主题将介绍如何在不同的电路板上连接 SWD 接口(实际调试将在相关的 调试主题).

# SWD 接口定义

SWD 接口由以下引脚组成。

针脚 信号类型 说明
Vref 输出 目标参考电压。
某些 JTAG 适配器需要 Vref 电压来设置 SWD 线路的电压。例如 世纪佳缘 J-Link 调试探头 要求 Vref.
SWDIO 输入/输出 单个双向数据引脚。
SWCLK 输出 时钟信号
接地 - 接地引脚。

自动驾驶仪虽然不是 SWD 的一部分,但也可能具有以下功能 串行导线输出 (SWO) 跟踪输出引脚。如果存在,也应将其连接起来。

针脚 信号类型 说明
SWO 输出 串行导线输出跟踪输出引脚。可与 SWD 实时跟踪数据。

# 将 SWD 调试器连接到 PX4 硬件

连接 SWDIO, SWCLK接地 将调试探针上的引脚连接到自动驾驶仪上的相应引脚。

此外

  • 连接 VRef 引脚。
  • 连接 SWO 引脚(如果有)。

部分社署 调试探针 附带适配器/电缆,用于连接普通 Pixhawk 调试端口.您还可以创建用于连接不同电路板或探针的自定义电缆。

备注

一些制造商提供电缆,方便连接 SWD 接口和 系统控制台.例如 CUAV V5nanoCUAV V5+ 包括这条调试电缆:

6 针 JST SH 电缆

TIP

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

# 自动驾驶仪调试端口

飞行控制器通常提供一个调试端口,该端口可同时显示 SWD 接口系统控制台.

Pixhawk 连接器标准 试图将此端口标准化。不过,由于许多电路板使用不同的引脚或连接器,我们建议您查看自动驾驶仪的文档,以确认端口位置和引脚。

下面链接了一小部分自动驾驶仪的调试端口位置和引脚布局:

自动驾驶仪 连接器
3DR Pixhawk ARM 10 针 JTAG 连接器(也用于 FMUv2 电路板,包括 ARM 10 针 JTAG 连接器): mRo Pixhawk, HobbyKing HKPilot32).
CUAV V5nano 6 针 JST GH
Digikey: BM06B-GHS-TBT(LF)(SN)(N) (打开新窗口) (垂直安装)、 SM06B-GHS-TBT(LF)(SN)(N) (打开新窗口) (侧面安装)
CUAV V5+ 6 针 JST GH
Digikey: BM06B-GHS-TBT(LF)(SN)(N) (打开新窗口) (垂直安装)、 SM06B-GHS-TBT(LF)(SN)(N) (打开新窗口) (侧面安装)
Drotek Pixhawk 3 Pro Pixhawk 6 针 SH 调试器
Holybro Pixhawk 4 Pixhawk 6 针 SH 调试器
Holybro Pixhawk 4 Mini Pixhawk 6 针 SH 调试器
Holybro Kakute F7 焊盘
圣布鲁杜兰达尔 Pixhawk 6 针 SH 调试器

TIP

检查 自动驾驶主题 如果您的飞行控制器不在列表中。

# Pixhawk 标准调试端口

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

TIP

检查您的 特定板 以确认所使用的端口。

FMU 版本 Pixhawk Ver. 调试界面
FMUv2 Pixhawk / Pixhawk 1 10 引脚 ARM 调试
FMUv3 Pixhawk 2 6 针 SUR 调试
FMUv4 Pixhawk 3 6 引脚 SH 调试
FMUv5 Pixhawk 4 FMUv5 6 引脚 SH 调试
FMUv5X Pixhawk 5X 10 引脚 SH 调试
FMUv6 Pixhawk 6 10 引脚 SH 调试
FMUv6X Pixhawk 6 10 引脚 SH 调试

备注

FMU 和 Pixhawk 版本(仅)在 FMUv5X 之后保持一致。

# Pixhawk 迷你调试器(6 针 SH 调试端口)

Pixhawk 连接器标准 (打开新窗口) 定义了一个 6 针 SH 调试端口 可访问两个 SWD 引脚和 系统控制台.

备注

该调试端口用于 FMUv4 和 FMUv5。

引脚布局如下所示(SWD 引脚突出显示):

调试端口 针脚
1 Vtref
2 控制台 TX
3 控制台 RX
4 SWDIO
5 SWDCLK
6 接地

调试端口定义包括以下焊盘(在电路板上连接器旁边):

调试端口 针脚 电压
垫子 信号 伏特
1 NRST(复位) +3.3V
2 GPIO1(自由 GPIO) +3.3V
3 GPIO2(自由 GPIO) +3.3V

插座是一个 6 针 JST SH - Digikey 编号: BM06B-SRSS-TBT(LF)(SN) (打开新窗口) (垂直安装)、 SM06B-SRSS-TBT(LF)(SN) (打开新窗口)(侧面安装)。

您可以使用 像这样的电缆 (打开新窗口).

6 针 JST SH 电缆

# Pixhawk 调试全功能(10 针 SH 调试端口)

Pixhawk 连接器标准 (打开新窗口) 定义了一个 10 针 SH 调试端口 可访问两个 SWD 引脚和 系统控制台.这主要是将焊盘从 Pixhawk 6 针 SH 调试端口 并增加了一个 SWO 引脚。

备注

此端口指定用于 FMUv5x、FMUv6 和 FMUv6x。

引脚布局如下所示(SWD 引脚突出显示):

调试端口 针脚
1 Vtref
2 控制台 TX
3 控制台 RX
4 SWDIO
5 SWDCLK
6 SWO
7 NFC GPIO
8 PH11
9 nRST
10 接地

插座是一个 10 针 JST SH - Digikey 编号: BM10B-SRSS-TB(LF)(SN) (打开新窗口) (垂直安装)或 SM10B-SRSS-TB(LF)(SN) (打开新窗口) (侧面安装)。

您可以使用 像这样的电缆 (打开新窗口).

10 针 JST SH 电缆

# 调试探头

下文概述了一些常用的调试探头以及将其连接到运行 PX4 的自动驾驶仪的适配器。

Segger JLink EDU Mini (打开新窗口) 是一款价格低廉、广受欢迎的 SWD 调试探针。该探针的连接器引脚布局如下图所示(使用 ARM 10 针迷你连接器连接,如下图所示 FTSH-105-01-F-DV-K (打开新窗口)).

连接器_jlink_mini.png

连接 J-Link Edu Mini 的引脚映射图 Pixhawk 6 针 SH 调试端口 如下所示(注意 - 表示 SWD 不需要的引脚)。

调试端口 迷你 J-Link
1 (Vtref) 1
2(控制台 TX) -
3(控制台 RX) -
4 (SWDIO) 2
5 (SWDCLK) 4
6(接地) 3 或 5

TIP

从上表可以推断出不使用标准端口的自动驾驶仪的连接方式。

# Dronecode 探针

Dronecode 探针 (打开新窗口) 是一种通用的 JTAG/SWD + UART 控制台适配器,与大多数基于 ARM Cortex 的设计兼容,特别是与 Pixhawk 系列飞行控制器(以及 PX4 支持的其他硬件)兼容。

探针的 USB 接口暴露了两个独立的虚拟串行端口接口:一个用于连接到 系统控制台 (UART),另一个用于嵌入式 GDB 服务器(SWD 接口)。

探头提供一条 DCD-M 连接器电缆,用于连接到 Pixhawk 6 针 SH 调试端口.

备注

6 位 DF13 探针附带的连接器不能用于 SWD 调试(用于使用系统控制台)。

备注

Dronecode 探针 是基于 黑魔法探针.

# 黑魔法探针

黑魔法探针 (打开新窗口) 很像 Dronecode 探头 但不附带用于直接连接 Pixhawk 系列飞行控制器的适配器。

适配器可单独购买:

# 下一步工作

现在您已将飞行控制器连接到 SWD 调试探针!

以下主题将介绍如何启动目标调试: