HOLTEK e-Link32 Pro MCU调试适配器

规格
- 模型: HT32 MCU SWD 接口
- 版本: AN0677EN V1.00
- 日期:21 年 2024 月 XNUMX 日
- 界面:SWD(串行线调试)
- 兼容性:e-Link32 Pro / Lite,目标 MCU
产品信息
HT32 MCU SWD 接口专为目标 MCU 的编程、离线编程和调试而设计。它利用 SWD 通信协议实现高效的数据传输和调试。
SWD 引脚说明
SWD 接口由两个主要引脚组成:
- SWDIO(串行线数据输入/输出):用于调试信息传输和代码/数据编程的双向数据线。
- SWCLK(串行线时钟):同步数据传输的时钟信号。
连接说明/PCB设计
SWD 接口需要一个10针连接器,其引脚描述如下:
| 销号 | 姓名 | 描述 |
|---|---|---|
| 1、3、5、8 | 电源、地 | 调试适配器和目标的电源连接 单片机。 |
| 2、4 | SWDIO、SWCLK | 用于通信的数据和时钟信号。 |
| 6、10 | 预订的 | 无需连接。 |
| 7、9 | VCOM_RXD、VCOM_TXD | 用于串行通信的虚拟 COM 端口。 |
如果设计定制板,建议包含一个 5 针 SWD 连接器,带有 VDD、GND、SWDIO、SWCLK 和 nRST 连接,以兼容 e-Link32 Pro/Lite。
调试适配器级别转换说明
将调试适配器连接到 MCU 硬件板时,请确保满足预设的条件,以避免任何硬件冲突。
产品使用说明
- 使用提供的连接器将 e-Link32 Pro/Lite 的 SWD 接口连接到目标 MCU。
- 确保调试适配器和目标 MCU 之间的电源连接正确。
- 使用适当的软件工具(如 e-Link32 Pro 用户指南或入门套件用户手册)进行编程和调试。
介绍
Holtek HT32 系列 MCU 基于 Arm® Cortex®-M 内核,内核集成了串行线调试 (SWD) 端口 SW-DP/SWJ-DP,使开发、编程和调试更加便捷。然而,在使用 SWD 进行硬件设计时,用户可能会遇到一些异常情况,从而影响项目开发。本应用说明为用户提供了全面的 SWD 接口问题故障排除指南,包括连接、通信和其他情况下可能出现的错误。本指南将帮助用户更轻松地使用 SWD 接口,节省开发时间,提高项目效率。
Holtek 推出了一款基于 Arm® CMSIS-DAP 参考设计开发的 USB 调试工具 e-Link32 Pro/Lite,通过将目标板连接到 PC 的 USB 端口,用户可以通过开发环境或编程工具通过 SWD 对目标 MCU 进行编程和调试。连接关系如下图所示。本文以 e-Link32 Pro/Lite 为例ample 介绍 SWD、常见错误消息和故障排除步骤。SWD 相关说明和调试信息也适用于常见的 USB 调试适配器,例如 ULINK2 或 J-Link。

缩写说明:
- 社会福利署: 串口线调试
- SW-DP: 串行线调试端口
- DP-SWJ: 串行线和 JTAG 调试端口
- CMSIS: 通用微控制器软件接口标准
- 磷酸氢钙:调试访问端口
- 集成开发环境:集成开发环境
社署简介
SWD 是 Arm® Cortex-M® 系列 MCU 广泛使用的硬件接口,用于编程和调试。下面将以 Holtek e-Link32 Pro 和 e-Link32 Lite 为例进行说明。e-Link32 Pro 和 e-Link32 Lite 的架构大致相同,主要区别在于 e-Link32 Pro 支持 ICP 离线编程。下面简单介绍一下:
- e-Link32 Pro:这是 Holtek 独立 USB 调试适配器,支持在线编程、离线编程和调试。有关详细信息,请参阅 e-Link32 Pro 用户指南。
- e-Link32 Lite:这是 Holtek Starter Kit 内部 USB 调试适配器,无需额外连接即可直接在目标 MCU 上进行编程或调试。有关详细信息,请参阅 Starter Kit 用户手册。

