# SWD 调试端口
PX4 在 ARM Cortex-M 微控制器上运行,这些微控制器包含专用硬件,可通过 串行线调试 (SWD) (打开新窗口) 接口和非侵入式剖析,并通过 串行导线输出 (SWO) (打开新窗口) 和 跟踪 引脚 (打开新窗口).
SWD 调试接口允许对微控制器的处理器和外设进行直接、低级的硬件访问,因此不依赖于设备上的任何软件。因此,它可用于调试引导加载程序和 NuttX 等操作系统。
# 调试信号
调试时需要四个信号(粗体字),其余为推荐信号。
名称 | 类型 | 说明 |
---|---|---|
接地 | 电源 | 共同的潜力,共同的基础。 |
VREF | 电源 | 目标参考电压允许调试探头在信号上使用电平转换器。 |
SWDIO | 输入/输出 | 串行线调试数据引脚。 |
SWCLK | 输入 | 串行线调试时钟引脚。 |
nRST | 输入 | 复位引脚为可选项(n = 低电平有效)。 |
SWO | 输出 | 单线跟踪异步数据输出可输出 ITM 和 DWT 数据。 |
TRACECK | 输出 | 并行总线的跟踪时钟。 |
TRACED[0-3] | 输出 | 跟踪 1、2 或 4 位同步数据总线。 |
硬件复位引脚是可选的,因为大多数器件也可以通过 SWD 线路复位。不过,通过按钮快速复位器件对开发工作非常有利。
SWO 引脚可发出纳秒级时间戳的低开销实时剖析数据,因此强烈建议调试时使用该引脚。
TRACE 引脚需要专门的调试探针来处理高带宽和随后的数据流解码。这些引脚通常无法访问,通常只能用于调试非常特殊的时序问题。
# 自动驾驶仪调试端口
飞行控制器通常提供单个调试端口,可同时显示 SWD 接口 和 系统控制台.
Pixhawk 连接器标准 正式规定了每个 FMU 版本必须使用的端口。不过,仍有许多电路板使用不同的引脚或连接器,因此我们建议您查看 自动驾驶仪文档 以确认端口位置和引脚分配。
部分自动驾驶仪的调试端口位置和引脚布局链接如下:
自动驾驶仪 | 调试端口 |
---|---|
[Holybro Pixhawk 5X][holybro pixhawk 5x] (FMUv5x) | Pixhawk 调试完毕 |
圣布鲁杜兰达尔 | 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) (打开新窗口) (垂直安装)、 SM06B-GHS-TBT(LF)(SN)(N) (打开新窗口) (侧面安装) |
CUAV V5nano | 6 针 JST GH Digikey: BM06B-GHS-TBT(LF)(SN)(N) (打开新窗口) (垂直安装)、 SM06B-GHS-TBT(LF)(SN)(N) (打开新窗口) (侧面安装) |
3DR Pixhawk | ARM 10 针 JTAG 连接器(也用于 FMUv2 电路板,包括 ARM 10 针 JTAG 连接器): mRo Pixhawk, HobbyKing HKPilot32). |
# Pixhawk 连接器标准调试端口
Pixhawk 项目为不同版本的 Pixhawk FMU 定义了标准引脚和连接器类型:
TIP
检查您的 特定板 以确认所使用的端口。
FMU 版本 | Pixhawk 版本 | 调试端口 |
---|---|---|
FMUv2 | Pixhawk / Pixhawk 1 | 10 引脚 ARM 调试 |
FMUv3 | Pixhawk 2 | 6 针 SUR 调试 |
FMUv4 | Pixhawk 3 | Pixhawk 迷你调试器 |
FMUv5 | Pixhawk 4 FMUv5 | Pixhawk 迷你调试器 |
FMUv5X | Pixhawk 5X | Pixhawk 调试完毕 |
FMUv6 | Pixhawk 6 | Pixhawk 调试完毕 |
FMUv6X | Pixhawk 6X | Pixhawk 调试完毕 |
备注
FMU 和 Pixhawk 版本(仅)在 FMUv5X 之后保持一致。
# Pixhawk 迷你调试器
Pixhawk 连接器标准 (打开新窗口) 定义了 Pixhawk 迷你调试器, a 6 针 SH 调试端口 可访问两个 SWD 引脚和 系统控制台.
这在 FMUv4 和 FMUv5 中使用。
引脚布局如下图所示(调试所需的引脚用粗体标出):
针脚 | 信号 |
---|---|
1 | VREF |
2 | 控制台 TX |
3 | 控制台 RX |
4 | SWDIO |
5 | SWDCLK |
6 | 接地 |
调试端口定义包括以下焊盘(在电路板上连接器旁边):
垫子 | 信号 | 电压 |
---|---|---|
1 | nRST | +3.3V |
2 | GPIO1 | +3.3V |
3 | GPIO2 | +3.3V |
插座是一个 6 针 JST SH - Digikey 编号: BM06B-SRSS-TBT(LF)(SN) (打开新窗口) (垂直安装)、 SM06B-SRSS-TBT(LF)(SN) (打开新窗口)(侧面安装)。
您可以使用 像这样的电缆 (打开新窗口).
# Pixhawk 调试完毕
Pixhawk 连接器标准 (打开新窗口) 定义 Pixhawk 调试完毕, a 10 针 SH 调试端口 可访问两个 SWD 引脚和 系统控制台.这主要是将焊盘从 Pixhawk 迷你调试器 并增加了一个 SWO 引脚。
此端口指定用于 FMUv5x、FMUv6 和 FMUv6x。
引脚布局如下图所示(调试所需的引脚用粗体标出):
针脚 | 信号 |
---|---|
1 | VREF |
2 | 控制台 TX |
3 | 控制台 RX |
4 | SWDIO |
5 | SWDCLK |
6 | SWO |
7 | GPIO1 |
8 | GPIO2 |
9 | nRST |
10 | 接地 |
GPIO1/2 引脚是自由引脚,可用于在软件中生成信号,以便使用逻辑分析仪进行时序分析。
插座是一个 10 针 JST SH - Digikey 编号: BM10B-SRSS-TB(LF)(SN) (打开新窗口) (垂直安装)或 SM10B-SRSS-TB(LF)(SN) (打开新窗口) (侧面安装)。
您可以使用 像这样的电缆 (打开新窗口).
# 用于 PX4 硬件的调试探头
飞行控制器通常提供 单调试端口 该 SWD 接口 和 系统控制台.
有几种调试探针经过测试并支持连接到其中一个或两个接口:
- 世纪佳缘 J-Link:商用探头,无内置串行控制台,需要适配器。
- 黑魔法探针GDB:集成 GDB 服务器和串行控制台,需要适配器。
- STLink:性价比最高,集成串行控制台,适配器必须焊接。
连接调试端口的适配器可能随飞行控制器或调试探头一起提供。其他选项如下。
# 调试适配器
# Holybro Pixhawk 调试适配器
Holybro Pixhawk 调试适配器 (打开新窗口) 是 强烈推荐 调试使用 Pixhawk 标准调试连接器之一的控制器时。
这是最简单的连接方式:
- 飞行控制器使用 Pixhawk 调试完毕 (10针SH)或 Pixhawk 迷你调试器 (6 针 SH)调试端口。
- SWD 调试探头支持 10 针 ARM 兼容接口标准,该标准由 Segger JLink EDU mini 或与 Segger JLink 或 STLink 兼容的 20 引脚。
# CUAV C-ADB Pixhawk 调试适配器
CUAV C-ADB 二次开发 Pixhawk 飞行控制器调试适配器 (打开新窗口) 自带 STLinkv3-MINIE 调试探头.
它有一个用于连接到 Pixhawk 调试完毕 (10 引脚 SH)和 CUAV 标准 DSU 接口(但不包括 Pixhawk 迷你调试器 (6 针 SH))。
适配器上的 M2 连接器是 14 针 CN4 STDC14(请参阅图 1)。 STLinkv3-MINIE 用户手册 (打开新窗口) 更多信息)。连接 M2 和 STLinkv3-MINIE 的电缆随适配器一起提供。
# 调试探头适配器
部分社署 调试探针 附带适配器/电缆,用于连接普通 Pixhawk 调试端口.已知带连接器的探头如下:
- 无人机代码探测器附带一个连接器,用于连接到 Pixhawk 迷你调试器
# 板专用适配器
一些制造商提供电缆,方便连接 SWD 接口和 系统控制台.
- CUAV V5nano 和 CUAV V5+ 包括这条调试电缆:
# 定制电缆
您还可以创建自定义电缆,用于连接不同的电路板或探针:
- 连接
SWDIO
,SWCLK
和接地
将调试探针上的引脚连接到调试端口上的相应引脚。 - 如果调试探针支持,则连接 VREF 引脚。
- 连接其余引脚(如果有)。
参见 STLinkv3-MINIE 获取如何焊接定制电缆的指南。
TIP
在可能的情况下,我们强烈建议您制作或购买一块适配器板,而不是定制电缆来连接 SWD/JTAG 调试器和计算机。这样可以降低接线不良导致调试问题的风险,而且适配器通常会提供一个通用接口,用于连接多个常用的飞行控制器板。