ARTICLE DETAIL

资讯详情

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

基于RTS5411的USB3.0 Hub设计:从原理图到PCB Layout实战

基于RTS5411的USB3.0 Hub设计:从原理图到PCB Layout实战 做了两版RTS5411的USB3.0集线器终于把从选型、原理图到PCB Layout这条路走通了。之前一直在用现成的Hub板总觉得少了点什么正好手头囤了一批RTS5411干脆自己动手从零画一块带Type-C上行口的四口USB3.0集线器顺便把PCB工程和调试过程完整记录下来。这篇文章不绕弯子直接把设计思路、关键原理、Layout规则、调试坑点全部摊开讲适合想自己折腾USB3.0 Hub的硬件工程师、电子爱好者也适合正在做Type-C扩展坞方案选型的朋友参考。1. 核心需求拆解与RTS5411选型分析1.1 我要做的USB3.0集线器到底长什么样先把需求说清楚后面所有设计决策都围绕这几个点展开。这次不是随便画个最小系统而是做一块能正常量产、稳定使用的集线器上行接口采用Type-C母座正反插都能识别下行做4个USB3.0 Type-A口速度按5Gbps设计整板使用自供电方式外部5V适配器供电每个下行口需要能支持USB3.0规范里的900mA负载电流方便直接拖移动硬盘、U盘这类高功耗设备。同时板子需要有工作状态指示灯插上即用不需要额外装驱动。这个需求放到市场上很常见就是标准的4口USB3.0 Hub但加了一个Type-C上行口之后设计重心就变了。Type-C不是简单把D/D-和SuperSpeed差分对引出来就完事CC引脚的下拉电阻、VBUS检测、正反插信号切换都需要处理。这也是很多人第一次画Type-C Hub时最容易翻车的地方。先给整机定一个框架5V输入进来后分成两条路一条直接给4个下行Type-A口的VBUS供电另一路通过电源芯片转成3.3V和1.1V给RTS5411主控和周边电路用。上行Type-C只负责数据信号和CC逻辑不承担对外供电。这样做好处是电源和信号各走各路调试时出问题能快速定位。1.2 为什么选RTS5411而不是GL3520、VL817市面上USB3.0 Hub控制器很多当时我主要纠结三颗Genesys Logic的GL3520、VIA Labs的VL817还有RTS5411。这颗芯片是瑞昱的USB3.0 Hub控制器支持一个上行口加四个下行口USB3.0速率跑到5Gbps内部集成了MCU和USB PHY外围元件相对精简。三颗芯片的关键差异我整理成了表格方便大家直接对比对比项RTS5411GL3520VL817下行口数量4个4个4个USB3.0速率5Gbps5Gbps5Gbps外围电路复杂度较低参考设计多中等低内置Boost内置MCU有有有常见开发资料多公版方案成熟多多采购价格区间中等低中等最终选RTS5411核心原因就三个参考资料足够多原厂方案和市面上的公板原理图都能找到抄作业难度低第二是外围元件要求不苛刻手工焊接也能搞定第三是这颗芯片我手里有现货而且之前在一个项目里用过它家同系列的芯片对这家的寄存器配置方式比较熟悉。还要补充一句如果你只需要做2口或者3口Hub不一定非要选4口控制器。但RTS5411这种4口方案现在价格已经压得很低用4口芯片只接2个口做半成品反而更灵活以后想升级直接补焊座子就行。选芯片时别只看单价要看整个BOM稳定性和可采购性。1.3 整体架构设计数字、模拟、电源怎么分画原理图之前先画信号流。RTS5411的架构大致可以分为三块USB3.0信号链路、电源管理链路、辅助控制链路。上行Type-C口的两对SuperSpeed差分线SSTX、SSRX直接进入RTS5411的USB3.0 PHY同时Type-C里的D/D-也要进到芯片的USB2.0 PHY。下行4个口分别从芯片输出对应的SuperSpeed差分和D/D-信号再接ESD保护器件后到Type-A母座。电源管理链路在Hub板上非常重要。RTS5411需要1.1V核心电压和3.3V IO电压这两个电源轨我分别用一颗LDO从5V转出来没有用DC-DC。原因很简单主控芯片的总功耗不大LDO成本低、纹波小、布局简单。DC-DC也许效率高但在这种规模不大的Hub板上开关噪声反而会给USB3.0信号带来额外的EMI风险所以宁可少赚几个百分点的效率先把信号质量保住。辅助控制链路主要是25MHz晶振、复位电路、LED指示灯、EEPROM配置接口。EEPROM我一开始没打算焊后来为了让每个下行口过流保护阈值更准确还是加了。后面会详细说。整个架构用一句话概括电源从5V进去LDO转出双电源给主控USB3.0信号从Type-C进主控再分到4个Type-AEEPROM决定Hub的个性参数。这样分下来后面每画一部分内容心里都很清楚它在整个系统里干什么用。2. 原理图设计每一个引脚都要有出处2.1 电源树设计LDO选型、功耗计算、上电顺序先算功耗再定电源方案。RTS5411的功耗在数据手册里没有特别醒目标注但参考同类4口Hub控制器主控芯片本身的功耗大概在0.5W到0.8W之间换算成5V输入电流大概150mA左右。4个下行口如果满载每个口按900mA计算总负载电流是3.6A这部分电流不走主控芯片直接从5V电源轨经过过流保护器件送到Type-A口。所以5V适配器至少要选5V/4A以上的规格留出余量。3.3V电源轨我用了一颗ME6211C33这是一颗低功耗、低 dropout的LDO输出能力300mA对于Hub主控的IO部分完全够用。1.1V核心电压用RT9013-11同样是LDO负载能力300mA。为什么不用AMS1117-3.3AMS1117标称1A但5V输入转3.3V时压差接近1.7V属于极限边缘负载稍大纹波就往上跑。ME6211C33的dropout只有200多毫伏5V转3.3V非常从容而且封装和引脚兼容性好。上电顺序方面RTS5411的数据手册建议核心电压和IO电压尽量同时上电或者先核电压后IO电压。我用RC延时适当延迟了3.3V使能保证1.1V先稳定。实际电路里LDO的使能脚一般通过10k电阻上拉到5V再并联一个0.1uF电容形成软启动这样上电瞬间电流冲击小不容易因为电压过冲导致芯片锁死。每个电源引脚旁边都放了0.1uF和1uF的去耦电容位置必须在芯片同一面尽量靠近电源引脚。这一步千万别省尤其是1.1V核心电源去耦不足会直接导致高速信号误码和USB设备掉线。2.2 Type-C上行口设计CC下拉电阻、VBUS检测与正反插Type-C上行口是这次设计里最容易踩坑的部分。USB Type-C口不带方向性正反插都有完整引脚但RTS5411内部对Type-C没有真正的DRP逻辑所以需要外部电路来告诉系统“我是一个USB设备”。关键是CC引脚。Type-C连接器总共两个CC引脚CC1和CC2。作为UFP也就是设备端被主机供电、识别为设备需要在CC1和CC2上分别对地接5.1kΩ下拉电阻。注意是两颗不是一颗。如果只接一颗比如只拉低CC1那么某一面插入时系统就能识别另一面插入时完全没反应这就是很多DIY Type-C设备正反插只能认一面的原因。我之前第一版就犯了只接一颗下拉的错后来翻datasheet才反应过来。VBUS检测同样要处理。RTS5411的上行口VBUS检测引脚不能直接连Type-C的VBUS因为Type-C正反插时VBUS在两个位置都有需要用两颗串联电阻分压或者二极管隔离把VBUS电压降到芯片检测引脚的耐受范围。我用了100k和47k分压检测阈值大概1.6V实测挺稳定。USB3.0的T型信号这里再强调一次Type-C母座的A2/A3是SSTXB2/B3是SSRX两个方向都有差分对正反插时主机会自动翻转但Hub端的SSRX和SSTX必须按照Type-C标准交叉接入RTS5411的上行口。第一次画这个很容易以为同名引脚直接连就行实际上Type-C插座的SSTX要接到Hub控制器的SSRX方向才正确。2.3 25MHz晶振、复位电路与LED指示灯RTS5411需要一颗外部25MHz晶振提供基准时钟。晶振选型上要注意负载电容我用的无源晶振是8pF负载电容因此并联了两颗12pF电容到地具体数值要根据晶振datasheet的CL参数调整。晶振走线尽量短靠近芯片的XI和XO引脚中间不要过孔。晶振下方铺地铜并且把晶振周围包一圈地孔减少对USB3.0差分线的干扰。复位电路没有那么复杂RC复位就够了10k电阻上拉到3.3V0.1uF电容到地中间节点接芯片RST引脚。这个RC的时间常数大概1ms完全满足上电复位要求。有些方案会用专用复位芯片但在这个系统里没必要。LED指示灯我做了3个一个电源指示常亮表示5V上电一个上行Link指示检测到USB总线枚举后点亮一个活动指示有数据传输时闪烁。每个LED串1k电阻一端接3.3V另一端接主控GPIO低电平点亮。RTS5411的GPIO有些是复用脚要先看datasheet确认哪些脚能驱动LED避免和配置引脚冲突。2.4 BOM清单与封装选择原理图画完之后我整理了一版完整BOM底下是主要物料的选型参考位号功能型号/参数数量U1USB3.0 Hub主控RTS54111U23.3V LDOME6211C331U31.1V LDORT9013-111Y125MHz无源晶振负载电容8pF1J1上行Type-C母座16P Type-C母座1J2-J5下行USB3.0母座Type-A 9P母座4D1-D6TVS保护USBLC6-2SC65F1-F4USB过流保护PPTC 0.9A4C1-C3LDO输入输出电容10uF 08053电阻电容我全部用的0402封装但Type-C母座和Type-A母座的固定脚焊盘要加大尤其是Type-C母座如果固定脚只是普通焊盘插拔几次就容易松脱。我建议在Type-C母座底部加两个额外的焊盘用来加固这在后面PCB Layout那一节还会说到。还要强调一点ESD保护芯片不是可选项。Hub的USB口是暴露在外的人体静电很容易从金属壳体导入没有TVS管保护的板子第一版可能没事但返修率高得离谱。我每路D/D-和SuperSpeed线都加了USBLC6-2SC6效果比什么都不加强太多。3. PCB Layout实战USB3.0信号的完整性是核心3.1 板层设计与阻抗控制这种带Type-C和USB3.0信号的板子我强烈建议直接上4层板不要用两层板硬撑。4层板可以提供完整的参考地平面阻抗容易控制同时电源和地分开信号回流路径短整个板的EMI表现会好很多。我的层叠设计是这样的顶层走高速信号和关键电源第二层完整地平面第三层电源平面底层走低速信号和LED。板厚1.6mm表层到第二层的介质厚度约0.1mm这样表层差分线阻抗比较容易做到90欧姆。使用嘉立创的阻抗计算工具设定表层铜厚1oz差分线宽6mil线间距6mil计算结果大约正好落在90欧姆附近。打样回来我也量过实际阻抗在88到92欧姆之间已经很理想。如果实在要做两层板也不是完全不行但差分线要有完整的底面地平面作为参考过孔旁边必须伴随地孔线宽线距需要重新计算。不过对于USB3.0 5Gbps的信号两层板容错率太低我建议别和自己过不去。3.2 USB3.0差分对布线规则USB3.0里的SSTX和SSRX差分对跑在5Gbps对等长、串扰、回流路径的要求很严格。我布线的几个硬性规则如下每对差分线内部P/N等长误差控制在5mil以内。差分对外侧到地铜的距离不小于3倍线宽减少边缘场干扰。同一块Hub板上有四路下行差分线不同路之间的差分对间距至少保持3倍线宽避免串扰。差分换层时必须成对打过孔并且在孔旁边加一个地孔给信号提供最短回流路径。严禁差分线穿过电源平面的分割槽或狭长缝隙。晶振、DC-DC电感这类强干扰源要尽量远离差分线保证隔离距离不小于5mm。这些规则不是教条是我第一版布线时没有严格遵守结果用示波器测眼图发现上行口信号有明显过冲和振铃下行口甚至出现偶发掉盘。后来把SSTX和SSRX重新走成严格等长、下方地平面完整的路径问题才解决。还有一点容易被忽略D/D-这对USB 2.0差分线虽然速率只有480Mbps但也要做90欧姆差分阻抗控制并且在Type-C和Hub控制器之间尽可能等长。USB3.0的枚举过程是先建立USB2.0链路再协商到SuperSpeedUSB2.0这一段如果质量太差直接导致整个Hub识别不到。3.3 电源平面与去耦电容布局电源平面我做了分割5V VBUS区域、3.3V区域、1.1V区域分别铺铜每个区域之间用磁珠或者0欧电阻连接。这样做的目的是把高频噪声限制在各自区域内避免数字电路和USB口供电互相污染。去耦电容的布局直接决定电源质量。RTS5411的每个电源引脚旁边0.1uF的高速去耦电容尽量控制在3mm以内而且电容的接地过孔必须直接打到主地平面不要和别的电源引脚共用一个过孔。LDO的输出电容10uF放在LDO附近但距离主控电源引脚要留出一点距离这样形成一个级联去耦结构对低频和高频噪声都有抑制作用。4个下行口的VBUS各自接了100uF聚合物钽电容放在Type-A座子附近用来吸收热插拔瞬间的浪涌电流。USB设备热插拔时会产生很大的瞬态电流变化如果没有这个大电容兜底很容易导致整板电压跌落严重时主机端口会进入过流保护甚至重启。3.4 可制造性设计拼板、Mark点、工艺边做一个能拿去量产或回家手工焊的板子DFM不能省。我这次做的是5片拼板用V-cut拼在一起每片之间加了工艺边和3个Mark点。Mark点放在板子对角直径1mm周围留出禁布区贴片机能准确识别。焊盘设计方面0402阻容件的焊盘直接按嘉立创默认封装就行但Type-C母座和USB3.0 Type-A母座的焊盘孔径要稍微放大方便手工焊接和容纳锡量。Type-C的SMT焊盘细密手工拖焊容易连锡所以我在PCB上加了一层绿油开窗把引脚间距比较近的地方隔开降低短路概率。丝印层把芯片第一脚、Type-C口的方向、测试点都标注清楚。尤其要标出5V输入的正负极测试点调试时万用表点上去非常方便。不要小看这一步没有测试点的板子上电烧了查起来比LOC穿针还难受。4. 打样调试与固件配置只有跑起来才叫完成4.1 打样前的检查清单画完PCB并投板之前我有一张固定检查清单每次都能拦住不少低级错误原理图ERC检查确保没有悬空输入脚、电源和地短路。对照RTS5411 datasheet逐脚核对高速差分输入输出方向是否接反电源电压是否和手册一致。封装库检查逐个封装比对引脚数和封装尺寸Type-C母座容易用错引脚排列。PCB DRC检查最小线宽、最小间距、过孔开窗是否满足工艺。电源对地阻值测量这个要在贴片后、上电前做用万用表二极管挡测各电源轨对地阻抗如果短路板子一定有问题。上电顺序确认把LDO使能脚的电平逻辑再查一遍确保不是高电平使能却默认拉低。这些检查如果等板子回来再做发现一个错就得改板重打周期至少一周。我第二版改版就是因为Type-C CC下拉电阻只放了一颗这种错误在checklist里加一行就能提前避免。4.2 首次上电调试供电、晶振、眼图一步步来板子焊接完第一步先不焊主控先上电检查电源轨。用万用表确认5V、3.3V、1.1V三个电压正常纹波用示波器看3.3V纹波要控制在50mV以内1.1V纹波不超过30mV。如果电压不对优先检查LDO引脚是否虚焊、电容是否放反。确认电源正常后再焊接RTS5411主控。这时候万用表量一下主控供电引脚有没有短路没有短路才能上电。上电后用示波器探头点晶振引脚25MHz波形应该是干净的正弦波幅度不要低于0.5V频率误差在50ppm以内。晶振不起振是Hub完全不识别的最常见原因基本就是晶振虚焊、负载电容不匹配、芯片供电异常三个方向。晶振正常后插上Type-C线连接电脑系统应该会枚举到一个“USB3.0 Hub”设备。如果电脑完全没反应让手机OTG接出来看看或者用USB分析仪抓包能快速判断枚举卡在哪个阶段。识别到之后先别急着挂硬盘用U盘试一下数据拷贝速度能跑到300MB/s以上基本说明SuperSpeed链路没问题。有条件的话用示波器看USB3.0测试点眼图眼图张开度够大时钟抖动小才算真正稳定。我第二版样板上电一次通过但之前第一版犯过一个让我印象极其深刻的错误Type-C上行口的SSTX和SSRX交叉接反了导致正反插都只能枚举成USB2.0设备系统里面怎么都看不到5Gbps。后来对照Type-C母座引脚定义逐根量线发现两对差分方向接反改板后一切正常。所以调试时如果遇到“只能识别USB2.0”的情况第一时间怀疑信号交叉不要怀疑芯片坏了。4.3 固件与EEPROM配置很多朋友以为RTS5411焊上就能用确实默认配置下不加EEPROM也能跑但产品化或者半定制化使用时外部配置还是很有价值的。RTS5411支持外接EEPROM通过配置引脚可以选择上电时从EEPROOM加载配置或者直接用芯片内部默认参数。 我这次加了一颗2Kbit的EEPROM用原厂工具通过USB口写入配置主要改了几个参数下行口的过流保护阈值调整到900mA工作指示灯的点亮模式改成“数据传输时闪烁”并且把厂商ID和设备ID改成自己项目的编号。这样量产出来的Hub插入电脑设备管理器里显示的就是我自定义的设备名方便品牌管理。固件配置这个环节原厂工具是Windows下的烧录时要把上行Type-C口直接插到电脑USB口然后按工具要求操作。有一点要注意EEPROM的型号和地址不能选错我一开始用了24C02配置地址没对上工具提示校验失败换上兼容型号后一次通过。EEPROM可以在PCB上占位默认不贴需要配置时再贴这样比较灵活。4.4 常见问题速查表最后把调试过程中遇到过的典型问题和排查方法整理成一张速查表适合打印出来对着看现象可能原因排查方向电脑完全识别不到Hub主控供电异常、晶振不起振、复位引脚拉低量电源、示波器看晶振、检查复位电平只能识别成USB2.0设备Type-C端SSTX/SSRX差分对接反或断线对照Type-C引脚定义量线缆和座子Type-C正反插有一面不识别CC1/CC2未同时接5.1k下拉电阻检查CC下拉电路U盘拷文件速度只有30MB/sHub协商在USB2.0模式、差分线阻抗不对测眼图、查差分阻抗和等长多设备同时使用时掉盘5V适配器功率不够、VBUS电容太小换更大功率适配器加大电容移动硬盘可以识别但转一会儿消失过流保护触发或供电电压跌落量VBUS电压跌落调过流阈值LED不亮GPIO复用配置错误、限流电阻断查GPIO映射和焊点这里面“只能识别USB2.0”和“正反插有一面不识别”占了返修的大半都是硬件设计初期容易忽略的Type-C信号细节。调试时不要急着换芯片先用万用表确保每一根线和座子之间都通问题往往藏在一根断线或者一个接错的引脚里。做RTS5411 USB3.0 Hub这段时间我最深的一个体会是硬件设计没有捷径原理图如果偷懒PCB和调试阶段会花双倍甚至三倍的精力来还债。Type-C的CC下拉、SuperSpeed差分对走向、电源去耦电容位置每一处看似不起眼的细节最终都会在你的实测数据里反映出来。现在这块板子已经跑了挺久日常用移动硬盘做备份速度稳定也很少出问题。如果后面再改版我打算把下行口也全部换成Type-C母座再接入一个PD协议芯片做成支持PD输入的扩展坞。有想一起折腾的朋友欢迎拿这片思路去搭板有问题多交流。
返回列表