SWD 引脚说明
有两个 SWD 通信引脚:
- SWDIO(串行线数据输入/输出): 用于调试适配器和目标 MCU 之间的调试信息传输和代码/数据编程的双向数据线。
- SWCLK(串行线时钟): 来自调试适配器的时钟信号,用于同步数据传输。
传统的联合测试行动组 (JTAG)接口需要4个连接引脚,而SWD只需要2个引脚就能进行通讯,因此SWD所需的引脚更少,使用起来也更方便。
连接说明/PCB设计
下图显示了 e-Link32 Pro/Lite 界面。

若用户需要自行设计板卡,建议预留一个 SWD 接口,如下图所示,SWD 接口必须包含目标 MCU 的 VDD、GND、SWDIO、SWCLK、nRST,然后才能通过此接口连接到 e-Link32 Pro/Lite 进行编程或调试。

调试适配器级别转换说明
由于 MCU 可能具有不同的工作电压tag在实际应用中,I/O逻辑卷tag电平也可能不同。e-Link32 Pro/Lite 提供 Level Shift 电路,以适应不同的音量tag如果 SWD 引脚 1 VCC 用作参考电压tage在上述电路中,则SWD引脚输入/输出电压tage-Link32 Pro/Lite 上的 e 可以根据目标 MCU 自动调整运行量tage,从而兼容不同的 MCU 硬件板设计。大多数调试适配器(如 ULINK2 或 J-Link)都有类似的设计。
从上面的描述可以看出,当调试适配器在预设条件下连接到 MCU 硬件板时,需要注意的是,MCU 硬件板会给调试适配器上的 SWD VCC 引脚供电,如下图所示。这意味着 MCU 硬件板必须单独连接电源,调试适配器上的 SWD VCC 引脚默认无电源输出。

e-Link32 Pro/Lite Pin 1 VCC 也可以设置为输出 3.3V 来为目标 MCU 硬件板供电。但是,务必注意电流和电源限制。有关详细信息,请参阅 e-Link32 Pro 用户指南。
检查调试适配器USB是否正确连接
当 e-Link32 Pro/Lite 与 PC 连接时,可以通过以下两种方法检查连接是否正确。
- 检查 e-Link1 Pro/Lite 的 D32 USB LED 是否保持亮起。
- 按“Win+R”键调出“运行”,输入“control Printers”运行,出现“Printers & Scanners”窗口后,点击“Devices”,在下拉菜单中找到“Other Devices”,查看是否有名为“CMSIS-DAP”或“Holtek CMSIS-DAP”的设备,如下图所示。需要注意的是,不同的电脑系统显示可能略有不同,用户可以参考此步骤查找并查看是否有此设备出现。

如果 USB 调试适配器无法连接到 PC,请参阅“故障排除步骤 2”。
Keil 调试设置
本节将以 e-Link32 Pro/Lite 为例ample 来说明 Keil 开发环境下的调试设置,使用以下步骤来逐步检查设置是否正确,首先点击“Project Options for Target”。
- 点击“实用程序”选项卡
- 勾选“使用调试驱动程序”

- 点击“调试”选项卡
- 使用“CMSIS-DAP 调试器”
- 勾选“启动时加载应用程序”
- 点击右侧的“设置”,打开“目标选项”对话框

- 如果调试适配器已成功连接到 PC,则会显示“Serial No”。如果没有,请参阅“故障排除步骤 2”
- 勾选“SWJ”并选择“SW”作为端口
- 如果调试适配器已成功连接到 MCU,SWDIO 表将显示“IDCODE”和“设备名称”。否则,请参阅“故障排除步骤 3”并从那里开始依次检查每个项目。

- 点击“Flash 下载”选项卡
- 下载功能选择“Erase Full Chip”或“Erase Sectors”,勾选“Program”和“Verify”
- 检查编程算法中是否存在HT32 Flash Loader。以下显示HT32 Flash Loader。
- HT32系列闪存
- HT32 系列闪存选项
如果 HT32 Flash Loader 不存在,点击“Add”手动添加。如果找不到 HT32 Flash Loader,请安装 Holtek DFP。点击“Project – Manage – Pack Installer…”找到 Holtek DFP 并安装。参考 Arm Developer web或者下载HT32 Firmware Library,在根目录下找到“Holtek.HT32_DFP.latest.pack”并安装。

