ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

基于CH334R的四口USB2.0 HUB设计:从原理图到PCB的实战指南

基于CH334R的四口USB2.0 HUB设计:从原理图到PCB的实战指南 1. 为什么我选CH334R来做这个4口USB2.0 HUB手里攒了一堆USB设备键盘、鼠标、U盘、调试器、串口模块每次插拔都得钻到机箱后面去摸接口烦得很。市面上几十块钱的HUB不是供电拉胯就是芯片方案不明拆开一看里面就一颗打磨掉丝印的芯片加几个电容用久了还发热掉盘。索性自己画一块方案选型上我盯上了沁恒的CH334R。这颗芯片吸引我的地方很直接四口USB2.0 HUB控制器单芯片集成支持MTT模式外围元件极少。对比常见的GL850G、SL2.1A这些方案CH334R的datasheet给得很清楚QFN28封装5V单电源供电内置3.3V和1.8V LDO连晶振都省了——它用的是内置振荡器只需要在指定引脚接一颗12MHz晶振或者直接走内部时钟。我实际画板的时候选了外置12MHz晶振方案因为手头正好有库存而且外置晶振在长时间跑满四口的时候稳定性更让人放心。选它还有一个很现实的原因立创EDA的元件库里直接有CH334R的符号和封装不用自己从零画。对于我这种懒得翻手册对引脚的人来说省了至少半小时的建库时间。当然封装我还是核对了一遍QFN28的焊盘尺寸和datasheet上的推荐值一致立创库里的版本没问题。这个项目的目标很明确做一块四口USB2.0 HUB板上行口用Type-C或者Type-B下行四个Type-A口每个口配一个电源指示灯板子要能塞进一个3D打印的小壳子里。另外我想试试立创EDA的彩色丝印功能把板子做得好看一点毕竟是自己用的东西颜值也是生产力。适合谁来参考这篇内容如果你已经会画简单的双层板想进阶练一下USB差分走线、星型接地、电源路径规划或者你单纯想搞一块靠谱的HUB自己用这篇应该能帮上忙。如果你连立创EDA都没打开过建议先去看一遍官方的入门教程把原理图绘制和PCB基本操作过一遍再回来。2. CH334R的外围电路到底该怎么搭2.1 电源架构5V进来之后怎么分CH334R的供电设计是整个板子最核心的部分。上行口进来的5V VBUS不能直接怼到芯片VDD上中间要经过一些处理。我的方案是这样的上行VBUS 5V→ 自恢复保险丝0.5A→ 肖特基二极管SS34→ 芯片VDD和下行口VBUS芯片内部LDO输出3.3V和1.8V分别给USB PHY和核心逻辑供电每个下行口的VBUS单独走一条线从主5V轨分出去每个口配一个限流开关这里有个细节很多人会忽略CH334R的VDD引脚需要接一个10uF的钽电容加一个0.1uF的陶瓷电容而且这两个电容要尽量靠近引脚放置。我第一版的时候把10uF放在了板子另一头结果跑满四口的时候偶尔会掉盘后来挪到芯片旁边就再也没出现过。datasheet上虽然只写了建议靠近放置但实测下来这个靠近是真的要近最好在5mm以内。自恢复保险丝我选的是0.5A的因为四个口加起来理论上最大电流是4×500mA2A但实际使用中很少四个口同时跑满。保险丝的作用是防止某个口短路把整个板子烧了0.5A对于大多数场景够用。如果你要带移动硬盘这种大电流设备建议换成1A的但要注意上行口的供电能力。肖特基二极管SS34的作用是防止电流倒灌。有些电脑的USB口在关机后还会输出一点电压或者你从外部电源给HUB供电的时候电流可能会倒灌回电脑。加一个二极管虽然会损失0.3V左右的压降但安全第一。如果你对压降很敏感可以用理想二极管电路但那就复杂了没必要。2.2 晶振电路外置还是内置CH334R支持内置振荡器也就是说你可以不接晶振芯片自己就能跑。但我还是选了外置12MHz晶振原因有两个第一内置振荡器的精度受温度和电源波动影响较大。USB2.0对时钟精度的要求是±500ppm内置振荡器在常温下没问题但夏天板子发热之后可能会飘。外置晶振的精度通常在±20ppm以内稳得多。第二外置晶振的电路也不复杂。一颗12MHz的无源晶振两颗22pF的负载电容再加一颗1MΩ的反馈电阻就这四样东西。负载电容的值要根据晶振的规格来选我用的晶振负载电容是12pF所以实际用的电容是22pF左右因为PCB上还有寄生电容。如果你不确定直接用22pF通常也能起振但最好还是按晶振手册来。晶振的布局也有讲究晶振和负载电容要尽量靠近芯片的XI和XO引脚走线要短且对称。我见过有人把晶振放在板子边缘走线拉了2cm结果USB枚举都过不了。晶振下面最好不要走其他信号线尤其是差分线避免耦合干扰。2.3 下行口的限流与保护每个下行口的VBUS我用了限流开关芯片型号是常用的MIC2025或者同类的。这个芯片的作用是当某个口电流超过设定值时自动切断输出保护主板和HUB本身。设定电流通过一个电阻来调我设的是1A左右足够带大多数设备又不会因为瞬间浪涌误触发。限流开关的使能引脚可以接到CH334R的对应控制引脚上也可以直接拉高一直使能。我选了直接拉高因为CH334R的端口控制功能需要额外的GPIO或者I2C配置对于这种简单HUB来说没必要。直接使能的好处是电路简单坏处是某个口短路的时候你只能看到灯灭了不知道是哪个口的问题。不过有指示灯在排查也不难。每个下行口的D和D-线上我加了ESD保护二极管型号是USBLC6-2SC6。这个器件很便宜但能有效防止静电打坏芯片。USB口是经常插拔的人体静电很容易通过接口传到芯片上加了保护之后心里踏实很多。ESD二极管要尽量靠近接口放置走线要短否则保护效果会打折扣。3. 立创EDA里画原理图的几个关键操作3.1 元件库的搜索与核对立创EDA的元件库分两种系统库和用户库。CH334R在系统库里能直接搜到但你要注意看是哪个用户上传的有些封装可能画错了。我的做法是搜到之后先看符号的引脚定义和datasheet是否一致再看封装尺寸是否匹配。CH334R是QFN28引脚间距0.5mm焊盘宽度0.25mm左右这些在立创的封装编辑器里都能量。如果系统库里的封装有问题你可以自己复制一份到用户库然后修改。修改封装的时候注意焊盘要加一个0.1mm左右的余量因为PCB加工的时候会有公差。我一般把焊盘长度加0.15mm宽度加0.05mm这样焊接的时候不会因为焊盘太小而虚焊。3.2 原理图绘制的连线技巧立创EDA的原理图绘制有一个很实用的功能网络标签。对于USB的D和D-这种需要跨区域连接的信号用网络标签比拉长线要清晰得多。我的做法是在芯片引脚旁边放一个网络标签命名为USB_DP1然后在接口那边也放一个同名的网络标签这样逻辑上就连起来了。电源网络我用了电源符号5V、3.3V、1.8V分别用不同的符号表示。立创EDA自带了很多电源符号直接拖出来用就行。注意每个电源符号都要有对应的去耦电容这是画原理图的基本功。CH334R的每个电源引脚旁边我都放了一个0.1uF的电容VDD还额外加了一个10uF的。原理图画完之后一定要做ERC检查电气规则检查。立创EDA的ERC能帮你找出未连接的引脚、电源冲突、输出短路等问题。我第一版的时候有个引脚忘了连ERC直接报错省了我不少调试时间。ERC通过之后再人工核对一遍关键网络比如USB差分线、电源线、地线确保没有遗漏。3.3 从原理图到PCB的转换原理图确认无误之后点设计→转换原理图到PCB立创EDA会自动生成一个PCB文件所有元件会堆在板框外面。这时候你要做的是画板框我画了一个60mm×40mm的矩形圆角半径3mm。板框的尺寸要根据你的外壳来定我用的3D打印外壳内部空间是62mm×42mm所以板子留了1mm的余量。摆放元件先放接口USB Type-A口放在板子一侧Type-C上行口放在另一侧。CH334R放在板子中间偏上的位置晶振靠近芯片限流开关靠近各自的USB口。设置层叠双层板顶层和底层都是1oz铜厚。立创EDA默认的层叠就是双层不用改。摆放元件的时候要注意信号流向上行口→芯片→下行口这个顺序决定了元件的大致位置。不要为了好看把芯片放在角落走线绕来绕去会增加寄生参数影响信号质量。4. USB差分线的走线规则与星型接地的实现4.1 差分线的阻抗控制USB2.0的高速差分线D和D-要求差分阻抗90Ω±10%。在双层板上这个阻抗主要靠线宽和线间距来控制。立创EDA的PCB编辑器里有阻抗计算器你可以输入板厚、铜厚、介电常数它会帮你算出对应的线宽和间距。我用的参数是板厚1.6mm铜厚1oz介电常数4.5FR4的典型值算下来差分线宽0.2mm间距0.15mm阻抗大约是88Ω在允许范围内。如果你用的是其他板厚或者铜厚参数要重新算。不要凭感觉设线宽USB2.0虽然速度不算特别高480Mbps但阻抗不匹配的话眼图会很难看严重的时候会掉盘。差分线走线有几个铁律等长D和D-的长度差要控制在5mil0.127mm以内。立创EDA有等长调节功能可以自动绕蛇形线来补偿长度差。等距两条线要始终保持相同的间距不要一条线突然拐弯另一条不拐。少过孔过孔会引入阻抗不连续能不打孔就不打孔。如果一定要打两个过孔要对称放置。远离干扰源差分线不要和晶振、电源开关节点、时钟线平行走线至少保持3倍线宽的间距。4.2 星型接地的具体做法星型接地是模拟电路和混合信号电路里常用的接地方式在USB HUB这种数字电路为主的板子上星型接地主要是为了解决地环路和地弹的问题。具体做法是所有地线最终汇聚到一个点这个点通常在芯片的GND引脚附近。每个功能模块的地线单独走比如晶振的地、USB接口的地、电源的地各自走一条线到汇聚点。不要形成地环路地线不要绕一圈回到原点那样会形成一个环形天线容易拾取噪声。在双层板上实现星型接地有点挑战因为底层通常是大面积铺地。我的做法是底层铺地但用走线把不同模块的地引导到芯片下方。具体来说在底层用0.5mm宽的走线从每个USB口的地焊盘拉到芯片的GND焊盘附近这些走线在视觉上形成一个星型。铺地铜皮和这些走线之间用热焊盘连接避免直接大面积接触导致地电流乱窜。实测下来星型接地对USB枚举的成功率有肉眼可见的提升。我对比过一版随便铺地的板子那版偶尔会出现设备识别慢或者识别失败的情况改成星型接地之后四口同时插满也能秒识别。4.3 电源走线的宽度计算电源走线的宽度要根据电流来定。我一般用1A/mm的经验值来估算也就是说1mm宽的走线大约能跑1A电流。但这是保守值实际1oz铜厚、温升10°C的条件下1mm宽能跑2A左右。我的板子上主5V轨的电流最大是2A四个口各500mA所以走线宽度至少1mm。我实际用的是1.5mm留了余量。每个下行口的VBUS走线电流是500mA用0.5mm宽就够了我用的是0.8mm。电源走线还有一个原则尽量短、尽量直。不要为了绕开元件而走蛇形线那样会增加压降和寄生电感。如果实在绕不开可以在底层走一段但要用过孔连接过孔至少打两个降低阻抗。5. 彩色丝印的实操与PCB打样注意事项5.1 彩色丝印在立创EDA里的设置立创EDA的彩色丝印功能是通过多层丝印实现的。普通丝印只有一层通常是白色彩色丝印可以叠加多层每层用不同的颜色。具体操作是在PCB编辑器里打开层管理添加新的丝印层。给每层指定颜色立创EDA支持的颜色有红、绿、蓝、黄、白、黑等。在对应的丝印层上绘制图形或文字。我设计了一个简单的图案板子左上角用红色丝印画了一个USB符号右下角用蓝色丝印写了4-Port HUB字样中间用黄色丝印画了几条装饰线。这些丝印层在打样的时候会分别输出嘉立创的彩色丝印工艺可以一次成型。需要注意的是彩色丝印的精度比普通丝印低最小线宽建议0.2mm以上最小文字高度建议1mm以上。太细的线条或者太小的文字可能会糊掉。我第一版的时候用了0.15mm的线宽打样出来有些地方断断续续的后来改成0.25mm就清晰了。5.2 打样前的DRC检查与文件输出打样之前一定要做DRC检查设计规则检查。立创EDA的DRC可以检查线宽、间距、过孔、焊盘等是否符合加工要求。我一般把规则设成嘉立创的标准工艺能力最小线宽0.15mm最小间距0.15mm最小过孔0.3mm/0.6mm。如果你的设计比这个还小就要选更高级的工艺价格会贵不少。DRC通过之后输出Gerber文件。立创EDA支持一键导出Gerber在文件→导出→Gerber里操作。导出的时候要注意单位选毫米格式选RS-274X层要选全。导出之后最好用Gerber查看器检查一遍看看有没有缺层或者错位。除了Gerber还要输出钻孔文件和坐标文件。钻孔文件是给钻孔机用的坐标文件是给贴片机用的。如果你要嘉立创帮你贴片坐标文件必须准确否则元件会贴歪。5.3 焊接与调试的实战经验板子回来之后先目视检查一遍看看有没有明显的短路或者断路。然后用万用表量一下电源和地之间的电阻正常应该在几百欧姆以上如果接近0就是短路了。焊接的时候CH334R是QFN封装建议用热风枪加焊膏。先给焊盘上锡薄薄一层然后把芯片放上去用热风枪320°C吹30秒左右看到焊锡融化、芯片自动对齐就行了。不要用烙铁一个个引脚焊QFN的引脚在底部烙铁够不着。焊完之后先不插电脑用外部5V电源给板子供电量一下3.3V和1.8V是否正常。如果电压不对检查LDO的输出电容和反馈电阻。电压正常之后再插电脑看设备管理器里能不能识别出HUB。如果识别不出来先检查晶振有没有起振用示波器量XI引脚应该有12MHz的正弦波。四个口逐个测试插U盘看能不能识别插鼠标看能不能用。如果某个口有问题重点检查那个口的差分线和限流开关。我遇到过一次某个口识别不稳定后来发现是差分线的等长没做好重新绕了一下蛇形线就解决了。6. 几个容易踩坑的地方和我自己的取舍6.1 上行口供电与外部供电的切换有些HUB设计会加一个DC插座可以从外部电源供电。我一开始也想加后来放弃了原因是外部供电和上行口供电之间的切换电路比较复杂要用到电源多路复用器或者理想二极管成本和板子面积都上去了。而且我的使用场景是接电脑电脑的USB口供电足够带键盘鼠标U盘这些设备没必要外接电源。如果你确实需要外接电源建议用电源多路复用芯片比如TPS2113之类的。不要用两个二极管直接并联那样会有压降和倒灌问题。6.2 指示灯的设计每个下行口我配了一个LED指示灯绿灯表示电源正常。LED的限流电阻我用了1kΩ电流大约3mA亮度足够又不刺眼。LED要放在接口旁边方便一眼看出哪个口在工作。有个小细节LED的地线不要和USB差分线平行走因为LED的电流是脉冲式的特别是数据传输的时候可能会耦合到差分线上。我把LED的地线单独走到星型接地点和差分线保持了足够的距离。6.3 板子尺寸与外壳的配合板子尺寸是60mm×40mm外壳是3D打印的内部空间62mm×42mm。板子固定用的是M2螺丝四个角各一个。螺丝孔的内径是2.2mm外径是4mm这个尺寸在立创EDA里可以直接用安装孔工具生成。外壳的USB开口要精确对准板子上的接口否则插不进去。我的做法是先画好板子导出DXF文件然后在3D建模软件里导入DXF根据接口的位置画开口。这样能保证开口位置和板子完全一致。6.4 关于立创EDA和KiCad的选择有人问我为什么用立创EDA而不是KiCad。我的回答是看你的需求。立创EDA的优势是元件库全、和嘉立创的打样流程无缝对接、彩色丝印支持好。KiCad的优势是开源、插件多、社区活跃。如果你经常在嘉立创打样立创EDA的体验确实更顺滑。如果你要做复杂的多层板或者需要特定的仿真功能KiCad可能更合适。我自己的项目大部分是双层板元件也都是常用型号立创EDA完全够用。而且它的云端同步功能很实用我在公司电脑上画一半回家用笔记本接着画不用拷文件。7. 最后分享几个实测有效的小技巧第一个技巧在PCB上留测试点。我在每个下行口的D和D-线上各留了一个1mm的测试焊盘调试的时候可以直接用示波器探头量信号。这个习惯是从做硬件调试的时候养成的板子回来之后如果某个口有问题有测试点能省很多时间。第二个技巧丝印上标注版本号和日期。我在板子背面用丝印写了V1.0 2024-XX这样以后改版的时候不会搞混。如果你要分享给朋友他们也能一眼看出是哪个版本。第三个技巧BOM里备注元件的替代型号。比如限流开关我用的MIC2025但备选可以用AAT4610或者SY6280参数差不多封装也一样。打样的时候如果某个型号缺货可以直接换替代型号不用重新画板。第四个技巧焊接QFN芯片的时候用放大镜。QFN的引脚太密了肉眼很难看清有没有虚焊。我用一个20倍的放大镜焊完之后逐个引脚检查有虚焊的用烙铁补一下。这个步骤花不了几分钟但能避免很多调试时的麻烦。这块板子我从画原理图到打样回来调试前后花了大概两个周末的时间。中间改了一版第一版的问题是差分线等长没做好和晶振离芯片太远。第二版改完之后四口同时插满设备跑了一整天没有掉盘也没有发热异常。彩色丝印的效果也比预期好红色和蓝色的图案很清晰黄色稍微淡一点但也能接受。如果你也想做一块自己的HUB建议先从原理图开始把CH334R的datasheet仔细看一遍特别是引脚定义和推荐外围电路那几页。画PCB的时候不要急着布线先把元件摆好把差分线和电源线的路径规划好再动手。布线的时候记住三个关键词等长、等距、少过孔。做到这三点USB2.0的差分线基本不会出问题。
返回列表