基于FT232RL-REEL设计USB转串口板:原理图、PCB与调试全流程 上个月整理元件盒翻出三四块USB转TTL模块有CH340的、CP2102的还有一块商家标着“FT232RL”的拿放大镜一看丝印模糊九成是打磨片。其实我早就不买这种成品模块了项目里需要USB转串口都是直接画进主板里一颗FT232RL-REEL芯片加上几个电阻电容比外挂模块又稳又省地方。这篇文章就专门讲讲怎么从零设计一个基于FT232RL-REEL的USB转串口电路板从选型、原理图、PCB到焊接调试一条龙。适合谁看呢画过几块简单板子、想搞懂信号链路细节的硬件初学者以及被成品模块坑过、想在项目里集成串口功能的嵌入式工程师。1. 为什么放着现成模块不用非要自己画USB转串口1.1 成品模块看着省事其实藏着不少坑先说个场景你画了一块主控板板上需要预留一个程序下载口或者调试串口。这时候最自然的想法是“买一个USB转TTL模块用杜邦线连一下不就行了”确实能跑但等你批量做或者做小体积产品时会发现一堆问题。模块尺寸普遍偏大最常见的蓝色CH340模块长约4厘米在小板子上横竖都碍事排针位置固定USB座方向固定很多时候得飞线才能装上外壳供电能力弱很多成品模块标称带3.3V和5V输出实际负载一大电压就垮带个ESP8266都可能掉电重启质量参差不齐D/D-直接焊两根线出来延长线稍微长一点就识别失败。更关键的是模块属于独立物料项目里每用一块都得单独采购、单独备料BOM多出一行仓库多一个料号成本反而上去。我之前在样机阶段用过一段时间模块后来一算账一块正经FT232RL芯片才十几块加上USB座、电容电阻、排针物料成本不到二十块成品模块却卖十几到三十几自己画还能精确控制尺寸。1.2 USB转TTL和USB转串口到底是不是一回事经常有新手问“USB转TTL和USB转串口有啥区别”这里统一说清楚。UART是一种串行通信协议常见的有TTL电平UART和RS232电平UART。TTL电平用0V表示低电平、3.3V或5V表示高电平单片机之间直接连的就是这种RS232电平则用正负电压表示逻辑电脑老式串口用的就是RS232。USB转串口控制器的核心作用是把USB协议的数据包转换成UART接口能直接收发的数据流。所以“USB转TTL模块”本质上就是“USB转串口模块”区别只在于输出电平标准。FT232RL的UART引脚输出什么电平由VCCIO引脚决定既可以做成3.3V TTL也可以做成5V TTL这也是它比很多固定电平芯片灵活的地方。1.3 自己做一遍相当于把嵌入式基本功练了个遍自己画一块USB转串口板子表面上看只是多了一个功能模块实际上把硬件开发的几个核心环节都过了一遍USB差分信号的布线规则、电源退耦电容怎么摆、SSOP封装的焊接手法、驱动安装和枚举原理、还有最基本的故障排查思路。这些经验是买模块学不到的。我经常跟朋友说如果你能把FT232RL这块板子画利索再去画带MCU的板子心里会踏实很多。因为USB这块是最容易出问题又最难看懂的部分之一做通了之后很多“玄学问题”其实都是可以定位的。2. FT232RL-REEL到底是个什么芯片选它而不是别人的理由2.1 热门USB转串口芯片横向对比市面上常见的USB转串口芯片就那么几款FTDI的FT232R系列、WCH的CH340系列、Silicon Labs的CP2102系列、还有老掉牙的PL2303。这里直接列个表对比一下。芯片外部晶振内置EEPROMCBUS可编程IO系统驱动支持工业级价格散片参考FT232RL不需要有有Windows/macOS/Linux全平台系统自带是15-25元CH340G需要12MHz晶振无无Windows需装驱动部分Linux需编内核模块否消费级为主1-3元CP2102不需要有无Windows/macOS自带部分版本有工业级5-10元PL2303需要晶振部分型号无无驱动老版本兼容性差否3-5元选FT232RL的原因很直接全平台驱动支持好Windows、macOS、Linux基本插上就能识别内置EEPROM可以自定义USB描述符和CBUS引脚功能内部集成振荡器不需要外部晶振温度范围宽适合工控环境。缺点就是贵但做学习板或者产品核心通讯口这笔钱花得值。2.2 为什么是FT232RL-REEL这个“后缀”先解释一下命名。FT232R是芯片系列名后面的字母和尾缀代表封装和工作温度等信息。FT232RL的“L”代表SSOP28封装这是最常用的封装FT232RQ则是QFN32封装体积更小但更难焊接FT232RNL是后来改进的型号引脚兼容功能有增强。“REEL”不是芯片型号的一部分它指的是包装形式——编带卷装这也是SMT贴片机生产时最常用的一种供货方式。市面上卖的FT232RL散片很多就是从整卷编带上剪下来的“切割带”芯片本身一模一样。所以你在立创商城或者淘宝上搜“FT232RL-REEL”买到手的就是卷带料或者散料手工焊接完全没有问题。还有一个容易混淆的点芯片丝印上可能写FT232RL也可能写FT232RQ有些是FTDI的新丝印格式后缀字母含义不同。买之前一定看清楚封装是SSOP还是QFN不然PCB画好了对不上。2.3 引脚分成四类记清楚就不会接错FT232RL虽然是28个引脚但功能上可以分成四组。电源类引脚VCC是主电源既可以接5V也可以接3.3VGND就是地VCCIO是IO电平参考脚决定UART和CBUS引脚的输出电平3V3OUT是芯片内部LDO的输出端REGIN是内部LDO的输入端。USB类引脚USBDM和USBDP对应USB座上的D-和D这是差分数据线不能接反。UART类引脚TXD、RXD、RTS#、CTS#、DTR#、DSR#、DCD#、RI#。其中TXD是发送RXD是接收注意和外部设备连接时“名字对名字交叉接”外部MCU的TXD接FT232RL的RXD外部MCU的RXD接FT232RL的TXD。流控引脚RTS#和CTS#是一对DTR#和DSR#是一对像模组下载、RS485方向控制这类场景会用到。控制类引脚RESET#是复位引脚低电平有效正常工作时通过10kΩ电阻上拉到VCCTEST是工厂测试引脚正常工作必须直接接GND这一点很多人会忽略OSCI和OSCO是振荡器引脚因为内置振荡器悬空即可。CBUS0到CBUS4这5个引脚是可配置IO默认配置可以用来做发送指示、接收指示、发送使能等具体功能由内部EEPROM决定后面讲FT_Prog的时候再展开。2.4 这芯片有坑VCCIO电平一定要先想清楚FT232RL的电源设计最容易出错的地方就是VCC、VCCIO、3V3OUT和REGIN这几个引脚的关系。芯片可以工作在5V系统也可以工作在3.3V系统。接5V时VCC接5VREGIN也接5V芯片内部的LDO会从REGIN取电在3V3OUT上输出3.3V这个3.3V除了给内部USB收发器供电也可以给外部小负载提供电流但注意手册上给的输出能力有限大概几十毫安级别不能拿它当主力电源。VCCIO这个脚决定了UART引脚的逻辑电平。如果你的RS232输出电平要兼容3.3V单片机VCCIO就接3.3V可以直接接到3V3OUT如果后级设备是5V逻辑VCCIO就接5V。最怕的情况是VCCIO接5V后级接了个3.3V的单片机长时间跑下来单片机IO口会被灌坏。反过来VCCIO接3.3V后级是需要5V电平的设备可能就出现数据传不过去或者逻辑判断不了的问题。我见过不少初学者把VCC和VCCIO画反结果芯片要么不工作要么工作一会儿烫手。所以原理图阶段一定要先定清楚“我要输出什么电平给后面的设备”这个决定了VCCIO的接法。3. 原理图设计把每一根线都画明白3.1 EDA工具选型从免费的开始画原理图和PCB需要EDA软件。新手我建议直接用立创EDA网页版和客户端版都有元件库非常全搜FT232RL基本能直接出来带封装的元件省去自己画原理图符号和封装的功夫而且打样流程和嘉立创无缝衔接。KiCad也不错开源免费、跨平台元件库也很丰富就是学习曲线稍微陡一点习惯之后很好用。Altium Designer功能强大职业程序员用得多但对个人学习来说授权费用太高没必要。选EDA的时候还要考虑一点能不能导入别人分享的工程文件。立创EDA的开源广场上有大量USB转串口、开发板之类的参考工程直接拿来改是很高效的学习方式。3.2 最小系统原理图四块电路一个不能少一张完整的FT232RL USB转串口原理图至少包含四块电路。第一块是USB座及保护电路。USB座现在流行Type-C不过第一次画板我建议用Micro-USB或者USB-B座引脚少、处理简单Type-C还要考虑CC引脚的上下拉电阻和正反插问题第二次再玩不迟。D和D-数据线上各串联一个22Ω电阻这是USB Full Speed设备的常见做法起到阻抗匹配和抑制振铃的作用。第二块是FT232RL最小工作电路。VCC和REGIN接5V每个电源引脚旁边放一个0.1uF陶瓷电容退耦VCC处再加一个10uF电容。RESET#通过10kΩ电阻上拉到VCCTEST直接接GNDOSCI和OSCO悬空。第三块是UART引脚引出。TXD、RXD是必须引出的RTS#和CTS#建议也引出来万一调外部模块需要流控就不用飞线了。所有的引出脚可以做到2.54mm排针上也可以直接连到板上MCU的串口引脚。第四块是电平转换和指示。如果要用3.3V逻辑VCCIO接3V3OUT再在3V3OUT处放一个4.7uF或者10uF电容稳定输出。CBUS0和CBUS1配置成TXLED和RXLED指示接两个LED和限流电阻串口有数据时灯会闪调试时非常直观。3.3 关键参数逐个说清楚22Ω、0.1uF、LED限流设计这块板子时有几个参数值得单独说一下。D/D-上的22Ω电阻官方数据手册里的典型接法就是这么画的。USB 2.0 Full Speed模式下信号边沿比较快如果D/D-线上没有任何阻尼容易产生振铃轻则识别不稳定重则枚举失败。新手不要为了省两个电阻去掉它们两个0603电阻的成本不到一分钱。退耦电容为什么要0.1uF为什么必须靠近引脚可以这么理解芯片切换状态时瞬间需要大电流如果电流全靠电源走线从远处拉过来走线的寄生电感会阻碍电流变化导致VCC电压波动。0.1uF小电容紧贴引脚摆放就是给芯片准备一个“局部小水库”先从小水库取电电源再慢慢补给水库。这个道理同样适用于任何数字芯片的电源退耦。LED限流电阻从VCCIO经过电阻接到LED再接到CBUS引脚。因为TXLED/RXLED是低电平有效输出LED负极接CBUS正极串电阻接VCCIO。电阻取330Ω到1kΩ都行3.3V供电时330Ω亮度约5mA1kΩ约2mA室内调试用1kΩ就足够亮度低一点反而不刺眼。3.4 原理图画完先过一遍检查清单画完原理图先别急着转PCB按这个清单过一遍VCC和VCCIO有没有接混。这是最容易犯的错VCC是芯片主电源VCCIO是电平参考两个不要并在一起连到5V。USB的D/D-方向对不对。USB座上的D接芯片的USBDPD-接芯片的USBDM注意别接反。TEST接地了没有。悬空的TEST引脚会导致芯片无法正常枚举典型故障是插上电脑完全没反应。RESET#上拉了没有。复位脚悬空容易受干扰导致芯片反复复位。3V3OUT上的电容有没有放。内部LDO输出稳定需要电容不放电容可能出现USB枚举不稳定。所有地网络名一致。GND铺地没问题但别出现GND和GND1这种名字。4. PCB布局布线这块板子的难点全在USB和地4.1 先布局再布线别上来就拉线PCB画得好不好布局占七成。我的习惯是先把所有元件用大概位置摆一遍不拉线只推位置推到自己觉得“这结构挺顺眼了”再开始布线。USB座放在板边方向朝外保证插线时不用绕。FT232RL芯片放在USB座旁边让D/D-从USB座到芯片的走线尽量短。排针放在芯片另一侧和USB座方向相反。退耦电容要贴着对应引脚放0.1uF这类的电容离芯片引脚越近越好10uF的大电容可以稍微远一点但别绕远路。整板尺寸不用大30mm×20mm左右已经足够放下这个电路。排针可以用两排2.54mm间距的单排针一排引出TXD、RXD、RTS#、CTS#一排引出VCC、3V3、GND等方便杜邦线连接。4.2 USB差分线怎么走才稳USB的D和D-是一对差分线是这块板子布线时最容易踩坑的地方。差分线要走得短、直、平行。FT232RL放在USB座旁边走线长度控制在1到2厘米以内基本上怎么走都不会出大问题。如果走线超过5厘米就要注意等长和阻抗了。D/D-线宽建议0.3mm到0.5mm两根线间距保持3倍线宽以上不要一根线很长另一根线很短尽量保证等长。还有几个细节不要在差分线中间打孔换层尽量顶层直连到芯片差分线周围不要走其他高速信号避免串扰差分线下方不要跨过电源或地平面的分割槽保证参考平面连续。对于USB Full Speed设备90Ω差分的严格阻抗匹配不是必须的走线短、回路连续才是关键。4.3 电源和地要“厚道”双面板的常规做法是顶层走信号底层大面积铺地。GND引脚就近打过孔到地平面每个走完信号的空白区域都铺上地铜让整个底层形成完整的地平面。5V电源线加宽到1mm以上避免走细线产生压降。UART信号线0.3mm就够毕竟只是低速串口信号。LED和电阻这类小元件布局时尽量放在板边装上外壳之后还能看到灯的闪烁状态。如果这块板子还要给外部设备供电建议加一个自恢复保险丝比如500mA的串在5V输出路径上。外部设备短路时保险丝会变成高阻状态保护电脑的USB口不被烧掉这个元件非常便宜强烈建议预留。4.4 手工焊接友好设计自己手工焊接的板子设计时要想着“万一焊错了能不能好排查”。建议在芯片附近预留几个测试点。至少要有TXD、RXD、VCC、GND四个做成焊盘形状不占多少空间调试时万用表表笔一搭就能量信号。丝印上把引脚功能标清楚网标不要用那种简写到底的方式起码TXD、RXD、VCC、GND这些关键网络要在丝印上看到。LED的位置和颜色也要标识好比如在丝印上画个小方框写上TX/RX省得焊完了还要翻原理图认灯。5. 打样、焊接和第一次上电把零散元件变成能用的板子5.1 打样文件交付与BOM整理原理图和PCB画完检查DRC没有报错就可以导出Gerber文件下单打样了。现在的打样服务5片起步几块钱就能打非常便宜。BOM清单大概是这样位号元件封装数量U1FT232RL-REELSSOP281J1Micro-USB座USB-Micro-B1R1、R222Ω电阻06032R3、R41kΩ电阻LED限流06032R510kΩ电阻RESET#上拉06031C110uF电容VCC08051C2、C3、C40.1uF电容06033C510uF电容3V3OUT08051LED1、LED2红色/绿色LED0603或08052P12.54mm排针若干直插1套芯片采购渠道要说一句尽量在正规元器件商城买别贪便宜。假芯片的问题后面专门讲。5.2 焊接SSOP28拖焊大法新手照做就行SSOP28引脚间距0.65mm对新手来说一听就觉得难其实掌握了拖焊法这个封装比直插排针还好焊。准备工具刀头或者马蹄头烙铁、助焊剂松香笔或者焊油、吸锡带、镊子。操作步骤第一步在焊盘上均匀涂上一层助焊剂不需要先上锡。焊盘本身是镀锡的有助焊剂辅助就能吃锡。第二步把芯片放在焊盘上对准方向。芯片的1脚位置通常在丝印上有圆点或缺口标识SSOP封装的方向判断别搞反。第三步先固定对角的两根引脚。用烙铁尖同时按住芯片引脚和焊盘让锡流进去固定好两个对角之后芯片就不会移位了。第四步沿着芯片的一侧把所有引脚堆上锡。堆锡量要足别怕连锡这是正常的。第五步烙铁头沾一点助焊剂从这一侧的一端开始以45度角慢慢地往另一端拖。拖的过程中多余的焊锡会被烙铁头带走。拖完一侧再拖另一侧。第六步如果拖完发现有引脚之间还有锡桥用吸锡带吸掉。吸锡带放在连锡处烙铁压上去锡就会被吸走。焊完之后用万用表蜂鸣档扫一遍相邻引脚确认没有短路再用放大镜检查有没有虚焊。5.3 上电三板斧先测短路再插电最后看设备板子焊完别急着插电脑按这个顺序来。先用万用表量VCC和GND之间的电阻如果接近0Ω板上肯定有短路赶紧检查焊锡有没有连到不该连的地方。这一步能救回一半以上的“新板子”。确认没有短路之后USB线插电脑。正常情况电脑会“叮咚”一声同时设备管理器里多出来两个设备一个是通用串行总线控制器下的“USB Serial Converter”一个是端口下的“USB Serial Port (COMx)”。前者说明芯片枚举成功后者说明驱动正常创建了串口。如果什么都没有先拔下来用一个带电流显示的充电器或者USB电流表量一下电流。正常空载电流应该在20mA到50mA左右。如果电流飙到200mA以上基本就是焊接短路或者接错电源了马上断电检查。6. 驱动安装和功能验证别卡在COM口这一步6.1 驱动装完怎么判断装对了Windows系统插上正品FT232RL大概率会自动联网安装驱动。如果没装上去FTDI官网下载VCP驱动文件名通常是“CDM v2.x.x WHQL Certified”这种格式下载安装后重启一下电脑。注意不要用什么第三方驱动安装软件容易装上一堆捆绑软件而且不见得装的是正确版本的驱动。FT232RL的老版本驱动和新款芯片的兼容性整体是好的但如果系统里残留过其他USB串口芯片的驱动偶尔会有端口冲突遇到这种情况卸载驱动重启一次就好。Linux系统内核自带ftdi_sio驱动插入后一般会出现在/dev/ttyUSB0不需要额外安装。macOS在较新版本里会提示“系统扩展已更新”需要在系统设置里允许加载FTDI驱动不然设备不工作。判断驱动装没装对最直接的办法打开设备管理器找到“端口(COM和LPT)”下的COM口编号再看“通用串行总线控制器”里有没有FTDI设备。两个都出现才算完整。6.2 回环自测10秒判断板子好坏板子能不能收发数据做一个回环测试就知道了。拿一根杜邦线把板上TXD和RXD短接。打开串口调试助手选择对应COM口波特率设9600打开串口发送“hello”。如果串口助手能收到“hello”说明TXD-RXD这条收发通路是通的芯片到USB再到电脑的链路没问题。这个测试能排除大部分硬件问题。如果发出去没收到优先怀疑TXD和RXD的引脚焊接用万用表量一下排针和芯片引脚之间的导通。如果TXD、RXD之间确实没短路回环时短接了所以这条不是问题则检查软件层波特率是否一致、流控是否误开启。回环测试通过之后再接一个外部MCU或者另一个USB转串口板两端交叉连线实测一下真实通信电平匹配无误就可以放心用了。6.3 FT_Prog进阶玩法改CBUS和VID/PIDFTDI官方有一个免费软件叫FT_Prog可以读取和改写FT232R内部的EEPROM。这个工具我第一次用的时候觉得很难其实逻辑很简单打开软件扫描到设备读取当前配置修改写入。最常用的两个功能一个是改CBUS引脚功能比如把CBUS0从默认的发送指示改成GPIO输出用来控制外部LED或者继电器另一个是改USB描述符比如修改产品字符串“USB Serial Port”为自己板子的名字方便在多设备时区分。这里要特别提醒EEPROM里的VID和PID不要随便改。默认VID是0403PID是6001Windows驱动是靠这组数字认设备的。改完如果驱动没适配设备会变成“未知设备”。产品字符串和序列号倒是可以随便改多块板子串联调试时给每块板写个不同的序列号系统里就能同时看到多个设备。写错EEPROM也不要慌FT_Prog重新连接设备点一下恢复默认配置再写回去就行。FT232R即使在EEPROM内容异常时通常也能以默认VID/PID枚举不会彻底变砖。但最好还是改之前先保存一份原始配置备份。7. 常见问题与排查技巧实录维修级干货7.1 插上电脑完全没反应这是出现频率最高的问题。按优先级排查现象原因排查方法插入后无任何提示板子短路导致电脑USB口保护用电流表测试板子电流万用表量VCC-GND电阻插入后无提示TEST引脚悬空确认TEST是否直接接GND插入后无提示芯片焊接方向反了放大镜观察芯片丝印与PCB方向是否一致插入后无提示芯片电源没到万用表量芯片VCC引脚对地电压插入后提示“无法识别的USB设备”D/D-接反或损坏万用表通断档量USB座D/D-到芯片引脚的连接插入后提示“USB Serial Converter”但没有COM口驱动安装异常卸载设备重启后重新安装VCP驱动插入后系统提示未知设备且驱动总是装不上芯片可能是假货换一颗正品芯片验证遇到过好几次“插上没反应”最后检查都是芯片TEST引脚悬空或者焊反方向这类问题在原理图阶段就能避免。7.2 能识别串口但收发数据就是不对设备管理器里COM口出现了但通信不正常这类问题的排查方向不太一样。现象原因排查方法打不开串口被其他软件占用关掉其他串口调试工具重启串口助手打开串口后发送没反应TXD/RXD虚焊万用表蜂鸣档量排针到芯片引脚的导通乱码波特率不匹配两端波特率一致常见9600/115200乱码电平不匹配VCCIO电平与外部设备不一致检查VCCIO接法乱码硬件流控未被关闭串口助手里关闭RTS/CTS流控数据收发不稳定时好时坏USB线过长/质量差换短USB线检查D/D-串联电阻数据收发不稳定板子电源电压不稳用示波器或万用表测芯片VCC是否稳定在5V乱码这个问题八成是波特率或者电平的问题。我曾经有一次调了一天也没搞明白最后发现是VCCIO接了5V后级设备是3.3V电平信号被拉伸到了5V通信当然不正常。把VCCIO改到3V3OUT之后问题立刻消失。7.3 一次把假芯片认出来市面上的FT232RL假货问题存在很多年了常见的是用国产芯片打磨后印上FTDI的标。如果买到了假芯片轻则工作不稳定重则驱动装不上极端的还会被系统识别为异常设备直接挡在门外。几个判断方法正品FT232RL激光丝印非常整齐清晰字体深浅一致芯片表面有FTDI的Logo假货丝印往往模糊、字体显得发虚表面打磨痕迹明显。用FT_Prog读取信息正品能看到完整的厂商字符串和序列号等描述符假货读取经常报错或者信息缺失。最稳妥的办法是从正规渠道购买便宜没好货一次假货折腾两三天省下的那点钱远远不够误工费。7.4 焊板子时的几个小工具焊接过程中经常要拆引脚、清理焊盘这里说两个实用小工具。吸锡带是必备的拖完焊之后残留的锡桥用吸锡带一压一吸就干净了。还有一种用来拆多脚元件的工具很多人叫它“空心针”或“吸锡针”长得像注射器针头用烙铁把某个引脚上的锡化开空心针往引脚上一套一转引脚和焊盘就分离了。网上搜“拆电路板引脚的针头”说的就是这东西。当你需要把焊错的芯片完整拆下来重焊时这个工具比吸锡带效率高不少。写在最后我自己第一次画这块板子的时候把TEST引脚给悬空了插上电脑一点反应都没有排查了一整个下午才在数据手册角落里看到“TEST must be tied to GND”这句话当时差点把板子丢进垃圾桶。这个经历让我养成了两个习惯第一原理图阶段就把关键引脚的固定接法查清楚TEST接地、RESET#上拉这类“死规定”列成自己的检查清单每次画板都过一遍。第二板子上一定要留测试点TXD、RXD、VCC、GND这四个网络各引一个焊盘出来成本几乎为零排查问题的时候能省很多事。如果你要在项目里集成USB转串口功能我还建议顺手把RTS#和CTS#引出来宁可不用也不能没有。很多下载器、模组和工业设备需要这几根线到时候缺一根都要飞线飞线飞的多了就和模块没什么区别了。USB转串口虽然看起来不起眼但把它从选型到焊接完整做一遍你会对USB枚举、电源退耦、差分走线、芯片焊接和驱动原理都有真正的体感。下次再听到谁说“USB转TTL就是串口”的时候你就可以笑着回一句“对但它背后其实没那么简单。”