IAR 调试设置
本节将以 e-Link32 Pro/Lite 为例amp以下说明IAR开发环境下的调试设定,请依下列步骤逐步检查设定是否正确,首先点选“Project → Options”。
- 点击“General Options → Target”,选择目标MCU为Device,若找不到对应的MCU,可从Holtek官网下载“HT32_IAR_Package_Vx.xxexe” web站点安装 IAR 支持包。

- 在“调试器”中选择“设置”选项卡,并选择“CMSIS DAP”作为驱动程序

- 在“CMSIS DAP”中选择“Interface”选项卡,并选择“SWD”作为接口

检查SWD是否正确连接
当以 Keil 为前任时ample,点击“Project → Options for Target”选择“Debug”选项卡,点击右侧的“Settings”。

如果 SWDIO 表中显示如下图所示的 IDCODE 和 Device Name,则表示 SWD 连接正确,否则如果出现错误,请参考“复位下连接”部分的说明,或参考故障排除步骤进行检查。

重置后连接
Connect Under Reset 是 MCU 内核和 SW-DP 的一个功能,用于在程序执行前暂停系统。如果程序行为导致 SWD 无法访问,用户可以使用此方法解决问题。SWD 无法访问的常见原因如下。
- 当选择 SWDIO/SWCLK 引脚共享功能具有其他功能(例如 GPIO)时,该 I/O 将不会用于 SWD 通信。
- 当 MCU 进入 Deep-Sleep 模式或 Power-Down 模式时,MCU 核心将会停止运作,因此无法通过 SWD 与 MCU 核心进行通讯以进行编程或除错。
使用 Keil 时请参考下方 Connect Under Reset 的设定。「Project」→「Options for Target」→「Debug」→点击「Settings」→Connect 方式选择「under Reset」,如下图。Keil 详细设定步骤请参考「Troubleshooting Step 9」。

常见错误消息
下表显示了 Keil 和 IAR 之间常见错误消息的摘要。

当调试适配器无法连接到PC时,请参考“故障排除步骤2”。
Keil – 消息“SWD/JTAG “通信失败”

当 SWD 通信失败时,表示调试适配器无法连接到 MCU。请从“故障排除步骤 3”开始逐一检查。
Keil – 消息“错误:Flash 下载失败 – “Cortex-Mx””

- 首先检查编译后的“Code Size + RO-data + RW-data Size”是否超出目标 MCU 规格。
- 检查Keil Programming Algorithm中的Flash Loader设置是否正确,具体请参考“Keil Debug Settings”章节。
- 检查页面擦除/编程或安全保护是否已启用。有关详细信息,请参阅“故障排除步骤 10 和步骤 11”。
Keil — 消息“无法加载闪存编程算法!”

检查调试适配器上的 VCC 和 GND 引脚是否与目标 MCU 的 VCC 和 GND 引脚相连。请参阅“故障排除步骤 4”和“步骤 5”。
Keil – 消息“Flash 超时。重置目标并重试。”

检查编译后的“Code Size + RO-data + RW-data Size”是否超出目标 MCU 规格。
IAR – 消息“严重错误:未找到探头”

当调试适配器未连接到PC时,请参阅“故障排除步骤2”和“步骤13”。
IAR – 消息“严重错误:无法连接到 CPU”

当 SWD 通信失败时,表示调试适配器无法连接到 MCU。以下列出了可能的原因:
- “General Options”中的Device的目标MCU型号可能不正确,修改方法请参考“IAR Debug Settings”章节。
- 若 MCU 无法通过 SWD 响应主机,请从“故障排除步骤 3”开始逐一检查。
IAR — 消息“无法加载闪存加载程序:...”

