第一章 烧录工具入门:从零认识这个“烧”字

我第一次听到“烧录”这个词,是在大学实验室里。师兄神秘兮兮地说:“程序烧进去了。”我当时一愣——烧?芯片会着火吗?

后来才明白,这跟“烧”没关系。说白了,就是把写好的程序代码,通过某种方式存到芯片的存储器里。你写好的代码,在电脑上只是一堆文本。想让单片机、ARM芯片或者Flash芯片跑起来,就得把代码“灌”进去。这个“灌”的过程,就叫烧录。

烧录的本质:将编译好的二进制文件(.hex、.bin、.elf等),通过烧录工具传输到目标芯片的非易失性存储器(Flash、EEPROM等)中,让芯片上电后能执行这段程序。

烧录工具到底在干什么?

你想想看,电脑和芯片之间,语言不通。电脑跑的是Windows/Linux,芯片跑的是裸机程序或RTOS。烧录工具就是那个“翻译官”兼“搬运工”。

它的核心作用有三点:

  • 协议转换:把电脑的USB信号,转成芯片能识别的SWD、JTAG、UART等烧录协议。
  • 供电与信号调理:给目标芯片提供稳定的烧录电压(通常是3.3V或5V),同时保证时序信号干净。
  • 状态反馈:告诉你烧录成功还是失败。失败时还能给出错误码,方便排查。

我在项目中遇到过最坑的事,就是烧录工具供电不稳,导致芯片烧到一半就挂了。后来我习惯在烧录前先用万用表量一下工具输出的电压——这个习惯救了我好几次。

常见烧录工具,你至少得认识三个

市面上的烧录工具五花八门,但真正常用的,其实就那几类。我按使用场景给你捋一捋。

工具名称 适用芯片 烧录协议 典型速度 价格区间
ST-Link STM32全系列 SWD / JTAG 4 MHz ~ 24 MHz ¥20 ~ ¥80
J-Link ARM Cortex全系列 SWD / JTAG / SPI 最高 50 MHz ¥300 ~ ¥5000+
USB转TTL 支持串口ISP的芯片 UART (串口) 115200 bps ~ 921600 bps ¥5 ~ ¥30
DAP-Link ARM Cortex全系列 SWD / JTAG 最高 10 MHz ¥15 ~ ¥60

ST-Link:STM32玩家的标配

如果你玩STM32,ST-Link几乎是绕不开的。ST官方出的,兼容性最好。我最早用的就是ST-Link V2,淘宝上二十多块钱一个,插上就能用。

它支持SWD和JTAG两种模式。SWD只需要两根线(SWDIO + SWCLK),加上VCC和GND,四根线就能烧录。对于板子空间紧张的项目,这个优势很明显。

我的习惯:做STM32项目时,我会在PCB上预留一个4针的SWD接口。哪怕量产时用其他工具,调试阶段ST-Link的稳定性是最让人放心的。

J-Link:调试器里的“瑞士军刀”

J-Link是SEGGER公司的产品。贵,但确实好用。它支持的芯片范围极广——只要内核是ARM Cortex-M0/M3/M4/M7/A系列,基本都能烧。

J-Link有个让我很爽的功能:RTT(Real-Time Transfer)。调试时不用串口,直接用J-Link往电脑打印日志,速度比串口快几十倍。我排查时序问题时,全靠它。

不过要注意,淘宝上几十块的“J-Link OB”其实是山寨版。能用,但固件容易掉。我建议预算够的话,买个正版J-Link EDU,几百块,够用很多年。

避坑指南:我曾经买过一个山寨J-Link V9,烧录STM32F4系列时经常报错“Could not find supported CPU”。折腾了两天,最后换成正版J-Link,一次成功。烧录工具的钱,真不能省。

USB转TTL:最便宜的烧录方案

USB转TTL其实不是专门的烧录工具,它就是个串口转换器。但很多芯片(比如STC、ESP8266、某些国产MCU)支持通过串口ISP烧录,这时候USB转TTL就能派上用场。

常见的芯片是CH340G、CP2102、FT232。我手边常备一个CH340G的小板子,五块钱,烧录ESP8266和STC单片机全靠它。

但要注意:USB转TTL没有隔离,也没有专用的烧录协议握手。烧录时如果接线松动或者电平不匹配,很容易烧坏芯片。我建议烧录前先确认目标芯片的VCC电压是3.3V还是5V,别直接怼。

烧录工具和开发板怎么连?

连接方式其实很简单,但很多人第一次接的时候会懵。我画了一张图,帮你理清思路。

烧录工具与开发板连接示意图 烧录工具与开发板连接示意图 电脑 USB 接口 烧录工具 ST-Link / J-Link USB转TTL 开发板 目标芯片 USB线 SWD / JTAG / UART 常见接线方式 SWD模式(ST-Link / J-Link) 烧录工具端:SWDIO → 开发板端:SWDIO 烧录工具端:SWCLK → 开发板端:SWCLK 烧录工具端:GND → 开发板端:GND 烧录工具端:3.3V → 开发板端:VCC(可选,目标板自供电时可省略) UART模式(USB转TTL) 烧录工具端:TX → 开发板端:RX 烧录工具端:RX → 开发板端:TX 烧录工具端:GND → 开发板端:GND 烧录工具端:VCC → 开发板端:VCC(注意电压匹配!)

连接时有个关键点:共地。烧录工具和开发板的地线(GND)必须连在一起,否则信号电平没有参考点,烧录十有八九会失败。我见过新手只接信号线不接地,折腾半天找不到原因。

另外,对于USB转TTL,TX和RX要交叉连接。工具发(TX)接板子收(RX),工具收(RX)接板子发(TX)。这个交叉很多人第一次会搞反,烧录没反应。嗯,我也干过这事。

烧录前的最后检查

插线之前,我建议你过一遍这个清单:

  • 电压对不对?目标芯片是3.3V还是5V?烧录工具输出的是多少?
  • 接线有没有松动?杜邦线插紧了吗?
  • 开发板有没有独立供电?如果板子功耗大,光靠烧录工具供电可能带不动。
  • 驱动装了吗?ST-Link需要ST-Link驱动,CH340需要CH340驱动。Windows 10/11有时会自动装,但最好去官网下最新版。

血的教训:我曾经用USB转TTL烧录ESP8266,没注意板子上的VCC是3.3V,但USB转TTL输出的是5V。一插上去,芯片直接冒烟。从那以后,我每次烧录前都会用万用表量一下电压——多花10秒钟,省一块芯片。

好了,第一章的内容就这些。你只要记住:烧录就是把代码灌进芯片,烧录工具是电脑和芯片之间的桥梁,常见的工具有ST-Link、J-Link和USB转TTL,连接时注意共地和电压匹配。这些基础打牢了,后面学高级用法才不会翻车。