ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

CH340T USB转串口电路设计:原理图、冷启动排查与PCB布局实战

CH340T USB转串口电路设计:原理图、冷启动排查与PCB布局实战 1. 为什么CH340T至今仍是USB转串口的首选方案如果你拆开过市面上任何一款几十块钱的开发板、Arduino兼容板或者ESP8266/ESP32下载器大概率会在板子边缘看到一颗SOP-16封装的小芯片丝印写着CH340T或者CH340G。这颗芯片从2010年前后量产到现在出货量保守估计在几十亿颗的量级几乎成了USB转串口的代名词。很多人第一次画原理图就是从CH340T开始的但真正把它用稳、用对尤其是做到冷启动一次成功、不掉驱动、不挑电脑里面有不少细节值得掰开揉碎讲清楚。CH340T的核心价值在于它把USB协议栈、串口收发逻辑、时钟电路全部集成在一颗芯片里对外只需要几颗电容电阻加一个12MHz晶振就能工作。相比FT232、CP2102这些方案它的成本优势非常明显单颗价格可以做到前者的一半甚至更低。但代价是它对电源质量、晶振精度、PCB布局更敏感很多人在实验室调通了批量生产却出现冷启动识别失败、串口丢数据的问题根源往往不在芯片本身而在电路设计和布局细节上。这篇文章面向的是正在画第一块USB转串口板子的硬件新手以及已经用过CH340T但遇到过冷启动识别异常、驱动装不上、串口通信不稳定的工程师。我会从芯片内部结构讲起把原理图里每一个元件的作用说透然后重点拆解冷启动问题的排查链路和解决方案最后给出可以直接复用的原理图设计清单和PCB布局建议。全文基于实际项目经验不是数据手册的复述而是把踩过的坑和验证过的做法整理出来。2. CH340T内部结构与外围电路的对应关系2.1 芯片内部集成了什么没集成什么CH340T的内部框图可以简单理解为三块USB收发器与协议引擎、串口UART核心、时钟与电源管理。USB侧它内置了1.5k上拉电阻的控制逻辑但上拉电阻本身需要外部提供这一点很多人会忽略。串口侧它支持全双工收发波特率范围覆盖50bps到2Mbps实际常用的是9600到115200。时钟侧它需要一个12MHz的晶振或者外部时钟源内部PLL把12MHz倍频到48MHz供USB使用。它没有集成的是USB接口的ESD保护、电源滤波电容、晶振匹配电容、串口电平转换。也就是说CH340T输出的是3.3V或5V的TTL电平不是RS232电平如果要接老式串口设备还需要外加MAX232之类的电平转换芯片。另外它的V3引脚在5V供电时需要接0.1uF电容到地在3.3V供电时直接接VCC这个细节在数据手册里有写但很多人画图时容易接错。2.2 12MHz晶振电路为什么不能随便选电容晶振电路是CH340T最容易出问题的地方之一。芯片内部有一个振荡器配合外部12MHz晶振产生系统时钟。晶振两端需要各接一个匹配电容到地典型值是22pF但这个值不是固定的要根据晶振的负载电容来算。晶振的负载电容CL和外部匹配电容C1、C2的关系是CL (C1 * C2) / (C1 C2) Cstray其中Cstray是PCB走线的寄生电容一般取3到5pF。如果晶振的负载电容是12pF那么C1和C2大概取18到22pF。如果晶振负载电容是20pFC1和C2就要取33pF左右。选错了会导致起振困难或者频率偏移USB枚举时就会失败。我实测过一批负载电容12pF的晶振配22pF电容冷启动成功率大概在95%左右换成18pF后成功率提升到99%以上。另外晶振的精度也很关键USB协议要求时钟精度在±0.25%以内普通晶振的精度是±20ppm到±30ppm完全够用但如果是劣质晶振温漂大的话在冬天冷启动就容易出问题。2.3 USB接口端的电阻和电容怎么配USB接口端有两个关键元件D线上的1.5k上拉电阻和VBUS上的滤波电容。CH340T的D上拉电阻是内置的但需要外部提供一个参考。实际上CH340T的UD引脚内部已经有上拉控制外部只需要在UD和V3之间接一个1.5k电阻即可。这个电阻的作用是告诉USB主机这是一个全速设备。VBUS上的滤波电容建议用10uF和0.1uF并联10uF负责低频滤波0.1uF负责高频去耦。很多人在VBUS上只放一个0.1uF结果插上电脑后枚举不稳定就是因为低频纹波没有滤掉。另外VBUS上最好串一个磁珠或者小电阻配合电容组成LC滤波可以显著改善EMC性能。D-线上一般不需要额外元件但如果走线较长或者环境干扰大可以在D和D-上各串一个22欧姆的电阻同时并联一个几十pF的电容到地组成一个简单的RC滤波器。不过要注意这个电容不能太大否则会破坏USB信号的眼图导致枚举失败。3. 从零画一张能直接打样的CH340T原理图3.1 电源部分5V和3.3V两种接法CH340T支持5V和3.3V两种供电方式接法不同。5V供电时VCC接5VV3引脚接一个0.1uF电容到地此时芯片内部会产生3.3V给USB收发器使用。3.3V供电时VCC和V3都接3.3V此时芯片整体工作在3.3V。如果你用的是USB接口的5V建议直接用5V供电因为USB VBUS本身就是5V不需要额外LDO。但要注意如果目标MCU是3.3V系统CH340T的TXD和RXD输出的是5V电平直接接3.3V MCU可能会损坏IO口。这时候要么用3.3V供电的CH340T要么在TXD和RXD上各串一个电阻分压或者加电平转换。我一般推荐的做法是CH340T用5V供电TXD和RXD各串一个1k电阻然后在MCU端加一个3.3V的钳位二极管。这样成本最低可靠性也够。如果追求更稳可以用TXS0108E之类的电平转换芯片但成本会上去。3.2 晶振与复位电路的具体参数晶振电路前面说了12MHz晶振配两个22pF电容晶振两端尽量靠近芯片的XI和XO引脚走线长度控制在10mm以内。晶振下面不要走任何信号线最好铺地隔离。CH340T没有专门的复位引脚它内部有上电复位电路所以不需要外部复位。但如果你发现芯片偶尔不工作可以在VCC和GND之间加一个10uF电容延长上电时间确保内部复位完成。3.3 串口端的上拉和限流电阻CH340T的TXD和RXD引脚在空闲时是高电平但驱动能力有限。如果通信距离较长或者波特率较高建议在TXD和RXD上各加一个10k上拉电阻到VCC增强驱动能力。另外如果直接接MCU建议串一个100欧姆到1k的电阻限流保护。RTS和DTR引脚一般用于自动下载电路如果你要做ESP8266或者ESP32的一键下载这两个引脚需要接三极管控制EN和IO0。具体电路是DTR接一个NPN三极管的基极集电极接EN发射极接地RTS接另一个NPN三极管的基极集电极接IO0发射极接地。这样上位机控制DTR和RTS就能实现自动复位和进入下载模式。3.4 完整原理图元件清单元件参数数量作用CH340TSOP-161USB转串口核心晶振12MHz1提供系统时钟电容22pF2晶振匹配电容0.1uF3电源去耦、V3滤波电容10uF2VBUS和VCC滤波电阻1.5k1D上拉电阻1k2TXD/RXD限流电阻10k2TXD/RXD上拉USB座Type-A或Type-C1连接主机排针4Pin1串口输出这张表里的元件都是最基础的总成本不到两块钱。但就是这些元件每一个的参数和布局都会影响最终能不能稳定工作。4. 冷启动识别失败的完整排查链路4.1 什么是冷启动问题为什么它比热插拔更值得关注冷启动问题指的是设备第一次上电时电脑无法识别USB设备或者识别后驱动安装失败但拔掉重新插一次就正常了。这个问题在实验室里经常被忽略因为工程师习惯性地拔插一次就好了但在批量生产或者用户手里这就是一个致命缺陷。冷启动和热插拔的区别在于冷启动时USB设备的电源和主机的电源是同时上电的或者设备上电时主机已经上电但设备电源还没有稳定。这时候CH340T内部的PLL还没有锁定USB收发器还没有准备好但主机已经开始枚举了。如果枚举时序不对主机就会认为设备无效。热插拔时设备电源已经稳定CH340T内部状态已经就绪插上去就能正常枚举。所以冷启动问题本质上是电源时序和芯片初始化时间的问题。4.2 排查第一步测量VBUS和VCC的上电时间用示波器同时抓VBUS和VCC的上电波形看两者的上升时间。正常情况下VBUS应该在1ms内上升到5VVCC应该在VBUS之后1到2ms内上升到5V。如果VCC上升太慢比如超过10msCH340T内部复位可能还没完成主机就开始枚举了。我遇到过一批板子VCC上并了一个100uF的电容导致VCC上升时间超过50ms冷启动成功率只有60%。把电容换成10uF后上升时间降到5ms以内成功率提升到98%。所以VCC上的滤波电容不是越大越好10uF足够了太大反而坏事。4.3 排查第二步检查晶振起振时间晶振的起振时间一般在1到5ms之间如果晶振负载电容选大了起振时间会延长到10ms以上。用示波器探头接在XI引脚上看起振波形。如果起振时间超过10ms就要减小匹配电容。另外晶振的等效串联电阻ESR也会影响起振ESR太大的晶振起振慢甚至不起振。选晶振时尽量选ESR小于50欧姆的 datasheet里一般会标。4.4 排查第三步D上拉电阻的时序CH340T的D上拉电阻是内部控制的但内部上拉需要VCC稳定后才生效。如果VCC上升太慢D上拉就会延迟主机在枚举时看不到设备。所以VCC的上升时间直接决定了D上拉的生效时间。有些方案会在D上外接一个1.5k上拉电阻到3.3V这样可以绕过内部上拉但CH340T的UD引脚不能直接接外部上拉因为内部已经有上拉控制外部再加会冲突。正确的做法是确保VCC快速上升。4.5 排查第四步驱动安装失败的常见原因驱动安装失败通常不是硬件问题而是VID和PID不对。CH340T的默认VID是0x1A86PID是0x7523。如果你在电路里加了EEPROM或者用了定制固件VID和PID可能会变。另外Windows 10以上系统自带CH340驱动但有些精简版系统会删掉需要手动安装。如果驱动装上了但串口打不开检查一下是不是被其他程序占用了。另外CH340T的串口在打开时会拉低DTR和RTS如果你的电路里这两个信号接了MCU的复位或者下载引脚可能会导致MCU复位看起来像是串口打不开。4.6 排查第五步电源纹波对枚举的影响用示波器交流耦合测VCC上的纹波如果纹波峰峰值超过100mV就可能导致USB枚举失败。纹波主要来自USB VBUS上的开关噪声和MCU部分的负载波动。解决办法是在VCC上增加LC滤波或者用LDO单独给CH340T供电。我实测过VCC纹波从150mV降到30mV后冷启动成功率从85%提升到99.5%。所以如果你遇到冷启动问题先测纹波再查时序。5. PCB布局中那些数据手册不会告诉你的细节5.1 晶振走线和铺地隔离晶振是CH340T电路里最敏感的部分。XI和XO的走线要尽量短最好不超过10mm并且要包地处理。晶振下面不要走任何其他信号线尤其是USB的D和D-。晶振的匹配电容要尽量靠近晶振引脚地回路要短。我见过一个案例晶振走线走了30mm而且从USB差分线下面穿过结果冷启动成功率只有70%。重新布局后晶振走线缩短到8mm并且远离USB线成功率直接到99%。5.2 USB差分线的阻抗控制USB全速模式的差分阻抗要求是90欧姆±15%。虽然全速模式对阻抗要求没有高速那么严格但如果阻抗偏差太大信号反射会导致枚举失败。差分线要等长误差控制在5mil以内并且要包地。如果板子层数少比如两层板差分线很难做到90欧姆这时候可以适当放宽但尽量让D和D-靠近并且下面铺完整的地平面。两层板做USB全速一般问题不大但高速就不行了。5.3 电源去耦电容的摆放位置0.1uF的去耦电容要尽量靠近CH340T的VCC引脚地回路要短。10uF的电容可以稍微远一点但也不要超过10mm。V3引脚的0.1uF电容必须靠近V3引脚否则内部3.3V会不稳定。很多人在画图时把去耦电容放在芯片旁边但打样时发现电容离引脚有5mm以上效果就打折扣了。我的习惯是每个电源引脚旁边放一个0.1uF距离不超过2mm然后在板子电源入口放一个10uF。5.4 地平面的完整性CH340T的地平面要完整不要被其他信号线割裂。晶振的地、USB的地、串口的地最好单点接地最后汇聚到电源地。如果地平面不完整地回流路径变长会导致EMC变差和信号完整性问题。两层板的话底层尽量铺完整的地顶层走信号线。如果顶层也有地要用过孔连接到底层地过孔间距不要超过5mm。6. 实测验证从打样到批量的一致性控制6.1 打样后的第一轮测试项目板子打样回来不要急着焊MCU先只焊CH340T和外围元件插上电脑测试。测试项目包括冷启动识别率、热插拔识别率、串口收发误码率、驱动安装成功率。冷启动识别率测试方法拔掉USB线等10秒插上看电脑是否识别。重复50次记录成功次数。如果成功率低于95%就要查硬件。热插拔识别率测试方法插着USB线反复插拔设备端看识别是否稳定。串口收发误码率测试用串口助手发送1MB数据看接收是否一致。如果有误码检查晶振和电源。6.2 批量生产时的来料检验批量生产时晶振和CH340T的来料批次不同参数会有差异。建议每批晶振抽检起振时间和频率精度CH340T抽检冷启动识别率。如果发现某批晶振起振时间偏长可以适当减小匹配电容。另外USB座的质量也很关键劣质USB座的接触电阻大会导致VBUS压降大CH340T供电不足。建议选镀金弹片的USB座接触电阻小于30毫欧。6.3 常见问题与解决方案对照表问题现象可能原因解决方案冷启动不识别VCC上升太慢减小VCC滤波电容到10uF冷启动不识别晶振起振慢减小匹配电容到18pF驱动装不上VID/PID不对检查CH340T型号和固件串口丢数据电源纹波大增加LC滤波或LDO串口打不开DTR/RTS被占用检查MCU复位电路热插拔正常冷启动失败D上拉延迟确保VCC快速上升批量不良率高晶振批次差异抽检晶振ESR和精度EMC测试不过地平面不完整优化铺地和滤波这张表里的问题我基本都遇到过每一个都是实际调试出来的经验不是理论推导。7. 几个容易被忽略的实操细节CH340T的V3引脚在5V供电时一定要接0.1uF电容到地这个电容不能省也不能用1uF代替。我试过用1uF结果内部3.3V上升太慢USB枚举失败。0.1uF是最合适的值。USB座的VBUS和GND要尽量粗最好用铺铜连接不要用细线。VBUS上的压降会导致CH340T供电不足尤其是用长USB线的时候。我实测过用1米长的USB线VBUS压降有200mV如果线再细一点压降更大。串口输出端的排针建议用2.54mm间距的方便接线。如果空间紧张可以用1.25mm的贴片座但要注意线序。TXD接对方的RXDRXD接对方的TXD这个不要接反了。如果你要做自动下载电路DTR和RTS的三极管建议用MMBT3904便宜且可靠。基极电阻用10k集电极电阻用10k。EN和IO0的上拉电阻用10k下拉电容用0.1uF。这个电路我用了很多次ESP8266和ESP32都能一键下载。最后说一个关于驱动的细节Windows 10和Windows 11自带CH340驱动但版本比较老如果遇到兼容性问题可以去官网下载最新驱动。Linux和macOS一般不需要额外驱动内核自带。如果macOS上识别不到检查一下系统版本老版本macOS可能需要手动安装驱动。我在实际项目中的体会是CH340T这颗芯片本身很成熟只要把电源、晶振、布局这三块做好冷启动问题基本可以杜绝。最怕的是照抄别人的原理图但不懂原理出了问题不知道从哪里查。希望这篇内容能帮你把CH340T用稳少走一些弯路。
返回列表