3. FTDI 驱动安装:FT232 芯片驱动下载、Windows 系统安装步骤、Linux 系统安装步骤
FTDI 的 FT232 系列芯片,可以说是嵌入式调试器里最常见的 USB 转串口方案了。不管是 Arduino、各种 JTAG/SWD 调试器,还是工业上的 PLC 编程线,十有八九都用它。我这些年经手过的板子,少说也有上百种,FT232 的驱动问题占了调试环境搭建故障的六成以上。说白了,驱动装不对,后面烧录、调试全白费。
3.1 驱动下载:别去第三方网站
驱动下载这件事,我踩过最大的坑就是去「驱动之家」「华军软件园」这类网站下载。下载下来要么是旧版,要么捆绑了流氓软件,更离谱的是有一次下载的驱动文件里带木马。从那以后,我只认准两个官方渠道。
| 渠道 | 地址 | 适用场景 |
|---|---|---|
| FTDI 官网 | ftdichip.com/Drivers/VCP.htm | Windows / Linux / macOS 全平台 |
| GitHub 社区版 | github.com / 搜索 libftdi | Linux 下需要源码编译时 |
我个人习惯在 FTDI 官网下载 CDM v2.12.36.4 这个版本(Windows)。为什么选这个?因为这是最后一个同时支持 WHQL 签名和旧版 Windows 7 的稳定版本。新版虽然功能更多,但签名证书偶尔会出问题。
CDM v2.xx.xx.xx WHQL Certified.exe 格式。Linux 驱动则是一个 .tar.gz 压缩包,里面是内核模块源码。
3.2 Windows 系统安装步骤
Windows 下装 FTDI 驱动,看起来就是双击 exe 一路下一步。但为什么很多人装完还是识别不了?嗯,这里有几个关键点,我挨个说清楚。
3.2.1 标准安装流程
- 先插设备,再装驱动?错! 正确顺序是:先双击安装驱动,等提示安装完成,再插入 FT232 设备。
- 双击
CDM v2.12.36.4 WHQL Certified.exe,弹出安装向导。 - 点击 Extract,选择解压目录(默认 C:\Program Files (x86)\FTDI 即可)。
- 解压完成后自动弹出安装程序,点击 Install。
- 等待进度条走完,出现 Driver Installation Completed 提示。
- 现在插入 USB 转串口模块。Windows 会提示「正在安装设备驱动程序」。
- 打开设备管理器,展开 端口(COM 和 LPT),应该能看到
USB Serial Port (COMx)。
3.2.2 驱动签名问题(Windows 10/11 常见)
从 Windows 10 开始,微软强制要求驱动必须有数字签名。FTDI 的官方驱动是签过名的,按理说没问题。但如果你用的是某些山寨 FT232 芯片(市场上假货很多),官方驱动会检测到非正品芯片并拒绝工作。
怎么判断?看设备管理器里的硬件 ID:
右键 FT232 设备 → 属性 → 详细信息 → 硬件 ID
正常:USB\VID_0403&PID_6001
山寨:USB\VID_0403&PID_6001 但驱动报错代码 10 或 39
遇到山寨芯片,我的建议是:换正品调试器。别想着用旧版驱动绕过检测,FTDI 从 2016 年就开始在驱动里加入反山寨逻辑,旧版驱动在 Win10 上签名过不了。
3.3 Linux 系统安装步骤
Linux 下 FT232 驱动的情况比 Windows 简单,但也更容易出「玄学问题」。为什么?因为 Linux 内核自带了 ftdi_sio 驱动模块,大部分发行版插上就能用。但「能用」和「好用」是两回事。
3.3.1 确认内核自带驱动
先检查系统是否已经加载了 FTDI 驱动:
lsmod | grep ftdi_sio
# 如果输出类似:
# ftdi_sio 57344 0
# usbserial 45056 1 ftdi_sio
# 说明驱动已加载
# 查看设备节点:
ls /dev/ttyUSB*
# 应该看到 /dev/ttyUSB0 或类似设备
如果插上设备后 /dev/ttyUSB0 没有出现,先检查 dmesg:
dmesg | tail -20
# 看最后几行有没有:
# usb 1-1: FTDI USB Serial Device converter now attached to ttyUSB0
dmesg | tail。这个命令能告诉你内核是否识别了芯片、分配了哪个 tty 设备、以及有没有报错。比看设备管理器直观多了。
3.3.2 权限问题(90% 的 Linux 故障来源)
很多新手在 Linux 下用烧录工具,发现打不开串口,第一反应是驱动没装好。其实 90% 的情况是权限不足。默认情况下,/dev/ttyUSB0 属于 dialout 组,普通用户没有读写权限。
解决办法有两种:
- 临时方案:每次用
sudo运行烧录工具。但我不推荐,因为 sudo 会改变环境变量,可能影响工具行为。 - 永久方案:把当前用户加入
dialout组:
sudo usermod -a -G dialout $USER
# 然后注销重新登录,或者执行:
newgrp dialout
加完组之后,再试 ls -l /dev/ttyUSB0,应该能看到权限变成了 crw-rw----,所属组是 dialout。
3.3.3 手动编译驱动(内核版本太新或太旧时)
有些时候,比如你用的是最新的 Ubuntu 24.04 或者某个 LTS 内核,自带的 ftdi_sio 可能不兼容某些老款 FT232 芯片。这时候需要从 FTDI 官网下载源码手动编译。
# 下载 Linux 驱动源码
wget https://www.ftdichip.com/Drivers/D2XX/Linux/libftd2xx-x86_64-1.4.27.tgz
tar -xzf libftd2xx-x86_64-1.4.27.tgz
cd libftd2xx-x86_64-1.4.27
# 编译内核模块
make clean
make
# 安装模块
sudo make install
sudo depmod -a
sudo modprobe ftdi_sio
编译过程中如果报错,通常是缺少内核头文件。安装一下:
sudo apt install linux-headers-$(uname -r)
ftdi_sio 冲突。安装前最好先黑名单掉内核自带模块:echo "blacklist ftdi_sio" | sudo tee /etc/modprobe.d/ftdi-blacklist.conf,然后重启。
3.4 驱动安装核心流程(SVG 图)
下面这张图总结了 FT232 驱动安装的完整决策路径。我建议你把它截图保存,以后遇到驱动问题,按图索骥就行。
3.5 常见故障与排查清单
最后,我把这些年遇到最多的 FT232 驱动问题整理成了一张表。你遇到问题时,按优先级从上往下排查,基本能解决 95% 的情况。
| 故障现象 | 可能原因 | 排查步骤 |
|---|---|---|
| 设备管理器黄色感叹号 | 驱动签名问题 / 山寨芯片 | 检查硬件 ID,确认 VID/PID;尝试强制选择 FTDI 驱动 |
| Linux 下 /dev/ttyUSB0 不存在 | 内核模块未加载 / udev 规则问题 | 运行 dmesg | tail 查看内核日志;modprobe ftdi_sio |
| 打开串口提示 Permission denied | 用户不在 dialout 组 | sudo usermod -a -G dialout $USER 然后注销重登 |
| Windows 识别为「未知设备」 | USB 线质量问题 / 供电不足 | 换一根带屏蔽的 USB 线;不要用延长线;插主板后置 USB 口 |
| 驱动安装成功但烧录工具报错 | 波特率设置错误 / 流控冲突 | 检查烧录工具的串口参数:波特率、数据位、停止位、无流控 |
echo "AT" > /dev/ttyUSB0(Linux)或者串口助手发个数据回环测试,确认驱动真的能工作。别等到烧录时才发现问题,那时候心态容易崩。