检查调试适配器上的 VCC 和 GND 引脚是否与目标 MCU 的 VCC 和 GND 引脚相连。请参阅“故障排除步骤 4”和“步骤 5”。
故障排除
如果用户在使用SWD时遇到问题,请按照以下步骤按顺序进行检查。
- 系统是否连接了多个 USB 调试适配器?
如果系统中同时接入了多个 USB 调试适配器(如 e-Link32 Pro/Lite 或 ULINK2),则应移除这些适配器,只保留一组,避免多个调试适配器同时接入导致误判,用户也可在开发环境下选择特定连接的调试适配器。 - 检查调试适配器USB口是否连接成功?
如果 e-Link1 Pro/Lite 上的 D32 USB LED 不亮或在“打印机和扫描仪”中找不到相应的设备“CMSIS-DAP”,请尝试使用以下方法排除错误。- 重新插入 e-Link32 Pro/Lite USB 端口。
- 检查USB线是否完好并能与PC通信。
- 检查e-Link32 Pro/Lite USB接口是否松动。
- 检查PC USB端口是否能正常工作或更换连接的USB端口。
- 重新启动电脑并重新连接 USB 端口。
- 检查 SWDIO/SWCLK/nRST 引脚是否连接?
检查 MCU 的 SWDIO、SWCLK 和 nRST 引脚是否确实连接到调试适配器。检查电缆是否断裂或连接断开。如果使用 Holtek ESK32 Starter Kit,请确保板上的 Switch-S1 处于“On”状态。 - 检查SWDIO/SWCLK线是否太长?
将电线缩短至20cm以内。 - 检查SWDIO/SWCLK是否接有保护元件?
串行保护元件会造成SWD高速信号失真,因此必须降低SWD传输速率,调整传输速率如下:- 基尔: “Project →Options for Target”选择“Debug”选项卡,点击“Settings”调整Max Clock,如下图。

- 爱尔兰审计署: 在“Project →Options”中点击“CMSIS DAP”,点击“Interface”选项卡,调整接口速度,如下图。

- 基尔: “Project →Options for Target”选择“Debug”选项卡,点击“Settings”调整Max Clock,如下图。
- 检查电源是否正常?
检查以下电源状况:- 检查所有GND引脚是否连接在一起,确保参考电压相同tage
- 检查e-Link32 Lite Pro等调试适配器的电源是否正常(USB VBUS 5V)。
- 检查目标板是否正确连接电源
- 检查调试适配器上的 SWD Pin 1 VCC 是否由目标板供电。调试适配器上的 Pin 1 VCC 连接到目标 MCU 上的 VDD 引脚,并且应具有适当的电压tage.
- 检查Boot引脚设置是否正确?
如果烧写成功,但程序没有执行,请检查 BOOT 引脚是否被外部拉低,如果是,请移除该外部信号。上电或复位后,BOOT 引脚必须保持高电平,主 Flash 中的程序才能正常执行。BOOT 引脚位置或所需电平请参考 MCU Datasheet。 - 检查MCU是否将SWDIO/SWCLK引脚配置为GPIO或其他功能?
若 MCU 韧体将 SWDIO/SWCLK 脚位共用功能设定为其他用途 (例如 GPIO),当程序执行至「AFIO 切换 SWDIO/SWCLK」时,MCU 将不再响应任何 SWD 通讯,让目标板呈现无法烧录的状态,此种情形可于 Reset 下设定 Connect 来恢复,请参考步骤 1 中方法一或方法二。 - 检查MCU是否进入省电模式?
如果 MCU 已通过固件进入 Deep-Sleep 模式或 Power-Down 模式,则无法通过 SWD 访问 MCU Cortex-M 内核中的寄存器,导致无法进行编程或调试。可参考以下两种方法恢复,主要原理是防止 Main Flash 中的固件运行,从而保证 SWD 通信正常运行。- 方法 1 – 设置重置下的连接
以 Keil 为前任ampIDE 设置请参见“Project →Options for Target”,选择“Debug”选项卡,然后点击“Settings”。
如下图所示,在 Reset 下选择 Connect,此时 IDE 就可以正常使用 SWD 烧录了。建议先将 Main Flash 中的固件擦除(擦除操作参考“Step 11”),以防止 SWDIO/SWCLK AFIO Switch 或固件进入省电模式。
- 方法 2
拉低 PA9 BOOT 引脚,重置或重新上电并执行 MCU Flash 擦除。擦除完成后,释放 PA9 引脚。有关如何通过 IDE 执行擦除的说明,请参阅步骤 11。
- 方法 1 – 设置重置下的连接
- 检查MCU是否开启了内存页擦除/写保护?
如果 MCU 启用了内存页擦除保护,则受保护的内存页无法被擦除或修改。在 SWD 页面擦除期间,当由于受保护的页面无法擦除而发生错误时,需要进行批量擦除操作来解决此问题。此时,MCU 内存将被批量擦除完全擦除并从内存保护中移除。有关详细信息,请参阅“步骤 11”。 - 检查MCU是否开启了安全保护?
如果 MCU 启用了安全保护,当 SWD 页擦除期间发生错误时,必须执行 Mass Erase 操作以擦除 Option Byte 以解除内存保护。Mass Erase 完成后,MCU 必须重置或重新上电。
→Keil:“闪存→擦除”
爱尔兰:“项目→下载→擦除内存” - 检查编程完成后是否重置系统.
通过调试适配器更新程序后,必须触发 MCU 复位,系统才能启动程序。MCU 复位可以通过 nRST 引脚触发,也可以通过重新上电触发。 - 检查e-Link32 Pro/Lite固件是否是最新版本?
如果用户在完成上述故障排除步骤后仍然无法使用 SWD 进行编程或调试,建议将 e-Link32 Pro/Lite 固件更新到最新版本。从 Holtek 官方下载新的 e-Link32 Pro ICP 工具 web网站并点击“连接”。如果 e-Link32 Pro Lite 版本较旧,将自动弹出更新消息,然后点击“确定”以更新固件。
参考资料
更多信息请咨询盛群官方 web地点: https://www.holtek.com.
修订和修改信息

