3. 硬件连接:目标板供电、SWD/JTAG接口定义、接线实操
好,到了动手环节了。前面我们聊了工具选型和驱动安装,那些都是热身。这一章才是真正把烧录器和目标板「连起来」的关键一步。硬件连接这事儿,说简单也简单,就四根线;说复杂也复杂,我见过太多工程师在这上面栽跟头。
为什么会这样?因为很多人觉得「不就是接几根线嘛」,结果一上电,芯片锁死了,或者烧录器冒烟了。嗯,这里要注意,硬件连接不是插上去就完事,你得理解每根线的作用。
3.1 目标板供电:谁给谁供电?
这是个经典问题。烧录器要不要给目标板供电?还是目标板自己供电?
我个人习惯是:目标板独立供电。除非你用的是那种带隔离的官方烧录器,否则别指望烧录器的USB口能稳定输出500mA给目标板。我在项目中遇到过,一个同事用烧录器的3.3V给整个板子供着,结果板子上有个电机驱动一启动,电压瞬间掉到2.8V,烧录直接中断,芯片还进了奇怪的状态。
供电方式就两种,我列个表对比一下:
| 供电方式 | 操作 | 适用场景 | 风险 |
|---|---|---|---|
| 目标板自供电 | 目标板接自己的电源(电池/适配器) | 功耗大、有电机/传感器 | 低,但需共地 |
| 烧录器供电 | 烧录器的VCC引脚输出给目标板 | 低功耗、调试阶段 | 电流不足、电压跌落 |
3.2 SWD/JTAG接口定义:四根线搞定一切
现在主流调试接口就两种:JTAG和SWD。JTAG需要5根线(TMS、TCK、TDI、TDO、nSRST),而SWD只需要2根数据线加电源地,一共4根。说白了,SWD就是JTAG的简化版,占用的IO口少,对于引脚紧张的MCU来说简直是救星。
我常用的SWD接口定义是这样的:
- VCC(或VTref):参考电压,告诉烧录器目标板的工作电压是3.3V还是1.8V。注意,这不是供电线,是电压检测线。
- GND:地线,必须接,不接烧录器没法形成回路。
- SWDIO:数据线,双向传输,负责命令和数据的收发。
- SWCLK:时钟线,由烧录器驱动,控制通信节奏。
有些烧录器还会多一个 nRESET 引脚,用来复位目标芯片。如果你遇到烧录失败的情况,试试把复位引脚也接上,我曾经被这个问题卡了整整一个下午。
3.3 接线实操:手把手教你接
好,理论说完了,咱们直接上手。假设你手头有一个J-Link和一个STM32F103的最小系统板。
第一步:确认引脚位置
拿出目标板的原理图或数据手册,找到SWD接口。一般会标成 SWDIO、SWCLK、VCC、GND。如果没有,找JTAG接口,把TMS接SWDIO,TCK接SWCLK。
第二步:杜邦线连接
我建议用不同颜色的线来区分功能,方便排查:
- 红色:VCC
- 黑色:GND
- 黄色:SWDIO
- 绿色:SWCLK
第三步:检查电压
用万用表量一下VCC和GND之间的电压,确认是3.3V还是5V。如果电压不对,别急着接烧录器,先查电源。
第四步:连接烧录器
把杜邦线的另一端插到烧录器的对应引脚上。注意,不同烧录器的引脚顺序可能不一样,一定要看烧录器上的丝印。
接线完成后,用万用表通断档再测一遍:
- 烧录器的GND ↔ 目标板的GND:通
- 烧录器的SWDIO ↔ 目标板的SWDIO:通
- 烧录器的SWCLK ↔ 目标板的SWCLK:通
3.4 核心逻辑:一张图看懂硬件连接
下面这张图展示了烧录器、目标板和PC之间的连接关系。你想想看,数据从PC的USB口出来,经过烧录器转换成SWD协议,再通过四根线送到目标芯片的调试接口。整个过程就这么简单。
3.5 常见问题与排查
硬件连接完了,烧录软件打开,点击「Connect」—— 没反应。别慌,我列几个最常见的坑:
- GND没接好:这是最蠢也最容易犯的错误。GND不接,信号没法回流,烧录器根本检测不到目标芯片。
- VCC电压不匹配:目标板是1.8V,烧录器输出3.3V,直接把IO口烧了。反过来,烧录器检测不到1.8V的参考电压,也会报错。
- SWDIO和SWCLK接反了:这两根线长得差不多,但功能完全不同。接反了,烧录器会报「No target detected」。
- 目标芯片被锁死:如果芯片的SWD引脚被配置成普通IO,或者芯片进入了低功耗模式,烧录器就访问不了。解决办法:拉低复位引脚,或者用「连接前复位」功能。