
最近打样了一块带USB Type-C接口的CH340N转串口小板从原理图到焊接调通折腾了两天。说实话CH340N这颗芯片把USB转串口电路的门槛拉低了一大截——SOP-8封装、内置时钟、连外部晶振都省了外围元件加起来不超过10个。这篇文章把完整的设计过程、PCB布局要点和实际调试中踩过的坑记录下来给正在做类似模块的硬件工程师和电子爱好者一个参考。如果你正准备设计一个USB转串口模块或者想把开发板上的调试串口换成Type-C接口这篇内容基本覆盖了从选型、原理图、PCB到调试的全部环节。1. 为什么选CH340N一颗SOP-8芯片省掉一堆外围1.1 CH340系列选型差异到底在哪里CH340系列是沁恒的经典USB转串口芯片市面上常见的有CH340G、CH340C、CH340B、CH340N、CH340E几个型号。它们的核心协议栈完全一样驱动也是同一套区别主要在外围电路复杂度和封装大小。型号封装外部晶振流控引脚典型应用场景CH340GSOP-16需要12MHz晶振2个电容RTS/CTS/DTR/DSR等完整流控传统开发板、工业模块CH340CSOP-16不需要RTS/CTS/DTR/DSR等完整流控需要完整串口信号的场景CH340BSOP-16不需要支持GPIO复用需要扩展IO的场景CH340NSOP-8不需要RTS/DTR小体积模块、Type-C直连CH340EMSOP-10不需要RTS/DTR超小体积贴片方案CH340G是早年最普及的型号SOP-16封装板子上必须放一颗12MHz晶振和两颗负载电容布局稍微紧凑点就容易和USB座抢位置。CH340C虽然内置了时钟省掉了晶振但封装还是SOP-16体积没优势。CH340N把引脚砍到8个保留最核心的TXD、RXD、RTS#、DTR#四个信号同时内置时钟外围电路只剩下几个电容和电阻。对于绝大部分USB转串口应用来说CTS这类引脚根本用不到完整的Modem流控信号只有在老式工控设备上才有意义。1.2 CH340N引脚定义与电平特性CH340N的引脚排列在SOP-8封装下非常紧凑建议先记清楚每个引脚的功能再画原理图引脚号名称功能说明1VCC电源正极支持3.3V或5V2UDUSB D信号3UD-USB D-信号4GND电源地5RTS#请求发送低有效6DTR#数据终端就绪低有效7TXD串口发送8RXD串口接收这里最关键的一点是电平跟随关系。CH340N的UART输出电平直接由VCC决定VCC接5V时TXD输出5V电平VCC接3.3V时TXD输出3.3V电平。如果你的目标板是3.3V单片机比如STM32F103、ESP32建议直接把VCC接到3.3V这样串口电平天然匹配不需要额外加电平转换芯片。注意CH340N的TXD/RXD电平并不是固定的3.3V而是跟随VCC。很多第一次用的人想当然认为芯片输出固定的3.3V结果接到5V的MCU上通信不稳定还以为是焊接问题。1.3 和CP2102、FT232相比怎么选-CH340系列在国内生态成熟驱动兼容性好性价比高批量采购价远低于进口方案。CP2102是Silicon Labs的方案封装和外围也简单但价格比CH340N贵驱动需要单独安装新版Windows有时自动装不上。FT232是FTDI的经典芯片稳定性好、资料多但价格最高而且市场上假货泛滥买到翻新片很容易出现枚举不稳定。从我实际使用的感受来说CH340N在Windows 10/11下插上就能识别Linux和macOS也有官方驱动完全能满足绝大多数开发调试、固件下载、设备通信的场景。选它不需要犹豫。2. Type-C座不是插上就行CC下拉电阻与D/D-短接的细节2.1 USB 2.0设备端的Type-C引脚接法Type-C母座有24个引脚比传统USB-A的4个脚复杂得多。但CH340N只用到USB 2.0的四根线VBUS、D、D-、GND加上用于设备识别的CC1、CC2。USB 2.0在Type-C座子上分布在两组对称的引脚上A6DP、B6DPD信号的正反插对应引脚A7DN、B7DND-信号的正反插对应引脚A4/B4/A9/B9VBUS电源四脚并联A1/B1/A12/B12GND地四脚并联正确的接法是把A6和B6直接短接后接到CH340N的UDA7和B7短接后接到CH340N的UD-。这样无论Type-C线正插还是反插D和D-都能正确接通。2.2 CC1/CC2为什么要接5.1k下拉电阻这是整个Type-C电路里最容易犯的错。Type-C接口不像USB-A那样用物理结构区分方向主机是靠检测CC引脚上的电阻值来判断设备是否插入、方向如何。CH340N作为UFP上行端口也就是被供电的设备端CC1和CC2各需要接一个5.1kΩ下拉电阻到GND。这个电阻告诉主机“我是一台设备请给我提供5V电源”。如果漏接这两个电阻现象是线插上后电脑完全没有任何反应设备管理器里什么都不出现。因为主机根本没检测到设备接入VBUS都不会输出。这也是我后来调板卡了最久的问题后面章节会详细说。注意CC1和CC2必须各接一个5.1kΩ电阻不能用一颗电阻同时接两个引脚。Type-C检测机制要求两个CC引脚各自有独立的下拉电阻否则某些方向插入时会失效。2.3 VBUS和GND的并联处理Type-C座的VBUS和GND引脚冗余设计A4、B4、A9、B9四个脚都是VBUSA1、B1、A12、B12四个脚都是GND。设计时建议把这几个脚全部连接到对应的电源网络不要只接一个。原因有两个一是增加载流能力Type-C口理论上要能承受更高的电流单脚载流有限二是焊接可靠性Type-C座的引脚本身比较细多脚并联冗余能降低虚焊概率。但要注意多个引脚共用一个焊盘网格时焊接时容易连锡尤其是手工焊接时。建议在PCB封装上把这些同网络引脚连成一个较大的焊盘既方便焊接又能保证连接强度。2.4 不需要CC逻辑芯片的场景有人一看到Type-C就想到要加CC逻辑芯片比如USB-C的握手协议芯片对于CH340N这种USB 2.0全速设备来说完全没必要。电脑主机的USB端口本身就支持Type-C检测和电源管理设备端只需要被动地通过5.1k电阻表明身份即可。只有在做PD快充协议、或者需要让Type-C口既当USB设备口又当USB主机口时才需要CC逻辑控制。做USB转串口模块老老实实五颗电阻就能解决。3. 最小系统原理图从Type-C座到CH340N到排针3.1 供电路径与去耦电容CH340N可以直接从Type-C口的VBUS取5V供电这是一个相当方便的设计省掉了额外焊接外部电源座子的麻烦。我实际用的供电路径是这样的Type-C座的VBUS进入后先经过一个10uF的钽电容或者陶瓷电容做储能再在CH340N的VCC引脚旁边放一个0.1uF的高频去耦电容。有的设计中会再加一颗10Ω左右的电阻做电源滤波但CH340N的工作电流很小一般不到20mA不加也能稳定工作。如果目标板需要3.3V电平的串口更稳妥的做法是从板上已有的3.3V电源轨取电给CH340N的VCC或者用一颗LDO比如AMS1117-3.3从VBUS降压这样CH340N的TXD输出就是3.3V电平直接连3.3V的MCU不用做转换。顺便提一句如果模块要顺带给目标板供电那就要根据负载电流计算电源方案了。仅仅给MCU供电几十mA级别可以直接用LDO电流需求大就要考虑DC-DC那是另一套设计思路了。3.2 串口信号连接TXD/RXD和流控怎么接CH340N的串口信号只有四根线TXD发送、RXD接收、RTS#请求发送、DTR#数据终端就绪。标准接法CH340N的TXD接目标板的RXDCH340N的RXD接目标板的TXD两个板子必须共地GND相连TXD/RXD交叉连接是新人最容易犯的错误。CH340N的TXD是芯片向外发送数据目标板的RXD是接收数据所以必须交叉两个同名引脚对接是通不了数据的。RTS#和DTR#这两个引脚有些人会留着不用但在ESP8266、ESP32一键下载场景里有大用处。如果做的是普通32单片机开发板的调试串口这两个脚可以悬空或者通过排针引出来以备后续扩展。3.3 ESP系列一键下载电路DTR/RTS配合三极管这是CH340N一个非常经典的应用场景配合ESP32或ESP8266实现一键自动下载固件不用手动按Boot和Reset按键。原理说起来很简单。ESP32进入下载模式需要两个条件同时满足EN引脚先拉低再释放产生复位脉冲IO0引脚在EN释放的瞬间保持低电平CH340N的DTR#和RTS#正好可以用来控制这两个引脚但它们的输出是低电平有效直接连接逻辑不对需要各加一只NPN三极管做反相。我用的电路接法是这样的DTR#通过一个1kΩ电阻接到NPN三极管Q1的基极Q1的集电极接ESP32的EN引脚EN上有一个10kΩ上拉电阻到3.3VRTS#通过一个1kΩ电阻接到NPN三极管Q2的基极Q2的集电极接ESP32的IO0引脚IO0上有一个10kΩ上拉电阻到3.3VQ1、Q2的发射极接地当DTR#输出低电平时Q1导通集电极被拉低EN引脚变为低电平ESP32复位。当DTR#输出高电平时Q1截止EN被上拉电阻拉高复位释放。同理RTS#控制IO0的电平。下载工具通过控制这两个引脚的时序组合先让EN和IO0同时为低再释放EN让复位上升沿到来时IO0仍然为低于是ESP32就从下载模式启动了。设计时三极管随便选常见的S8050、2N3904、MMBT3904都行注意基极串一个1kΩ限流电阻就行。3.4 ESD保护与TVS选型建议USB接口是热插拔接口每次插拔都伴随着静电放电和电压尖峰虽然CH340N内部有一定的ESD防护能力但长期使用仍然有损坏风险。如果想做出产品级的模块建议在D、D-数据线上加TVS二极管阵列推荐USBLC6-2SC6或者PESD5V0S1UB这两个都是专门为USB 2.0设计的低电容ESD保护器件。连接方式TVS的一端接D、D-信号线另一端接GND。放置位置尽量靠近Type-C座在静电进入板内之前就把它泄放到地。如果是自己做着玩、不打样卖产品省掉TVS问题也不大很多开发板上的CH340电路都没有加。但如果板子要发给客户用或者安装在工业环境里这2毛钱一颗的器件不要省。4. PCB布局中的三个考点USB信号、电源噪声与接地4.1 UD/UD-差分走线的实际要求CH340N是USB 2.0全速设备12Mbps不是480Mbps的高速设备所以对差分阻抗的要求并不像USB 3.0那样苛刻。很多洞洞板上用飞线连接UD/UD-都能正常工作就是这个原因。但这不意味着可以随便走线。我做PCB时对UD/UD-的处理是这样的两根线并行走尽量保持等长长度差控制在5mm以内尽量减少过孔最好在同一层走完在CH340N的UD/UD-引脚附近各串联一颗22Ω电阻这个22Ω串联电阻很有讲究。它配合芯片内部阻抗和走线寄生电容能改善信号边缘的振铃尤其是在USB线比较长或者PCB走线比较长的时候效果更明显。我实测过加了电阻之后在一些老旧电脑的USB口上识别更稳定。4.2 去耦电容的位置比容值更重要很多新手觉得电容只要容值对就行随便找个空位放下。实际上对CH340N这种工作频率不高的芯片来说0.1uF去耦电容放置的位置直接影响电源稳定性。正确的做法是把0.1uF电容放在VCC引脚旁边距离尽量控制在3mm以内电容的地脚通过过孔直接打到主地平面。我自己的经验是先确定CH340N的位置然后围着VCC引脚画电容和过孔而不是先布局大器件再塞电容。电源走线方面从Type-C的VBUS到VCC的走线要比信号线宽建议至少0.5mm以上。如果是两层板电源走线正下方尽量保持完整的地平面不要被其他走线分割。4.3 Type-C座、芯片、排针的布局顺序模块化的PCB布局有一个通用的排列逻辑按信号流走向布局尽量缩短关键信号的路径。以CH340N模块为例我建议的布局顺序是Type-C座放在板边正中间这是接口的物理入口CH340N芯片放在Type-C座后面距离尽量近让UD/UD-走线最短ESD保护器件放在Type-C座和CH340N之间排针或者焊盘放在板的另一侧作为串口信号出口去耦电容紧贴CH340N的VCC引脚整个板的信号流向就是Type-C座进USB信号 → 经过ESD保护 → 到CH340N转成串口 → 从排针输出。这样布局走线自然不容易出现交叉和绕线。接地处理方面USB的GND和串口的GND本质上是一个地但建议在PCB上优先保证完整的底层地平面不要在信号走线下面开大面积的地缝。CH340N的内部地线应该直接连接到主地平面不要单独隔离。5. 从焊接、上电到串口打通完整调试流程5.1 焊前检查清单我打样回来后不会直接上电先用万用表过一遍检查流程大约花5分钟能省掉后面一小时的排错时间用蜂鸣档测VCC和GND之间的电阻正常应该是几百欧以上如果接近0说明有短路测Type-C座的VBUS和GND同样不能短路目测检查CH340N的引脚间有没有连锡尤其是SOP-8引脚间距小容易虚焊和连焊检查CC1、CC2的5.1kΩ电阻是否贴对用万用表量电阻值确认检查D/D-的串联电阻是否贴反或者漏贴这步检查只要有一次帮你躲过短路烧芯片就值回票价了。5.2 首次上电识别驱动能正常加载吗插上USB线正常情况下电脑应该会有提示音设备管理器里出现一个新的COM口名称一般是“USB-SERIAL CH340”。Windows 10/11一般会自动安装驱动如果没自动安装去沁恒官网下载CH340驱动手动装一下就行。设备管理器的识别过程基本就两种情况现象原因没有任何反应设备管理器无变化VBUS没通、CC电阻没接、D/D-焊接问题出现未知设备或黄色感叹号驱动问题或UD/UD-接反、芯片供电异常如果出现了COM口基本说明电路设计和焊接是没问题的可以进入下一步测试。5.3 回环测试最快验证数据通路最简单的功能验证方法就是回环测试。找一根杜邦线把CH340N的TXD和RXD直接短接然后用串口助手打开对应的COM口设置波特率比如115200发送一串数据。如果电路正常发送什么就能收到什么——因为TXD发出去的数据直接从RXD收回来了。这个测试验证的是USB枚举是否正常串口驱动是否正常TXD/RXD通路是否通回环测试过了之后再把TXD/RXD的杜邦线断开接上目标板就能确认和目标板的联调。5.4 和目标板联调时容易被忽略的共地问题接上STM32或ESP32目标板后第一件事不是配置波特率而是确保两个板子共地。CH340N模块的GND和目标板的GND必须相连这是串口通信的前提条件。不共地的现象很典型串口助手能打开COM口但发送数据完全没有回应或者收到的全是乱码。很多人花很长时间查波特率配置、查代码最后发现就是差一根GND线。共地确认后注意三点波特率必须一致常见的是9600或115200TXD接目标板的RXDRXD接目标板的TXD电平匹配前面说过CH340N的输出电平跟随VCC确认目标板IO电平是否兼容6. 我踩过的坑识别不到、乱码与自动下载失败6.1 识别不到设备CC下拉电阻忘贴的排查过程第一次打样回来的板子插上Type-C线电脑一点反应都没有。我当时的第一反应是焊接问题于是把CH340N的引脚全部重新拖了一遍锡用万用表逐个测引脚通断结果都正常。接着测量Type-C座VBUS引脚发现竟然没有5V。这说明主机根本没有输出电源。但用同一个Type-C线去充手机是正常的所以线没问题。后来意识到问题出在CC引脚上。Type-C主机只有在检测到设备端的CC下拉电阻时才会开启VBUS输出。我画原理图的时候其实放了这两个5.1k电阻但是封装做的是0603焊接时引脚的焊盘被阻焊层盖了一部分导致其中一颗电阻虚焊没导通。解决办法是补焊了一颗5.1k电阻重新插上电脑立刻就有反应了设备管理器里出现了COM口。经验Type-C电路识别不到设备优先查CC1/CC2的下拉电阻是否真正连通其次再查D/D-。很多USB-C设备无法识别的问题根源都是CC电阻没贴好而不是芯片坏了。6.2 能识别但乱码TXD/RXD接反与电平不匹配回环测试通过后我把模块接到一块STM32F103的开发板上串口助手收到的全是乱码。一开始我以为波特率配置错了核对了好几遍都是115200但还是乱码。后来用示波器量了STM32的RXD引脚发现根本没有正常波形再顺着走线检查才发现我把模块的TXD接到了开发板的TXD上两个输出对怼了。TXD/RXD交叉连接这个低级错误在忙乱的时候真的很容易犯。把两边的TXD和RXD重新交叉对接后通信恢复正常。如果确认接线没问题但还是乱码就要考虑电平问题。CH340N的VCC如果接的是5VTXD输出高电平是5V而3.3V的STM32的RXD引脚对5V电平虽然能识别很多芯片是5V容忍引脚但长期使用有风险。最好还是让CH340N的VCC用3.3V供电。6.3 ESP32一键下载失败三极管配对和上拉电阻的问题把CH340N模块接到ESP32-DEVKIT上做自动下载esptool提示“连接超时”或反复“等待上电复位”。查了一圈发现是我的三极管接法有问题。ESPlorer或esptool控制的是DTR和RTS的逻辑组合但CH340N的DTR#和RTS#是低有效信号文档里说的DTR/RTS逻辑是经过芯片反相之后的。我用万用表实测了芯片在电脑控制拉低时的引脚电平发现和我的三极管控制逻辑对不上。后来对照乐鑫官方的自动下载电路重新调整了三极管的连接方式DTR#控制EN引脚复位、RTS#控制IO0引脚并且确认EN和IO0各有10kΩ上拉电阻到3.3V。调整后自动下载功能恢复正常。这个坑的核心点在于不同USB转串口芯片的DTR/RTS有效电平可能不一样抄网上的电路时不能只看原理图还要对照芯片手册确认信号逻辑。6.4 其他的实用注意事项汇总最后汇总几个我做CH340N模块过程中积累的实践经验Type-C线缆质量对通信稳定性影响很大很多杂牌线只走电源不走数据或者数据线芯很细。调试时建议用手机原装数据线稳定性明显更好。USB口供电能力有限如果模块目标板总电流超过500mA不要从USB取电驱动大功率外设容易造成电压跌落和通信异常。CH340N工作在3.3V时模块本身功耗很低如果目标板有独立的3.3V电源可以断开USB供电的路径避免两个电源轨之间的冲突。批量焊接时注意SOP-8封装的引脚间距回流焊还好手工贴片的话0.65mm间距容易连锡焊完用放大镜检查一遍最稳妥。做硬件设计就是这样看似简单的USB转串口电路真正的坑都在细节里。CH340N已经帮我省掉了晶振、LDO、电平转换这些外围只要把Type-C的CC检测、D/D-短接、PCB布局这几个关键点处理好整个模块基本一次就能跑通。后面如果有需要我还会在这个小板上继续叠加隔离型串口和自动下载电路到时候再写一篇更完整的分享。