1. 烧录驱动概述
大家好,我是老周。做嵌入式开发这么多年,我见过太多新手在烧录这一步卡住——驱动装不上、设备不识别、烧录到一半报错。其实这些问题,八成都是对烧录驱动的基本概念没搞清楚。今天咱们就把这个基础打牢。
什么是烧录驱动?
烧录驱动,说白了就是PC和开发板之间的“翻译官”。你的电脑不认识MCU,MCU也不懂USB协议。驱动就是那个中间人,把PC的烧录指令转成MCU能理解的信号。
我习惯这么理解:你写好的程序是中文,MCU只懂机器码。烧录驱动就是那个同声传译,一边听PC说“我要把这段二进制写进Flash”,一边告诉调试器“第0x0800地址,写入0x12345678”。
烧录驱动的作用
驱动到底干了哪些活?我列了三个关键点:
- 设备枚举与识别: 插上调试器,PC能认出“这是ST-Link”而不是“未知设备”。这一步失败,后面全白搭。
- 协议转换: 把烧录软件(比如Keil、STM32CubeProgrammer)的API调用,转成调试器硬件能执行的JTAG/SWD时序。
- 数据传输管理: 处理USB的批量传输、控制传输,保证固件数据不丢包、不错位。
我记得有一次,一个同事折腾了一下午,ST-Link就是连不上。最后发现是驱动版本太老,不支持新出的STM32G0系列。换了个新版驱动,一分钟搞定。你看,驱动的作用就是这么直接。
常见烧录驱动类型
市面上的调试器五花八门,但驱动类型其实就那么几类。我按接口和协议给大家捋一捋。
| 驱动类型 | 典型硬件 | 接口协议 | 适用场景 |
|---|---|---|---|
| USB转串口 | CH340、CP2102、FT232 | UART | 串口下载、ISP烧录、Bootloader交互 |
| JTAG | J-Link、ST-Link、USB-JTAG | JTAG (IEEE 1149.1) | 全功能调试、边界扫描、多核芯片 |
| SWD | ST-Link、J-Link、DAPLink | SWD (Serial Wire Debug) | ARM Cortex-M系列调试,只需2根线 |
| ST-Link | ST-Link/V2、ST-Link/V3 | SWD + 虚拟串口 | STM32全系列开发调试 |
| J-Link | J-Link BASE、EDU、PRO | JTAG/SWD + RTT + 虚拟串口 | ARM全系列、RISC-V部分芯片 |
| CMSIS-DAP | DAPLink、NXP LPC-Link2 | SWD + HID协议 | ARM Cortex全系列,免驱或WinUSB |
USB转串口驱动
这是最基础的一类。很多国产MCU(比如STM32、GD32、AT32)出厂自带串口Bootloader,你只需要一个USB转串口模块,配合厂商的上位机软件就能烧录。CH340和CP2102是市面上最常见的,驱动安装也最简单——基本上就是下一步下一步。
但要注意:串口烧录速度慢,一般只有115200bps,大固件要等很久。我建议只用于小批量生产或原型验证。
JTAG与SWD驱动
JTAG是老祖宗,5根线(TMS、TCK、TDI、TDO、nTRST),功能全但占引脚多。SWD是ARM搞的简化版,只用SWDIO和SWCLK两根线,速度还更快。现在调试ARM芯片,我基本只用SWD。
你想想看,一个四层板,走线紧张得要命,SWD省下的3根线能让你少打一个过孔。这就是为什么ST-Link和J-Link默认都用SWD模式。
ST-Link驱动
ST官方出的调试器,专为STM32优化。驱动分两种:一种是ST-Link自身的驱动(用于Keil/IAR),另一种是虚拟串口驱动(用于串口打印)。
我踩过最大的坑:ST-Link的虚拟串口驱动和普通CH340驱动冲突。有一次调试,串口助手死活打不开,查了半天发现是ST-Link的虚拟串口占用了COM口,CH340被挤掉了。解决办法:拔掉ST-Link,先装CH340,再插ST-Link。
J-Link驱动
Segger家的产品,业界标杆。J-Link的驱动叫J-Link Software Pack,里面包含了调试驱动、GDB Server、RTT Viewer等一堆工具。它的驱动兼容性极好,Windows、Linux、macOS通吃。
我个人习惯:J-Link的驱动安装后,一定要重启电脑。别问我为什么,问就是Windows的USB驱动缓存机制。不重启的话,有时候设备管理器里显示感叹号。
CMSIS-DAP驱动
ARM官方的开源调试协议,很多国产调试器(比如DAPLink、PyOCD)都用它。CMSIS-DAP最大的优势是免驱——Windows 10/11自带驱动,插上就能用。但老系统(Win7、XP)需要手动装WinUSB驱动。
嗯,这里要注意:CMSIS-DAP的烧录速度不如J-Link快。我实测过,同样烧一个256KB的固件,J-Link用3秒,CMSIS-DAP要8秒。但胜在便宜,一个DAPLink淘宝才十几块钱。
知识体系总览
下面这张图,把烧录驱动的整体脉络画出来了。你可以把它当作本章的思维导图。
这张图从左到右,从上到下,把烧录驱动的“是什么-有什么用-有哪些类型-对应什么硬件”串起来了。你以后遇到烧录问题,先定位到图上对应的节点,排查思路就清晰了。