1. 项目缘起与整体设计思路
1.1 为什么选沁恒CH334R做4口USB2.0 HUB
手头攒了一堆USB设备,键盘、鼠标、U盘、调试器、串口模块,每次插拔都得钻到机箱后面去摸接口,烦得很。市面上几十块的HUB不是供电拉胯就是芯片方案不明,拆开一看经常是那种连丝印都磨掉的牛屎片。索性自己画一个,方案可控、用料透明,还能顺手把彩色丝印玩一把。
选主控芯片的时候对比了几家:SL2.1A便宜但外围电路略多,FE1.1s是老牌方案但假货泛滥,GL850G性能稳但价格偏高。最后锁定沁恒的CH334R,理由很直接——这颗芯片是USB2.0全速HUB控制器,支持4个下行端口,内置5V转3.3V LDO,外围只需要一颗晶振和几个阻容就能跑起来,QFN封装体积小,最关键的是沁恒原厂资料齐全,数据手册里连参考原理图都给你画好了,对个人DIY来说省心程度拉满。
CH334R的几个核心参数值得记一下:符合USB2.0规范,支持全速12Mbps和低速1.5Mbps设备,上行端口支持全速,下行端口自动识别设备速度。内置PLL和LDO,外部只需要提供5V供电和12MHz晶振。每个下行端口都有独立的过流检测和电源控制引脚,这意味着你可以给每个口单独做过流保护,而不是四个口共用一个保险丝——这一点在实际使用中差别很大,后面会细说。
1.2 4口HUB的整体架构拆解
整个板子的功能框图其实很清晰:上行USB口从电脑取电取数据,5V进来之后分两路走,一路直接供给四个下行口的VBUS,另一路经过CH334R内置LDO稳成3.3V给芯片自身供电。数据方面,上行D+ D-差分对进芯片,芯片内部完成差分信号的一分四,分别送到四个下行口。
这里有个设计决策需要提前想清楚:总线供电还是自供电。总线供电就是完全靠电脑USB口那500mA(USB2.0标准)来带四个口,实际分下来每个口平均125mA,插个U盘还行,插移动硬盘必挂。自供电就是板子上留一个DC电源座或者Type-C供电口,外接5V电源单独给下行口供电,电脑只负责数据传输。我选的是自供电方案,板上留了一个DC-050座子,同时兼容从上行口取电的跳线选择,灵活性更高。
过流保护这块,CH334R每个下行口都有OC(Over-Current)检测引脚和PWREN(Power Enable)控制引脚。标准做法是每个口配一颗限流开关芯片,比如常用的MIC2025或者SY6280,当电流超过设定阈值时OC引脚拉低通知CH334R,芯片自动切断该口供电并上报给主机。四个口就是四颗限流芯片,成本增加不多,但安全性和稳定性提升明显。我见过不少廉价HUB四个口共用一个自恢复保险丝,一旦某个口短路,四个口全部掉电,体验极差。
1.3 彩色丝印的设计考量
彩色丝印是这次项目的另一个重点。传统PCB丝印只有白色一种颜色,顶多加上阻焊层的颜色变化(绿板、蓝板、黑板、红板)。彩色丝印工艺是在PCB表面通过多次丝印套色,实现多种颜色的图案和文字。嘉立创目前支持在阻焊层上做彩色丝印,具体是在顶层丝印层用不同颜色的油墨分次印刷。
设计彩色丝印有几个硬性约束必须提前知道:最小线宽和间距。彩色丝印的精度比普通白色丝印要低一些,一般建议线条宽度不小于0.15mm,不同颜色之间的间距不小于0.2mm,否则套色时容易糊在一起。另外彩色丝印只能放在顶层或底层,不能放在内层。图案设计上,我建议用矢量软件先画好再导入EDA工具,直接在里面画复杂图形效率太低。
我这次的设计思路是:板子正面用深蓝色阻焊打底,丝印用白、黄、红三色。白色画边框和主要标注,黄色画USB口的编号和方向箭头,红色画Logo和装饰线条。整体风格偏赛博朋克一点,但不过分花哨,保证功能标注清晰可读。这里要提醒一句:彩色丝印会增加制板费用和工期,嘉立创的彩色丝印属于特殊工艺,价格比普通丝印贵不少,打样阶段要有心理准备。
2. 原理图设计与关键元器件选型
2.1 CH334R最小系统电路
打开立创EDA专业版,新建工程,第一步就是放CH334R的原理图符号。立创EDA的元件库里有沁恒的官方符号,直接搜CH334R就能找到。如果库里的符号引脚定义和最新数据手册有出入,以数据手册为准,自己改一下符号。
CH334R的最小系统包含以下几部分:
供电部分:VDD5引脚接5V输入,旁边放一个10uF的钽电容和一个0.1uF的陶瓷电容做去耦。VDD33引脚是内部LDO的输出,接一个1uF电容到地。这里注意,VDD33不要外接负载,它只给芯片内部电路供电,带不动外部设备。
晶振部分:XI和XO引脚之间接一个12MHz的无源晶振,晶振两端各接一个20pF的电容到地。晶振的负载电容要根据晶振规格书来选,一般12MHz晶振的负载电容是12pF到20pF之间。我用的是一款常见的12MHz贴片晶振,负载电容12pF,所以外部电容选的是18pF左右,实际测试频率偏差在可接受范围内。如果对时钟精度要求高,可以用有源晶振,但成本高且占地方,USB2.0全速对时钟精度的要求没那么苛刻,无源晶振完全够用。
复位部分:CH334R内部有上电复位电路,RESET引脚接一个10k上拉电阻到3.3V,再并一个0.1uF电容到地即可。不需要额外的复位芯片。
上行端口:UD+和UD-接上行USB口的D+和D-,串联两个22欧姆的匹配电阻。这两个电阻不能省,它们用于阻抗匹配,减少信号反射。USB2.0全速模式下,差分线的特性阻抗要求是90欧姆,串联电阻配合PCB走线可以逼近这个值。
下行端口:四个下行口分别对应D1+ D1-到D4+ D4-,每个口同样串联22欧姆电阻。每个口的PWREN引脚接限流开关的使能端,OC引脚接限流开关的故障指示输出。
2.2 限流开关与过流保护设计
限流开关我选的是SY6280,这是一颗SOT23-5封装的限流开关,输入电压范围2.5V到5.5V,可编程限流值通过外部电阻设定,最大支持2A。对于USB2.0下行口来说,标准要求是每个口至少500mA,我设定限流值在1A左右,留足余量。
SY6280的典型应用电路很简单:VIN接5V,VOUT接USB口的VBUS,EN使能脚接CH334R的PWREN,ISET脚接一个电阻到地设定限流值,OC脚是开漏输出,接一个10k上拉到3.3V后连到CH334R的OC引脚。限流值计算公式是I_limit = 20.5 / R_ISET(单位A和kΩ),要设定1A的话,R_ISET取20kΩ左右。实际我用的是20kΩ,实测限流点在0.95A到1.05A之间,一致性还不错。
这里有个细节要注意:SY6280的OC引脚是开漏输出,需要上拉。上拉电压用3.3V,因为CH334R的OC引脚是3.3V电平,不能直接上拉到5V,否则可能损坏芯片。另外,OC引脚在正常工作时是高电平,故障时拉低,CH334R检测到低电平后会切断对应口的供电并上报主机。
四个口就是四颗SY6280,加上CH334R本身,板子上的有源器件就这些。成本算下来,CH334R大概两三块钱,SY6280每颗几毛钱,整体BOM成本控制在十块钱以内,比买成品HUB划算得多,而且用料自己心里有数。
2.3 USB接口与ESD防护
USB接口我选的是Type-A母座,直插式的,四个口并排放在板子一侧。选直插而不是贴片的原因是直插座子机械强度更好,插拔时不容易把焊盘拽掉。Type-A母座的封装在立创EDA库里有现成的,直接调用即可。
ESD防护这块,每个USB口的D+ D-线上都要加ESD保护器件。我选的是SRV05-4,这是一颗四通道的TVS阵列,SOT23-6封装,结电容只有1pF左右,对USB2.0全速信号影响很小。SRV05-4放在靠近USB座子的位置,走线尽量短,先过ESD器件再进芯片,这是标准做法。
VBUS线上也建议加一颗TVS,防止电源线上的浪涌。我用的是SMAJ5.0A,单向TVS,击穿电压6.4V,钳位电压9.2V,响应时间纳秒级。虽然SY6280本身有一定的过压保护能力,但多加一级防护不亏。
2.4 电源路径与跳线设计
电源部分我设计了一个三选一的跳线:可以选择从上行USB口取5V,也可以从DC座子取5V,或者从排针取5V。跳线用2.54mm间距的排针加跳线帽实现,简单可靠。DC座子选的是DC-050,内正外负,5.5mm外径2.1mm内径,这是最常见的规格。
电源路径上放了一颗SS34肖特基二极管做防反接,正向压降0.5V左右,5V进来之后变成4.5V,对USB设备来说完全在可接受范围内(USB2.0允许的VBUS范围是4.4V到5.25V)。如果对压降敏感,可以用理想二极管电路,但那就复杂了,个人DIY没必要。
每个下行口的VBUS上再放一颗0.1uF电容做高频去耦,大容量电容(100uF以上)放在电源入口处,不要每个口都放,否则上电时浪涌电流太大,可能触发电脑的过流保护。
3. PCB布局布线与彩色丝印实操
3.1 板框设计与层叠规划
板子尺寸定在80mm x 50mm,双面板,板厚1.6mm,阻焊深蓝色,字符白色加彩色。为什么选这个尺寸?四个Type-A母座并排,每个座子宽度约13.5mm,四个就是54mm,加上两侧的固定孔和边缘留白,80mm比较合适。高度方向,CH334R和限流开关占不了多少地方,主要是给彩色丝印图案留空间,50mm够用。
层叠方面,双面板就两层:顶层信号加丝印,底层走电源和地。顶层尽量走差分线和信号线,底层铺地铜。USB差分线走在顶层,参考底层地平面,这样特性阻抗比较好控制。虽然USB2.0全速对阻抗要求不像高速那么严格,但养成好习惯没坏处。
固定孔用M3的,四个角各一个,孔径3.2mm,周围留出6mm的禁布区,防止螺丝头压到走线。固定孔接地,通过过孔连接到地平面,顺便起到屏蔽作用。
3.2 差分线布线与星型接地实操
USB差分线的布线是这块板子的核心。CH334R的上行D+ D-和四个下行D+ D-都是差分对,总共五对差分线。布线规则如下:
差分对内部等长:D+和D-的长度差控制在5mil以内。全速USB的速率是12Mbps,对应波长25米,5mil(0.127mm)的长度差引入的相位差微乎其微,但这是基本要求,能做到就做到。
差分对之间间距:不同差分对之间的间距至少保持3倍线宽。线宽我设的是6mil,间距就是18mil以上。这样做的目的是减少串扰。
差分线走线宽度和间距:顶层走线,参考底层地平面,介质厚度约0.2mm(FR4的介电常数约4.4),要得到90欧姆的差分阻抗,线宽6mil、间距6mil是一个比较接近的组合。我用立创EDA自带的阻抗计算器算了一下,实际值在92欧姆左右,偏差在可接受范围内。
星型接地:这是热词里提到的重点。星型接地的核心思想是每个子电路的接地电流回路独立回到电源接地点,避免不同电路之间的地电流相互干扰。在这块板子上,我把地分成几个区域:CH334R的模拟地(晶振和PLL相关)、数字地(芯片核心和IO)、USB口的屏蔽地、电源地。这些地在板子上通过0欧姆电阻或者磁珠单点连接,最终汇聚到电源入口处的接地点。
实际操作中,我在底层铺地铜的时候,用立创EDA的“铺铜”功能,设置不同的网络和间距。CH334R底部的散热焊盘要打过孔阵列连接到地平面,既散热又提供低阻抗接地路径。晶振下方的地要单独处理,不要被数字信号污染,晶振外壳接地。
3.3 彩色丝印图案设计与导入
彩色丝印的设计流程和普通丝印不太一样。普通丝印直接在EDA里画线放文字就行,彩色丝印需要分图层、分颜色处理。嘉立创的彩色丝印工艺要求提供单独的丝印层文件,每种颜色一个层。
我的做法是:先在Inkscape里画好矢量图,导出为DXF格式,然后在立创EDA里导入DXF到对应的丝印层。立创EDA专业版支持导入DXF文件到指定层,这个功能很实用。导入的时候注意单位选择毫米,比例1:1,不要缩放。
颜色分配上,白色丝印层放功能标注和边框,黄色丝印层放USB口编号和方向指示,红色丝印层放Logo和装饰图案。每种颜色的图案要分开导入到不同的层,嘉立创下单的时候会要求你指定哪一层对应哪种颜色。
这里有个坑要提醒:彩色丝印的油墨叠加顺序会影响最终颜色。如果两种颜色的图案有重叠,后印的颜色会覆盖先印的。所以设计的时候要避免不同颜色图案重叠,如果确实需要叠加效果,要提前和板厂确认叠印顺序。我这次的设计里所有颜色都是分开的,没有重叠,省去了这个麻烦。
3.4 丝印与阻焊的配合细节
彩色丝印是印在阻焊层上面的,所以阻焊开窗的地方丝印印不上去。这意味着如果你的丝印图案正好在焊盘上,那个位置会露出焊盘而没有丝印。设计的时候要注意丝印和焊盘保持至少0.1mm的间距,否则板厂做DFM检查时会报错。
另外,彩色丝印的附着力比普通丝印稍差一些,尤其是在阻焊层边缘处。所以丝印图案不要设计得太细,最小线宽0.15mm是底线,再细的话良率会下降。我这次最细的线条是0.2mm,打样出来效果很清晰,没有断线或糊边。
还有一点:彩色丝印会增加板子厚度。每印一层油墨,厚度增加约10到15微米。三层彩色丝印加上阻焊层,总厚度增加约50微米。对于大多数应用来说这不算什么,但如果你的板子要插到很紧的插槽里,就要把这个厚度考虑进去。
4. 打样文件输出与焊接调试实录
4.1 立创EDA导出Gerber与打样下单
原理图和PCB都画完之后,下一步是导出Gerber文件。立创EDA专业版的导出路径是:文件 -> 导出 -> Gerber。导出的时候要勾选所有需要的层:顶层铜、底层铜、顶层阻焊、底层阻焊、顶层丝印、底层丝印、顶层钢网、底层钢网、板框、钻孔文件。彩色丝印的话,还要额外导出对应的彩色丝印层。
导出之后,立创EDA会生成一个压缩包,里面是各个层的Gerber文件。不要直接把这个压缩包上传到嘉立创下单,先用立创EDA自带的Gerber查看器检查一遍,确认没有缺层、没有错位。我见过有人导出时忘了勾选底层阻焊,结果板子回来底层焊盘全被阻焊盖住,焊都焊不上。
检查无误后,在嘉立创下单页面选择“PCB打样”,上传Gerber压缩包。板子参数按之前定的填:双面板、1.6mm厚、深蓝色阻焊、白色字符、彩色丝印。彩色丝印需要在特殊工艺里勾选,然后上传对应的彩色丝印层文件。嘉立创的客服会审核文件,如果有问题会打电话沟通,所以下单时留的电话要保持畅通。
4.2 BOM整理与元器件采购
BOM这块,立创EDA可以自动导出BOM表,包含位号、型号、封装、数量。导出后我习惯手动核对一遍,重点检查几个地方:CH334R的封装是不是QFN-28(不同批次的芯片封装可能有细微差别),SY6280的封装是不是SOT23-5,USB座子的封装是不是Type-A母座直插。
采购渠道上,CH334R我是在沁恒的官方渠道买的,保证正品。SY6280和阻容在立创商城配齐,一站式采购省运费。晶振、TVS、肖特基二极管这些通用器件在立创商城都有现货,价格透明。
这里分享一个经验:QFN封装的芯片尽量买编带的,不要买散装的。散装QFN芯片的引脚容易氧化变形,手工焊接时很难对准。编带的芯片取出来就是平整的,焊接成功率高很多。另外,CH334R的QFN封装底部有散热焊盘,焊接时需要热风枪从底部吹,或者用预热台加热,单纯用烙铁很难焊好。
4.3 手工焊接顺序与温度曲线
焊接顺序很重要,先焊矮的、耐热的,再焊高的、怕热的。我的顺序是:先焊CH334R和SY6280这些QFN和SOT23封装的芯片,再焊阻容,然后焊晶振和TVS,最后焊USB座子和DC座子这些大件。
CH334R的焊接是难点。QFN-28封装,引脚间距0.5mm,手工焊接需要一定的技巧。我的做法是:先用烙铁在焊盘上薄薄上一层锡,然后用镊子把芯片放上去对准,用热风枪调至280度,风量调到最小,从芯片上方均匀加热。看到锡融化后芯片自动归位,再吹几秒让底部散热焊盘的锡也融化。冷却后用放大镜检查引脚有没有连锡,有的话用烙铁加助焊剂清理。
SY6280是SOT23-5封装,相对好焊。先焊一个引脚固定,再焊其余四个。注意不要焊太久,SOT23封装的塑料本体耐温有限,烙铁停留时间不要超过3秒。
USB座子的焊接要注意:直插座子的固定脚要加足够的锡,保证机械强度。信号引脚不要焊太久,否则塑料芯会融化导致引脚移位。我一般用刀头烙铁,一次焊两个引脚,速度快。
4.4 上电测试与常见故障排查
焊接完成后,不要急着插电脑。先做目视检查,确认没有明显连锡、虚焊、元件方向错误。然后用万用表测一下5V和3.3V对地的电阻,正常应该在几百欧姆以上,如果接近0欧姆说明有短路,必须排查。
确认没有短路后,先不插上行线,只接DC电源,测3.3V输出是否正常。CH334R的VDD33引脚应该有3.3V电压,如果不对,检查LDO相关电容和芯片焊接。3.3V正常后,插上行线到电脑,电脑应该能识别到一个USB2.0 HUB设备。如果识别不到,检查晶振是否起振(用示波器看XI引脚有没有12MHz波形),检查D+ D-有没有接反。
识别到HUB之后,逐个插下行口测试。每个口插一个U盘,看电脑能不能识别。如果某个口不工作,先检查该口的限流开关使能脚电压是否正常,再检查D+ D-的串联电阻有没有焊错。我遇到过一次某个口不工作,查了半天发现是SY6280的EN脚虚焊,补焊后正常。
常见故障速查表:
| 故障现象 | 可能原因 | 排查方法 |
|---|---|---|
| 电脑完全不识别HUB | 晶振未起振、供电异常、D+ D-接反 | 测3.3V、测晶振波形、检查差分线 |
| 识别到HUB但某个口不工作 | 限流开关虚焊、OC引脚上拉缺失 | 测EN脚电压、检查上拉电阻 |
| 插设备后电脑报过流 | 限流值设定过低、VBUS短路 | 检查ISET电阻、测VBUS对地电阻 |
| 传输大文件时断连 | 电源供电不足、差分线阻抗不匹配 | 改用自供电、检查串联电阻 |
| 彩色丝印模糊不清 | 丝印线宽太细、颜色重叠 | 重新设计丝印、加大线宽和间距 |
4.5 实测性能与改进方向
板子打样回来焊好之后,我做了一轮实测。用USB电流表测每个口的输出,空载5.02V,带500mA负载时4.85V,压降主要来自肖特基二极管和SY6280的内阻。这个表现对于USB2.0设备来说完全够用。
数据传输方面,插U盘拷贝大文件,速度稳定在30MB/s左右,这是USB2.0全速的正常水平。四个口同时插U盘,互相之间没有明显干扰,说明星型接地和差分线布线起到了作用。
彩色丝印的效果超出预期,深蓝底配白黄红三色,图案清晰,颜色饱和度高,没有糊边。唯一的小遗憾是红色丝印在深蓝底上对比度稍弱,下次如果再做,红色部分会考虑换成橙色或者加白色描边。
后续改进方向有几个:一是把DC座子换成Type-C,现在Type-C线更通用;二是加一个电源指示灯,现在板子上没有电源指示,不知道有没有通电;三是把限流值从1A调到1.5A,给移动硬盘留更多余量。这些改动都不大,下一版可以一起做进去。
5. 个人实操心得与避坑建议
5.1 立创EDA使用中的几个效率技巧
立创EDA专业版用熟了之后效率很高,但有几个技巧值得分享。快捷键自定义:默认的快捷键不一定顺手,可以在设置里把常用的操作绑到自己习惯的键位上。我把“铺铜”绑到了Ctrl+G,“差分对布线”绑到了Ctrl+D,画板子的时候手不用离开键盘。
元件库管理:立创EDA的在线库很全,但有时候官方符号和实际封装有出入。我的做法是建一个自己的本地库,把常用的元件符号和封装都存进去,用的时候直接调用,不用每次都去在线库搜。特别是CH334R这种芯片,自己核对过引脚定义的符号用起来最放心。
设计规则检查:画完板子一定要跑DRC,立创EDA的DRC可以检查线宽、间距、孔径、丝印重叠等问题。我一般把DRC规则设得比板厂工艺能力稍微严一点,这样即使有偏差也能保证板厂能做出来。比如嘉立创的最小线宽是5mil,我在DRC里设6mil,留1mil余量。
5.2 彩色丝印打样的经验教训
彩色丝印这个工艺,我踩过两个坑。第一个坑是颜色数量。嘉立创的彩色丝印是按颜色数量收费的,三种颜色和四种颜色的价格差不少。我第一版设计了四种颜色,后来砍掉一种,省了一笔钱。建议设计的时候先确认板厂支持几种颜色,以及每种颜色的价格,再决定用几种。
第二个坑是丝印文件格式。我一开始导出的DXF文件在立创EDA里显示正常,但嘉立创的工程师反馈说文件里的线条有自交叉,需要修复。后来我改用SVG格式导入,问题就没了。所以如果DXF导入有问题,可以试试SVG格式。
还有一点:彩色丝印的打样周期比普通丝印长。普通丝印双面板一般三到五天,彩色丝印可能要七到十天。如果项目时间紧,要提前规划好。
5.3 关于USB HUB设计的几点忠告
做了这个项目之后,我对USB HUB设计有几点体会。第一,过流保护不能省。我见过太多廉价HUB因为省掉了限流开关,一个口短路导致整个HUB挂掉,甚至把电脑主板烧了。四颗SY6280加起来不到两块钱,这个钱不能省。
第二,差分线一定要等长。虽然USB2.0全速对时序要求不高,但等长布线是基本功,养成习惯对以后做高速板子有好处。我见过有人差分线一根走顶层一根走底层,长度差了好几毫米,结果设备时好时坏,查了半天才发现是布线问题。
第三,电源去耦要到位。CH334R的每个电源引脚旁边都要放0.1uF电容,距离越近越好。大容量电容放在电源入口,不要每个口都放。上电浪涌电流太大会触发电脑的过流保护,导致HUB反复重启。
第四,测试要全面。不要只插一个U盘测试就完事,要四个口同时插设备、插不同速度的设备、插大功率设备,各种组合都试一遍。我测试的时候发现,四个口同时插U盘拷贝数据时,如果其中一个口插的是USB3.0设备(降速到USB2.0运行),偶尔会出现枚举失败,后来在VBUS上加了100uF电容就好了。
5.4 这个项目还能怎么扩展
这个4口HUB的框架其实可以扩展出不少变体。比如把CH334R换成CH334U,支持USB2.0高速480Mbps,但外围电路会复杂一些,需要外接5V转1.8V的LDO给芯片核心供电。再比如加一个USB转串口芯片,做成带调试口的HUB,方便嵌入式开发。还可以把四个Type-A口换成Type-A加Type-C混搭,适应不同设备的接口需求。
彩色丝印这块,下次可以尝试渐变色或者半透明效果,不过要提前和板厂确认工艺能力。我了解到有些板厂支持在阻焊层上做图案,效果和彩色丝印不同,但成本更低,适合对颜色要求不高的场景。
这个板子的所有设计文件我都整理好了,原理图、PCB、BOM、Gerber都在工程里。如果你也想做一个类似的HUB,可以直接拿这个工程改,把不需要的部分删掉,换成自己的设计。立创EDA的工程文件是开放的,改起来很方便。