免责声明
出现在此的所有信息、商标、徽标、图形、视频、音频剪辑、链接和其他项目 web本网站上的信息(“信息”)仅供参考,并可能随时更改,恕不另行通知,并由 Holtek Semiconductor Inc. 及其关联公司(以下简称“Holtek”、“公司”、“我们”或“我们的”)自行决定。尽管 Holtek 尽力确保本网站上信息的准确性,但 Holtek 仍保留随时更改的权利。 web网站,Holtek 不对信息的准确性作出任何明示或暗示的保证。 Holtek 对任何错误或泄漏不承担任何责任。
Holtek 对使用本产品或与使用本产品有关的任何损害(包括但不限于计算机病毒、系统问题或数据丢失)概不负责 web任何一方的网站。 该区域可能有链接,可让您访问 web其他公司的网站。 这些 web网站不受盛群控制。 Holtek 不对此类网站上显示的任何信息承担任何责任和保证。 到其他的超链接 web网站风险自负。
- 责任限制
在任何情况下,Holtek Limited 均不对任何其他方因您访问或使用本网站而直接或间接导致的任何损失或损害承担任何责任 web网站、网站上的内容或任何商品、材料或服务。 - 适用法律
免责声明包含在 web本网站受中华民国法律管辖并依其解释。 用户将服从中华民国法院的非专属管辖权。 - 免责声明更新
Holtek 保留随时更新免责声明的权利,无论是否事先通知,所有更改在发布到 web地点。
常问问题
问:什么是 SWD?它与 J 有何不同?TAG?
A: SWD(串行线调试)是一个双引脚调试接口,与 JTAG,需要四个引脚进行通信。
问:如何将 SWD 接口连接到定制板?
A: 设计一个带有 5 针 SWD 连接器的电路板,其中包含 VDD、GND、SWDIO、SWCLK 和 nRST 引脚,以兼容 e-Link32 Pro/Lite。
文件/资源
![]() |
HOLTEK e-Link32 Pro MCU调试适配器 [pdf] 用户指南 e-Link32 Pro、e-Link32 Lite、e-Link32 Pro MCU 调试适配器、e-Link32 Pro、MCU 调试适配器、调试适配器、适配器 |





