ARTICLE DETAIL

资讯详情

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

CH334R四口USB HUB DIY:立创EDA画板+3D打印外壳全流程

CH334R四口USB HUB DIY:立创EDA画板+3D打印外壳全流程 1. 项目缘起与整体设计思路桌面上USB口永远不够用这件事大概每个折腾硬件的人都深有体会。键盘、鼠标、调试器、串口模块、烧录器、移动硬盘随便一插就满了低头一看机箱后面还藏着一堆线。市售的USB HUB拆开看方案五花八门有的用FE1.1s有的用GL850G便宜是便宜但总感觉少了点“自己动手”的乐趣。这次我选的是CH334R这颗芯片配合立创EDA画板子最后再给它做一个3D打印外壳从电路到结构全部自己搞定。CH334R是沁恒微电子推出的一款USB 2.0四口HUB控制器QFN28封装支持MTT模式每个下游端口都能独立进行事务翻译这点比很多单TT方案要厚道。它内置了5V转3.3V的LDO外围器件很少基本上一个12MHz晶振加几个电容电阻就能跑起来。选它的理由很直接一是国产芯片供货稳定二是立创商城有现货三是封装不算太变态QFN28虽然需要点焊接功底但比起BGA已经友好太多了。整个项目的目标很明确做一个四口USB 2.0 HUB上行端口用Type-C或者Type-A都行下行四个Type-A口每个口配一个独立的过流保护LED指示灯必须有最好还能支持外部供电切换。外壳方面用3D打印做一个上下盖结构卡扣或者螺丝固定都可以关键是USB口的位置要精准不能出现插不进去或者歪斜的情况。这个项目适合谁呢如果你已经会用立创EDA画简单的双层板能看懂基本的原理图会一点焊接那就可以直接上手。如果你完全没画过PCB也没关系我会把每一步都拆开讲包括布线的时候怎么处理差分对、星型接地怎么接、3D打印外壳的尺寸怎么留公差。整个流程走下来大概需要两三个晚上成本控制在五十块钱以内。提示CH334R有两个版本CH334R和CH334L前者是QFN28后者是SOP16。SOP16焊接更容易但引脚功能少一些不支持外部供电切换。如果你对自己的焊接技术没信心可以先从CH334L开始练手。2. 核心器件选型与原理图设计要点2.1 CH334R最小系统与外围电路CH334R的引脚不算多但有几个地方容易踩坑。先看供电芯片的VDD5引脚接USB 5V输入VDD33是内部LDO的输出需要外接一个1uF到10uF的电容做滤波。注意VDD33不能给外部负载供电它只是内部逻辑和PLL的电源电流能力很有限。如果你需要给下游端口提供大电流必须用外部电源或者从上行端口直接取电。晶振部分CH334R支持12MHz无源晶振负载电容建议用两个22pF但实际调试的时候发现有些晶振用15pF更稳。我的做法是先用22pF如果发现枚举不稳定或者频繁掉线再换成15pF试试。晶振的走线要尽量短最好包地处理不然容易干扰USB信号。复位电路很简单一个10k上拉电阻加一个100nF电容到地复位引脚是低电平有效。LED指示灯方面CH334R有四个下游端口的LED驱动引脚可以直接接LED到3.3V但要注意限流电阻的计算。假设LED压降是2V电流取5mA那么限流电阻就是(3.3-2)/0.005260欧姆取270欧姆或者300欧姆都可以。过流保护这块我用了四个自恢复保险丝型号是MF-MSMF050保持电流0.5A跳闸电流1A。每个下游端口的VBUS线上串一个然后接到CH334R的过流检测引脚。注意过流检测引脚是低电平有效所以需要配合上拉电阻使用。如果你不想用自恢复保险丝也可以用普通的限流开关芯片比如MIC2025但成本会高一些。2.2 上行端口与供电切换设计上行端口我选了Type-C因为现在笔记本和台式机都开始普及Type-C了。Type-C座子用16Pin的只接USB 2.0的D和D-CC引脚各接一个5.1k下拉电阻到地这样主机就能识别到设备插入。VBUS直接接5V不需要PD协议因为HUB本身不耗电下游端口的电流也是从上行端口取的。供电切换这部分我加了一个DC-DC插座型号是DC-005内正外负。当外部电源插入时通过一个PMOS管自动切断上行端口的5V改用外部电源供电。PMOS选的是AO3401导通电阻只有50毫欧压降很小。栅极通过一个10k电阻上拉到外部5V当外部电源存在时栅极是高电平PMOS关断当外部电源拔掉时栅极被下拉到地PMOS导通上行端口的5V就能通过。这个电路的好处是你不需要手动拨开关插上外部电源就自动切换。但要注意外部电源的电压不能超过5.5V否则可能损坏CH334R。另外如果外部电源和上行端口同时供电PMOS的体二极管可能会让电流倒灌所以最好在PMOS的源极和漏极之间加一个肖特基二极管做保护。2.3 立创EDA原理图绘制与元件库管理立创EDA专业版的元件库很全CH334R可以直接搜到但要注意封装是不是QFN28。我一般会先确认立创商城的库存和封装然后在EDA里搜索对应的元件。如果找不到可以自己画一个QFN28的焊盘尺寸是0.5mm间距焊盘宽度0.3mm长度0.8mm中间散热焊盘是3.2mm x 3.2mm。画原理图的时候我习惯把功能模块分开比如电源部分、晶振部分、USB下行部分、LED指示部分每个模块用框线隔开。这样检查的时候不容易漏掉。网络标签要统一命名比如VBUS_5V、GND、USB_DP1、USB_DM1不要用自动生成的网络名不然PCB布线的时候会乱。注意立创EDA专业版和标准版的元件库不通用如果你用的是专业版导入标准版的工程可能会丢失元件。建议一开始就选定一个版本不要中途切换。3. PCB布局布线与星型接地实操3.1 双层板布局规划与差分对走线PCB我画的是双层板尺寸是45mm x 35mm刚好能放下四个Type-A口和一个Type-C口。布局的时候CH334R放在板子中间偏上晶振紧挨着芯片的XI和XO引脚走线长度不超过5mm。四个下行Type-A口放在板子下边缘间距15mm这样插拔的时候不会互相干扰。差分对走线是USB 2.0的关键。D和D-的线宽我设的是0.2mm间距0.15mm尽量保持等长。如果实在做不到等长误差控制在5mil以内。差分对不要走过孔如果必须换层要在过孔旁边加地过孔提供回流路径。上行端口的差分对从Type-C座子出来直接走到CH334R的DPU和DMU引脚中间不要经过任何其他信号。下行端口的差分对从芯片出来分别走到四个Type-A座子。这里有个细节CH334R的四个下行端口差分对是分开的不要为了省事把D和D-并联在一起那样会导致信号反射枚举失败。每个端口的差分对要独立走线间距至少3倍线宽避免串扰。3.2 星型接地与电源平面处理星型接地这个说法在USB HUB这种混合信号电路里特别重要。我的做法是把CH334R的GND引脚、晶振的负载电容地、USB座子的屏蔽地分别用独立的走线连接到板子中间的一个接地点这个接地点再通过一个0欧姆电阻或者磁珠连接到总地。这样做的目的是防止数字地和模拟地之间的噪声互相干扰。电源部分5V的走线要尽量粗我用的线宽是0.5mm能过1A左右的电流。3.3V的走线可以细一点0.3mm就够了。每个电源引脚旁边都要放一个100nF的退耦电容尽量靠近引脚走线先经过电容再到引脚。CH334R的VDD33引脚旁边我放了两个电容一个1uF一个100nF并联使用。地平面方面底层尽量铺完整的地铜不要被信号线割裂。如果实在避不开可以在割裂的地方加缝合过孔把上下两层地连起来。USB座子的金属外壳要接到地但不要直接接到信号地最好通过一个1M电阻和一个1000pF电容并联到地这样既能泄放静电又不会引入低频噪声。3.3 过流保护与LED指示布线细节过流保护的自恢复保险丝放在Type-A座子的VBUS线上尽量靠近座子。保险丝后面接一个0.1欧姆的采样电阻然后接到CH334R的过流检测引脚。采样电阻的走线要开尔文连接也就是从电阻的两端分别引线到芯片不要从电阻的焊盘中间引线不然采样精度会受影响。LED指示灯放在板子边缘方便观察。每个LED的限流电阻放在LED和CH334R之间不要放在LED和地之间因为CH334R的LED驱动引脚是开漏输出低电平有效。如果你把电阻放在LED和地之间LED会一直亮因为开漏输出低电平的时候电流会从3.3V经过LED和电阻到地但开漏输出高电平的时候LED也会通过电阻到地形成回路虽然电流很小但LED会微亮。实操心得立创EDA的DRC检查一定要跑特别是差分对的等长检查和间距检查。我一开始忘了设置差分对规则结果DRC报了一堆错后来在规则里添加了差分对把D和D-设为一组才通过检查。4. 焊接调试与3D打印外壳制作4.1 QFN28焊接与上电测试流程QFN28的焊接是第一个难点。我的做法是先用烙铁在焊盘上镀一层薄锡注意不要太多不然芯片放上去会浮起来。然后把芯片对准位置放好用热风枪调至280度风量调到最小对着芯片周围吹看到锡融化后用镊子轻轻按压芯片让引脚和焊盘充分接触。冷却后用放大镜检查有没有虚焊或者连锡。上电之前先用万用表测一下5V和3.3V之间有没有短路。如果没有短路再插上USB线测3.3V输出是否正常。如果3.3V正常但电脑没有识别到HUB先检查晶振有没有起振。可以用示波器测XI引脚应该有12MHz的正弦波幅度大概1V左右。如果没有起振检查负载电容和晶振本身。如果电脑识别到了HUB但下游端口不能用先检查过流检测引脚的电平。正常应该是高电平如果被拉低了说明保险丝跳闸了或者采样电阻焊错了。另外CH334R的配置引脚也要检查比如MTT模式和STT模式的选择如果配置错了下游端口可能只能工作在USB 1.1模式。4.2 3D打印外壳建模与公差控制外壳我用的是Fusion 360建模上下盖结构四个角用M3螺丝固定。内部尺寸比PCB大0.5mm也就是45.5mm x 35.5mm这样PCB放进去不会太紧。USB口的位置要留出足够的空间Type-A口的开口尺寸是13.5mm x 6.5mm比标准USB口稍微大一点方便插拔。Type-C口的开口是9mm x 3.5mm。打印的时候我用的材料是PETG层高0.2mm填充20%壁厚1.2mm。PETG的韧性比PLA好不容易开裂。打印温度230度热床80度速度50mm/s。如果打印出来的外壳有毛刺可以用砂纸打磨一下特别是USB口的边缘不然会刮伤线缆。公差方面螺丝孔我留的是3.2mmM3螺丝能轻松穿过。上下盖的配合面留了0.2mm的间隙这样合起来不会太紧。如果打印精度不够可以把间隙放大到0.3mm。卡扣结构我试过但PETG的弹性不如ABS卡扣容易断所以最后还是用了螺丝。4.3 整机装配与性能实测装配的时候先把PCB固定在下盖上用M3螺丝拧紧。然后把上盖盖上拧上螺丝。注意USB座子的金属外壳要和外壳的开口对齐如果歪了插线的时候会很难受。我一开始没注意结果Type-C口偏了1mm插线的时候要用力才能插进去后来重新打印了一个上盖才解决。性能测试方面我用CrystalDiskMark测了一下移动硬盘的读写速度。直接插在电脑上读取速度是120MB/s写入是80MB/s。通过HUB之后读取速度是118MB/s写入是78MB/s几乎没损失。这说明CH334R的MTT模式确实有用每个端口都能独立进行事务翻译不会因为一个端口传大文件而影响其他端口。另外我同时插了四个设备键盘、鼠标、U盘、移动硬盘都能正常识别。移动硬盘拷贝文件的时候键盘和鼠标也没有出现卡顿。这说明过流保护和电源设计是合理的没有出现供电不足的情况。常见问题如果HUB插上电脑后电脑提示“USB端口电涌”说明下游端口的电流超过了500mA。检查一下是不是某个端口的保险丝选小了或者采样电阻焊错了。另外如果HUB发热严重检查一下CH334R的散热焊盘有没有焊好QFN28的散热焊盘必须接地不然芯片会过热。5. 常见问题排查与独家避坑经验5.1 枚举失败与信号完整性排查枚举失败是USB HUB最常见的故障。如果电脑完全没反应先检查上行端口的D和D-有没有接反。CH334R的DPU和DMU引脚DPU接DDMU接D-不要搞混。如果接反了电脑会识别到一个未知设备但不会识别成HUB。如果电脑识别到了HUB但提示“设备描述符请求失败”通常是晶振的问题。CH334R对晶振的要求比较高负载电容不匹配会导致频率偏移从而影响USB通信。我的经验是先用22pF如果不行就换15pF再不行就换晶振品牌。我试过几种晶振最后发现某国产晶振用15pF最稳。信号完整性方面差分对的阻抗要控制在90欧姆左右。双层板的话线宽0.2mm间距0.15mm介质厚度1.6mm算下来阻抗大概是85欧姆稍微偏低但实测能用。如果你用的是四层板可以把差分对走在内层参考平面完整阻抗更容易控制。5.2 供电不足与过热问题处理供电不足的表现是插上移动硬盘后硬盘反复重启或者电脑提示“USB端口电涌”。先测一下上行端口的5V电压如果低于4.75V说明线缆压降太大换一根短一点的粗线试试。如果电压正常但下游端口带不动负载检查保险丝的保持电流是不是太小了。我用的0.5A保险丝带移动硬盘没问题但如果你要带两个移动硬盘建议换成1A的。过热问题CH334R在满负载的时候会有点温热但不应该烫手。如果烫手说明散热焊盘没焊好或者芯片内部短路了。QFN28的散热焊盘必须接地而且要在焊盘上打几个过孔把热量传到背面。我打了9个过孔孔径0.3mm间距1mm散热效果很好。5.3 3D打印外壳装配问题速查问题现象可能原因解决方法USB口插不进去开口尺寸偏小把开口放大0.5mm上下盖合不拢配合面有毛刺用砂纸打磨配合面螺丝孔滑丝螺丝孔太小把螺丝孔放大到3.4mm外壳开裂填充率太低把填充率提高到30%PCB晃动内部尺寸太大在内部加几条加强筋独家避坑3D打印外壳的时候不要一次性打印上下盖先打印下盖把PCB放进去试一下确认尺寸没问题再打印上盖。我一开始两个一起打印结果下盖尺寸偏小PCB放不进去上盖也白打印了浪费了两个小时。6. 项目扩展与个人实操体会这个HUB做完之后我又想了想还能怎么改。一个是把Type-A口换成Type-C口现在很多设备都是C口了四个C口的HUB会更实用。但CH334R只支持USB 2.0C口的话只能跑480Mbps如果你想要USB 3.0得换芯片比如GL3510或者VL817但那些芯片是QFN64或者QFN76焊接难度更大PCB也要四层板。另一个扩展方向是加一个SD卡读卡器用GL823K或者GL827L通过USB HUB的下行端口接进去。这样HUB和读卡器二合一桌面会更整洁。但要注意读卡器的差分对也要独立走线不能和HUB的下行端口共用。我个人在实际操作中的体会是CH334R这颗芯片很适合入门外围简单成本低性能也够用。立创EDA画这种双层板完全没问题元件库全DRC检查也够用。3D打印外壳这块PETG比PLA更适合做这种需要一定韧性的结构件但打印精度要调好不然公差很难控制。最后再分享一个小技巧如果你没有热风枪可以用烙铁加锡膏来焊QFN28。先在焊盘上涂一层锡膏把芯片放上去然后用烙铁在芯片边缘来回加热锡膏融化后会自动吸附到引脚上。这个方法需要一点练习但成功率不低。焊完之后一定要用放大镜检查确保没有连锡。
返回列表