恒美微站
首页
关于我们
建站服务
主题模板
案例展示
资讯中心
联系我们
CH340N Type-C转串口模块设计全流程:原理图到调试
首页
资讯中心
/
CH340N Type-C转串口模块设计全流程:原理图到调试
CH340N Type-C转串口模块设计全流程:原理图到调试
发布时间:2026/10/5 14:01:10
CH340N这颗芯片凡是玩单片机、折腾串口调试的人大概率都见过。最近两年USB Type-C接口普及之后基于CH340N做的Type-C转TTL小模块越来越多体积比过去CH340G加晶振的方案小了一大截插上电脑就能识别成一个串口给STM32下载程序、给ESP32看日志、跟传感器模块通信都非常顺手。这篇文章我围绕CH340N这颗芯片把从选型、USB Type-C接口电路、原理图、PCB布局到焊接调试的完整流程梳理一遍如果你正准备画一块自己的USB转串口模块或者只是想把CH340N用进现有产品里这份内容可以直接拿来当参考。我最早接触CH340系列是CH340G那个SOP16封装配12MHz晶振还得加两个负载电容画板子占地方调试时也容易因为晶振没起振而找不到设备。后来CH340C内置晶振少焊两个电容再到CH340N直接缩到SOT23-6六只引脚芯片本体比一粒米还小外围几乎什么都不用加接上USB的D/D-和电源就能工作。这篇博文不讨论那些花哨的扩展功能就是老老实实讲清楚把一个CH340N的Type-C USB转串口模块从零画出来、焊出来、用起来会经历哪些环节以及每个环节我实际踩过的坑。1. 为什么选CH340N从CH340系列选型说起1.1 CH340家族型号对比很多人一上来就搜“CH340N”但其实CH340下面有好几颗芯片长得都不一样选错了引脚定义直接翻车。我把常见的几颗放到一起对比一下型号封装外部晶振串口信号典型应用CH340GSOP16需要12MHz晶振2个负载电容TXD/RXD/RTS#/CTS#/DTR#/DSR#/DCD#/RI#老式开发板、全功能串口扩展CH340CSOP16内置同上免晶振的全功能方案替代CH340GCH340NSOT23-6内置TXD/RXD极小体积、USB转TTL最小系统CH340EMSOP10内置TXD/RXD/RTS#/CTS#需要硬件流控的紧凑型方案从表里能看出来CH340N是CH340家族里最精简的一颗引脚砍到只剩6个串口信号只保留TXD和RXD。这意味着它没有硬件流控没有DTR和RTS很多ESP32开发板上那种“一键下载电路”依赖的就是RTS和DTR这两个信号所以CH340N做不到真正的硬件自动下载。但反过来讲对于绝大多数调试场景我们需要的只是把USB变成一个虚拟串口跟MCU的UART收发数据而已TXD和RXD完全够用。选择CH340N的第一个理由就是封装小SOT23-6的封装尺寸大约2.9mm×1.6mm焊盘之间间距不到1mm放在Type-C母座旁边非常省空间。第二个理由是内置晶振CH340G需要外部12MHz晶振和两个负载电容晶振本身占面积两个电容也占位置而CH340N把这些全集成进去了外围电路少到极点。第三个理由是供电灵活VCC可以接5V也可以接3.3V串口电平跟着VCC走适配不同电压的逻辑系统很方便。1.2 什么场景该选CH340N什么场景别选我用CH340N做过好几块小模块总结下来这些场景最适合它USB转TTL调试模块给STM32、GD32、NXP等MCU下载程序或打印日志。给ESP8266或ESP32做简单的串口透传但能接受手动按键进下载模式。跟各种TTL电平传感器、GPS模块、蓝牙模块通信。嵌入式设备里需要预留一个调试串口板子空间又很紧张。做Type-C接口的USB转串口小工具随身携带。反过来下面这几个场景我不建议用CH340N需要硬件流控的RS232/RS485转换器因为CH340N没有RTS/CTS引脚。ESP32或ESP8266需要一键自动下载没有RTS/DTR信号就很麻烦。目标设备是1.8V或2.5V电平的FPGA、新式传感器CH340N的IO电平无法直接匹配。对静电防护、工业环境可靠性要求很高的场合需要额外加保护器件还可能有更好的芯片选择。简单说CH340N就是一颗“安安静静做串口”的芯片别指望它干太多事在它擅长的领域里它就是最优解。1.3 CH340N核心参数与引脚定义CH340N的引脚是SOT23-6从丝印上看一共6个引脚定义如下引脚号名称方向功能说明1GND电源接地2VCC电源电源正3.3V~5V3RXD输入串口接收接目标设备TXD4TXD输出串口发送接目标设备RXD5UDUSBUSB D信号6UD-USBUSB D-信号TXD和RXD这两个名字特别容易搞反。CH340N的TXD是芯片往外发数据的引脚所以要接目标设备的RXDRXD是芯片接收外部数据的引脚要接目标设备的TXD。串口通信里“交叉连接”这个基本规则新手最容易在这里翻车我第一次画模块就是TXD和RXD画反了结果回环测试怎么都不通。除了引脚还有几个参数值得记住CH340N支持USB 2.0全速理论速率12MbpsUART波特率范围50bps到2Mbps覆盖了常用下载和调试波特率芯片内置12MHz晶振启动时不需要额外配置。驱动方面Windows、Linux、macOS都有官方驱动或系统自带驱动插上电脑一般就能识别这个后面调试部分再细说。2. USB Type-C接口设计的关键细节2.1 Type-C母座引脚与USB 2.0连接做USB转串口模块接口现在都优先选Type-CType-C母座的引脚比老式USB-A要复杂许多但真正用到的其实就那么几根。常见的Type-C母座是16Pin贴片式引脚分布包括A1/B1是GNDA4/B4是VBUSA5/B5是CC1/CC2A6/B6是DA7/B7是D-A8/B8是SBU1/SBU2还有一圈外壳屏蔽脚。对于USB 2.0应用SBU引脚完全不用接我们只需要VBUS、GND、D、D-、CC1、CC2这6组信号。D和D-在Type-C母座上是双面的A6和B6都是DA7和B7都是D-。画PCB时需要在母座下面把同名信号短接在一起也就是说A6和B6连起来接到CH340N的UDA7和B7连起来接到CH340N的UD-。如果不连插反方向的时候设备就会不识别因为其中一面悬空了。Type-C的电源脚VBUS其实是A4和B4并联的GND是A1和B1并联的这两个一般也比较直观。需要注意的是Type-C母座的外壳屏蔽脚我建议通过一个0Ω电阻或者直接用铜箔连到GND如果系统对EMI敏感也可以串联一个1nF电容再接地但不管怎么接不要让屏蔽脚悬空否则热插拔的时候静电很容易窜进电路。2.2 CC1/CC2下拉电阻最容易忽略的环节这是我见过最多人踩的坑也是自制Type-C设备跟老式USB-A设计最大的区别。Type-C接口里有一对CC引脚Configuration Channel用于检测插入方向和供电协商。当你的设备作为USB从设备UFP比如USB转串口模块时CC1和CC2必须各接一个5.1kΩ电阻下拉到GND主机端才能正确检测到设备插入然后才会打开VBUS电源输出5V。如果没有这两个下拉电阻会出现什么现象插上Type-C线后模块完全没电测量VBUS引脚电压是0V电脑也没有任何“叮咚”的插入提示。很多新手以为是芯片坏了其实是CC引脚没做下拉。具体接法很简单CC1引脚接一个5.1kΩ电阻到GNDCC2引脚再接一个5.1kΩ电阻到GND两个电阻各自独立不要共用一个除非你把两个CC脚先短接再共用一个电阻但更规范的做法是两个各接一个。电阻精度用5%的就行1%的也没问题封装一般用0402或0603靠近Type-C母座放置。我试过在某些引脚定义的Type-C母座上把CC1和CC2直接短接再通过一个5.1kΩ电阻接地这样做大多数情况下也能工作但不推荐因为Type-C规范里CC1和CC2是独立的需要分别检测插入方向。直接短接在某些支持双角色切换的主控方案上可能引起混乱规范做法还是每个CC引脚独立下拉。2.3 D/D-走线与外壳接地USB全速信号速率只有12Mbps对差分阻抗的要求没有高速USB那么严格但走线依然不能随便来。D和D-最好从Type-C母座出来后直接连到CH340N的UD和UD-尽量保持等长不要绕远路不要在线上打过孔。如果必须走两层板优先让D/D-在同一层完整走完另一层做完整的地平面。两条线之间也不要靠得太近建议间距不小于线宽的2倍避免相互串扰。同时D/D-线上不要加不必要的过孔、测试点如果实在要加测试点选择小焊盘并且避开主线。Type-C母座的外壳接地处理也直接影响抗静电能力。外壳的屏蔽脚最好直接大面积连到GND让静电有低阻抗泄放路径。如果板子设计允许Type-C母座下方铺上地铜皮并打几个过孔到背面地平面这样热插拔时的ESD能量能更快散掉。如果产品要经常在户外、工业现场拔插建议在D/D-线上并联一个ESD保护器件比如USBLC6-2或者便宜的ESD二极管阵列放在母座和CH340N之间。VBUS上也加一个TVS管到GND防止电压浪涌。自己做着玩可以省略产品化一定不要省这几十颗电容电阻的代价能避免很多售后问题。3. 完整电路设计从原理图到BOM3.1 最小系统电路拆解CH340N的最小系统外围非常简单我直接把原理图的核心连接方式描述一遍。电源Type-C母座的VBUS接到板上的5V电源网络。这个5V网络一方面给CH340N的VCC供电另一方面也可以引到排针上给外部目标板供电。GND公共地连成一片。去耦电容在CH340N的VCC引脚旁边放一个0.1μF陶瓷电容电容的一脚接VCC一脚接GND尽量靠近引脚放置。这是所有数字芯片都需要的电源去耦能让芯片工作更稳定。Type-C连接母座的DA6/B6短接后接CH340N的UDD-A7/B7短接后接CH340N的UD-。CC下拉CC1接5.1kΩ到GNDCC2接5.1kΩ到GND。串口引出CH340N的TXD接排针TXDRXD接排针RXDGND接排针GND。如果有需要也可以把VCC引到排针。这里特别说明一下CH340N不需要外接复位电路也不需要启动配置引脚UD/UD-芯片内部已经集成了USB终端电阻无需外围上拉或下拉。这一点比很多需要外部1.5kΩ上拉的全速USB设备省心得多。3.2 电平匹配与外围扩展电路串口电平匹配是整个设计里最需要动脑子的地方。CH340N的VCC如果接5VTXD输出的高电平接近5V如果VCC接3.3VTXD输出的高电平就是3.3V。RXD输入能容忍5V电平所以5V单板机直接接也没有问题。我画模块时的习惯是如果主要给3.3V MCU用就单独加一颗LDO比如ME6211或XC6206把VBUS的5V降到3.3V然后给CH340N的VCC供电。这样TXD输出是3.3V直接接ESP32、STM32的RX引脚非常安全。如果主要给5V系统用比如老式AVR、51单片机VBUS直接加滤波电容后接到VCC就行。如果想做一个“通吃”模块可以在板上留一个跳线或跳帽把VCC供电来源做成可选跳线接5V直接用VBUS跳线接3.3V用LDO输出。这样同一个模块既能调试3.3V板子也能调试5V板子。但要注意切换电平时别忘了目标板的参考电平两边电压不一致时通信容易乱码甚至损伤引脚。对于TXD/RXD指示灯这个不是必须的但调试时很有用。做法是在TXD和GND之间串一个LED和1kΩ限流电阻RXD同样处理。串口空闲时TXD是高电平LED不亮或微亮通信时电平翻转LED会闪能直观看到有没有数据在跑。注意LED方向不要接反接反了不仅不亮还可能影响信号。3.3 完整BOM表与PCB布局思路下面是一个带Type-C接口的CH340N模块的完整BOM我实际打样用的就是这套料序号器件型号/规格数量备注U1USB转串口芯片CH340N SOT23-61核心芯片J1Type-C母座16Pin 贴片带外壳脚1尽量选焊脚宽的C1陶瓷电容0.1μF 06031VCC去耦靠近引脚C2陶瓷电容10μF 08051VBUS输入滤波可选R1电阻5.1kΩ 06031CC1下拉R2电阻5.1kΩ 06031CC2下拉R3电阻1kΩ 06031LED限流D1LED0805绿色1电源指示可选P1排针2.54mm 4Pin1VCC/TXD/RXD/GNDESD1TVS管USBLC6-2或等效1D/D-保护可选PCB布局顺序我一般是这样的先把Type-C母座放在板子一端CH340N紧挨着母座放这样D/D-走线最短。CC下拉电阻放在母座和芯片之间靠近母座的CC引脚。0.1μF电容放在CH340N的VCC引脚正对面距离越近越好。排针放在板子另一端VCC、TXD、RXD、GND的顺序按习惯排列GND放边上方便夹子夹。板子层数方面2层板完全够用。顶层走信号底层大面积铺地。如果空间允许板子做成5cm以内的小长条宽度12mm左右非常便携。打样时用常规FR4、1.6mm板厚、1oz铜厚就行不需要特殊工艺。4. 焊接、驱动与调试实战4.1 SOT23-6焊接技巧很多人看到SOT23-6这种小封装就发怵其实掌握了技巧比SOP16好焊多了因为引脚少反而更容易控制。我的焊接方法是用烙铁拖焊。先在PCB的焊盘上涂一点助焊剂把CH340N按丝印方向放上去芯片的1脚要和丝印的圆点或缺口对齐。用烙铁先固定对角线的两个引脚也就是1脚和4脚焊上后芯片就不会跑了。然后在这一侧的剩下引脚上补锡用烙铁头把锡拖过去让锡均匀覆盖引脚和焊盘借助助焊剂的表面张力多余的锡会自然分开。拖完一侧再拖另一侧最后用放大镜检查有没有连锡。如果拖焊后引脚之间有锡桥不用着急加助焊剂后再用干净烙铁头拖一次锡桥就会被带走。实在搞不定可以用吸锡带把多余的锡吸掉。还有一个办法是热风枪焊接焊盘上均匀涂一层薄锡膏放上芯片热风枪温度调到300到320度风速调小对着芯片吹十几秒看到锡膏熔化、芯片微微下沉就完成了。这个方法对新手更友好但需要热风枪设备。焊完之后先用万用表蜂鸣档测一下VCC和GND是否短路再测一下UD、UD-对GND是否短路确认没有短路再上电。我第一次焊SOT23-6就遇到过VCC和GND连锡一上电芯片就发烫赶紧断电拆下来重焊从此养成了上电前必测短路的习惯。4.2 驱动安装与设备识别CH340N用的驱动和CH340系列一样官方叫CH341SER。Windows 10、Windows 11系统一般插上就自动识别不需要手动安装。老一点的Windows 7或XP需要去沁恒官网下载驱动或者用驱动精灵之类的工具装一下。Linux系统大部分发行版内核自带ch341驱动插上模块后用lsusb命令能看到一行设备信息VID是1a86PID是7523系统会在/dev目录下生成ttyUSB0节点。如果没有生成可以执行dmesg | tail看内核日志定位是枚举失败还是驱动没加载。macOS新版本对CH340的支持也越来越好大部分情况插上就能识别成USB-SERIAL CH340在终端里ls /dev/cu.*就能看到对应设备。识别之后Windows下需要看一下设备管理器里的端口号比如COM3或者COM5。如果端口号被其他程序占用可以右键属性里手动改掉。经常调试多个设备的话建议给不同模块分别设置固定的端口号省得每次插拔都要重新看。4.3 回环测试验证收发功能模块焊好、驱动装好之后别急着接目标板先做一个回环测试这一步能排除掉绝大多数硬件问题。回环测试的操作很简单用一根杜邦线把模块的TXD和RXD短接起来然后在电脑上打开串口调试助手选择对应的COM口波特率随便设一个比如115200。发送一串字符比如“hello”如果模块工作正常你会立刻在接收区收到同样的“hello”。这是因为数据从TXD发出去之后通过杜邦线直接灌进RXD芯片自己收回了自己发出去的数据形成回环。如果没有串口助手用Python也可以。装好pyserial库后运行pip install pyserial python -m serial.tools.miniterm COM3 115200打开终端窗口后输入字符能回显就说明通路没问题。回环测试通过说明USB枚举、芯片工作、TXD/RXD引脚都正常。这时候再接入目标MCU把模块的TXD接MCU的RX1模块的RXD接MCU的TX1GND接GND两边波特率设置一致就能正常通信了。如果回环都不通先别接设备回头检查焊接和CC下拉。5. 常见问题与排查速查5.1 插上电脑完全没反应这个问题的排查顺序非常重要我按照概率从高到低排列现象可能原因检查方法插上后电脑无插入提示模块无电源灯CC下拉电阻缺失或没焊好用万用表量Type-C母座CC1/CC2对地电阻应该是5.1kΩ左右同上Type-C线只有充电功能没有数据线芯换一根确定能传数据的Type-C线再试同上母座虚焊特别是D/D-补焊母座引脚用放大镜逐个确认出现“未知USB设备”或“设备描述符请求失败”D/D-接反或短路对比原理图核对D/D-走线量UD和UD-对地阻抗枚举成功但打开COM口提示被占用多个串口工具同时打开关掉所有串口助手再重试这里最坑的就是“纯充电线”。市面上很多Type-C线只接了电源和地没有D/D-或者接了但质量很差插上模块电脑完全没反应。判断方法很简单用这根线插一个标准U盘试试如果电脑读不到U盘那这根线就不能用来调试模块。5.2 DTR/RTS缺失对自动下载的影响CH340N没有DTR和RTS引脚这对STM32用户影响不大因为STM32的ISP下载只需要手动设置BOOT0到高电平再复位一下就能进入Bootloader。但对于ESP32和ESP8266用户就麻烦了。ESP32经典的一键下载电路是这样的USB转串口芯片的RTS控制EN引脚DTR控制GPIO0引脚配合三极管和电容的时序实现“自动复位并进入下载模式”。CH340N只有TXD和RXD没有RTS/DTR所以这个方案直接做不了。解决方案有几种换用CH340C或CH340E它们有RTS和DTR引脚能做经典自动下载电路。换用CH343系列芯片CH343是沁恒更新的USB转UART芯片自带DTR/RTS封装也从SOP16到QFN都有性能更强。模块上手动加两个按键一个BOOT控制GPIO0一个EN复位下载时按住BOOT再按一下EN也能进下载模式。直接用ESP32-C3或ESP32-S3这类自带USB的芯片本身就是原生USB接口不需要外部USB转串口芯片。如果你是给ESP32做开发板我个人建议直接选CH340C或者CH343而不是CH340N。CH340N虽然体积小但为了自动下载要额外加电路的话反而省不了多少事。5.3 通信乱码、丢包与稳定性优化串口通信乱码的排查点也很典型。第一步检查波特率发送端和接收端必须完全一致最好用115200、9600这类标准波特率。第二步检查共地模块和目标板之间除了TXD/RXD一定要有一根GND线连接否则电平参考点不一致数据就是乱的。第三步检查供电如果模块和目标板不是同一个电源用万用表量一下两边GND之间的电压差理论上应该是0V如果超过0.3V就要考虑改善供电。关于高波特率下的稳定性我做了一块CH340N模块在921600波特率下长时间传输压力测试发现USB线长度和Hub质量影响很大。不超过20cm的短线基本稳定但如果用了劣质USB Hub或者2米以上的延长线会出现偶发丢包。因此我的建议是模块的排针尽量短调试线尽量用带屏蔽的优质杜邦线USB线优先选1米以内的数据线。如果模块的供电纹波偏大可以在VBUS上并联一个10μF陶瓷电容然后在芯片VCC引脚对地再放一个0.1μF电容这两个电容能显著改善稳定性。虽然CH340N对电源要求不算苛刻但该给的去耦电容一定不能省。5.4 设计层面的后续优化方向如果这个模块不只是自己玩玩而是要做成小批量或产品有几点优化建议第一在VBUS输入端加自恢复保险丝额定电流500mA左右就够了防止外部短路烧坏电脑USB口。第二D/D-上加ESD/TVS管推荐USBLC6-2这颗器件专门保护USB数据线响应速度快结电容低不会影响信号。第三在Type-C母座外壳处单独铺一小块PAD通过过孔连到GND增强静电泄放。第四如果空间允许把模块的四角做成邮票孔或者加定位孔方便将来嵌进外壳。做产品的朋友还会考虑CH340N的供货和价格。这颗芯片目前货源充足零售价几块钱批量价格更低性价比非常高。京东、淘宝、立创商城都能买到尽量在正规渠道买避免买到翻新或打磨片。芯片丝印上会有型号和生产批次可以简单核对一下。我个人在产品设计上的一个建议是如果目标板电压只有3.3VCH340N的VCC就固定接3.3V不要接5V。这样TXD输出的高电平就是标准的3.3V不会给目标芯片带来任何压力。如果是给5V系统用VCC接5VRXD输入端能容忍5V整体兼容性反而更好。把这个“跟随VCC”的特性用好了CH340N几乎可以无缝对接市面上绝大多数MCU。最后再分享一个我的小习惯CH340N因为体积太小引脚间距很密打样回来我习惯先不焊排针直接飞线接Type-C母座测试确认PC能识别到COM口之后再把排针焊上。这样万一芯片本身有问题或者焊错方向拆起来损失小。另外如果是做产品而不是自己做着玩尽量把ESD和自恢复保险丝加上热插拔场景下这几十颗元件的成本能帮你省下一堆售后。CH340N本身便宜、好买、驱动成熟把外围电路做扎实它就是一块非常省心的USB转串口“小钢炮”。