USB3.0扩展坞这东西,说难不难,说简单也真不简单。我见过太多新手拿着VL812的芯片手册,画完原理图就直接自动布线,结果板子打回来插上电脑要么不识别,要么跑USB2.0速度,要么跑着跑着直接掉盘。问题基本都出在四层板的叠层设计和高速差分线的处理上。这篇内容就把我用嘉立创EDA从零画一块VL812四层板扩展坞的完整过程拆开讲,包括叠层怎么定、差分线怎么走、星型接地怎么处理、电源部分怎么布局,以及打样回来之后怎么一步步验证。适合有基本原理图基础、想从两层板进阶到四层板高速设计的同学,也适合想自己做一个能用的USB3.0扩展坞的DIY玩家。
1. 为什么选VL812而不是其他USB3.0 Hub芯片
1.1 VL812在DIY扩展坞里的生态位
市面上做USB3.0 Hub的芯片其实不少,常见的有VL812、VL813、GL3510、RTS5411这几类。我选VL812主要基于三个考虑:第一是资料多,网上能找到的参考设计和开源工程相对丰富,新手遇到问题容易搜到答案;第二是封装友好,VL812是QFN-76封装,引脚间距0.4mm,嘉立创EDA的默认工艺能力完全可以覆盖,打样成本低;第三是外围电路简单,它内置了5V转3.3V和1.2V的LDO控制逻辑,外部只需要配合少量的电感和电容就能跑起来。
VL812支持USB3.0 SuperSpeed,理论带宽5Gbps,向下兼容USB2.0和USB1.1。它最多支持四下游端口,每个端口都带过流检测和电源控制引脚。对于做一个一拖四的扩展坞来说,这个规格刚好够用,不会像某些八口Hub芯片那样引脚太多导致布线难度陡增。
1.2 VL812和VL813的区别,别买错芯片
这里要特别提醒一下,VL812和VL813虽然名字很像,但引脚定义和外围电路有差异。VL813是VL812的升级版,主要改进了功耗管理和兼容性,但封装和部分引脚功能做了调整。如果你在网上抄了一个VL812的参考设计,结果买回来的是VL813的芯片,大概率是点不亮的。我建议新手直接锁定VL812-QFN76这个具体型号,买芯片的时候看清楚后缀。
另外还有一个坑,VL812有多个版本,早期版本对某些主控的兼容性不太好,比如某些AMD平台的主板会出现识别不稳定的情况。建议买生产日期比较新的批次,或者直接找靠谱的代理商拿货,不要贪便宜买来路不明的散片。
1.3 四层板对这个项目的必要性
有人会问,USB3.0 Hub用两层板能不能做?理论上可以,但实际做出来大概率跑不了USB3.0的速度。原因在于USB3.0的差分线对阻抗要求是90欧姆,两层板很难在保证线宽和间距的同时做到稳定的阻抗控制,而且两层板没有完整的地平面,高速信号的返回路径会非常糟糕。
四层板的标准叠层是信号-地-电源-信号,这样顶层和底层的信号都有相邻的参考平面,差分线的阻抗容易控制,返回电流也有最短路径可以走。对于VL812这种需要处理5Gbps信号的芯片来说,四层板基本是底线,再低就会出各种玄学问题。
2. 嘉立创EDA里四层板的叠层设置与阻抗计算
2.1 叠层结构的选择:S-G-P-S还是S-G-G-S
嘉立创EDA专业版里新建PCB之后,第一件事就是设置叠层。四层板常见的叠层有两种:信号-地-电源-信号(S-G-P-S)和信号-地-地-信号(S-G-G-S)。我选的是S-G-P-S,原因是电源层可以专门用来做3.3V和1.2V的电源平面,减少顶层和底层的电源走线压力。
具体的叠层参数在嘉立创EDA的层管理器里设置。我用的板厚是1.6mm,四层板的核心板厚度是1.2mm,铜厚默认1oz。介质层用的是FR-4,介电常数4.2左右。这些参数在嘉立创的工艺页面都能查到,设置的时候直接按默认的JLC04161H-3313叠层来选就行。
2.2 90欧姆差分线的线宽和间距计算
USB3.0的差分线要求差分阻抗90欧姆,单端阻抗45欧姆。在嘉立创EDA里可以用阻抗计算器来算,但更靠谱的方法是直接参考嘉立创官方给出的叠层阻抗表。对于JLC04161H-3313这个叠层,顶层到地层的介质厚度大约是0.2mm,对应的90欧姆差分线大概是线宽5mil、间距7mil左右。
这里要注意,不同批次的板材介电常数会有波动,所以算出来的线宽间距只是一个参考值。实际布线的时候,我建议把差分线走在顶层,参考第二层的地平面,这样阻抗最稳定。如果实在走不通需要换层,一定要在换层过孔旁边加回流地过孔,否则阻抗会突变。
2.3 嘉立创EDA里设置差分对的实操步骤
在嘉立创EDA专业版里设置差分对的流程是这样的:先在原理图里给USB3.0的差分信号加上网络标签,比如USB3_TX_P和USB3_TX_N,然后在PCB界面打开设计规则,找到差分对设置,把这两个网络添加为一组差分对,设置目标阻抗90欧姆。之后布线的时候使用差分对布线工具,EDA会自动保持线宽和间距。
这里有个细节,嘉立创EDA的差分对布线工具默认是推挤模式,如果你在差分线旁边走了其他信号,它会自动推开。但我不建议完全依赖自动推挤,因为推挤之后线宽可能会变化,导致阻抗偏离。最好是在布线之前就把通道规划好,给差分线留出足够的空间。
3. VL812核心电路的原理图设计要点
3.1 电源树的设计:5V转3.3V和1.2V
VL812需要三路电源:5V(来自USB总线)、3.3V(IO电源)和1.2V(核心电源)。5V直接来自上游USB口的VBUS,3.3V和1.2V需要外部电路产生。我用的方案是5V经过一个DC-DC降压到3.3V,然后再用LDO从3.3V降到1.2V。
这里有个选型上的考虑:3.3V的电流需求比较大,因为要供四个下游端口的VBUS控制逻辑和芯片IO,所以用DC-DC效率更高。1.2V是核心电压,电流需求相对小,用LDO纹波更小,对芯片稳定性更好。具体的芯片选型可以根据手头库存来定,我用的是一颗常见的同步降压芯片加一颗低压差LDO。
3.2 晶振电路和复位电路的处理
VL812需要一颗25MHz的晶振,晶振的负载电容要根据晶振规格书来选,一般是12pF到20pF之间。晶振走线要尽量短,尽量靠近芯片引脚,晶振下面不要走其他信号,最好在晶振区域做一个局部的地岛。
复位电路比较简单,一个10k上拉电阻加一个100nF电容到地就行。但要注意复位引脚的走线不要和高速信号平行走太长,否则可能耦合到噪声导致芯片误复位。
3.3 下游端口的过流检测和电源控制
每个下游端口都需要过流检测和电源开关控制。VL812的每个端口都有对应的OC(Over Current)检测引脚和PWREN(Power Enable)引脚。过流检测一般用一个采样电阻加比较器来实现,或者直接用带过流输出的电源开关芯片。
我用的方案是每个端口配一颗限流开关芯片,芯片本身带过流标志输出,直接接到VL812的OC引脚。这样外围电路简单,而且保护功能比较完善。PWREN引脚接到开关芯片的使能端,由VL812控制端口的供电通断。
4. 四层板的布局策略:把VL812放在哪里最合适
4.1 芯片摆放和去耦电容的优先级
布局的第一步是确定VL812的位置。我把它放在板子中间偏上的位置,这样四个下游端口的连接器可以分布在板子两侧,走线比较均衡。芯片的每个电源引脚旁边都要放去耦电容,100nF的电容要尽量靠近引脚,1uF和10uF的电容可以稍微远一点。
这里有个经验:VL812的底部有一个大的散热焊盘,这个焊盘必须接到地平面,而且要多打地过孔。我一般会在散热焊盘上打9个过孔,呈3x3排列,这样既保证了散热,又保证了接地阻抗足够低。
4.2 上游USB接口和下游端口的方位规划
上游USB接口我放在板子左侧,下游四个端口放在右侧和下方。这样信号流向比较清晰,从左侧进来,经过VL812,再从右侧和下方出去。上游接口的差分线要尽量短,直接走到VL812的对应引脚,中间不要经过其他区域。
下游端口的差分线也要尽量等长,虽然USB3.0对差分线之间的长度匹配要求没有HDMI那么严格,但同一对差分线内部的P和N要严格等长,误差控制在5mil以内。不同对之间的长度差异可以放宽到50mil左右。
4.3 电源部分的布局:DC-DC和LDO的位置
DC-DC电路要远离VL812的晶振和高速差分线,因为DC-DC的开关噪声很容易耦合到高速信号上。我把DC-DC放在板子的左下角,LDO放在DC-DC旁边,这样电源流向是从左下角往右上角的VL812走。
DC-DC的电感要选屏蔽电感,减少辐射噪声。输入输出电容要尽量靠近芯片引脚,反馈电阻要靠近反馈引脚,反馈走线要远离电感。
5. 高速差分线的布线实战:从VL812到USB连接器
5.1 差分线布线的顺序和优先级
布线的时候,我建议先走USB3.0的差分线,再走USB2.0的差分线,最后走普通信号线。原因是USB3.0的差分线对阻抗和等长要求最高,需要优先保证通道畅通。如果先走了普通信号线,后面差分线可能就没有通道了。
VL812的USB3.0差分线从芯片引脚出来之后,要先经过一个共模电感或者ESD保护器件,然后再走到连接器。ESD保护器件的寄生电容要尽量小,一般选0.5pF以下的,否则会影响USB3.0的信号完整性。
5.2 差分线换层时的过孔处理
差分线如果需要换层,一定要在换层过孔旁边加回流地过孔。回流地过孔要尽量靠近信号过孔,距离控制在1mm以内。这样高速信号的返回电流可以通过地过孔从一层地平面流到另一层地平面,不会形成大的回流环路。
换层过孔本身也会引入阻抗不连续,所以换层次数越少越好。我一般尽量让USB3.0的差分线走在同一层,实在需要换层也只换一次。
5.3 差分线与其他信号的间距控制
USB3.0差分线和其他信号线之间的间距要保持在3倍线宽以上,也就是至少15mil。如果旁边有开关电源或者晶振,间距要更大,至少20mil以上。差分线下方要有完整的地平面,不要在地平面上开槽,否则返回路径会被切断。
如果差分线必须经过连接器或者焊盘区域,要注意焊盘的阻抗和走线的阻抗匹配。连接器的焊盘一般比较大,寄生电容也大,可以在焊盘下方挖空地平面来补偿阻抗。
6. 星型接地在嘉立创EDA里的实现方法
6.1 星型接地的原理和适用场景
星型接地是指各个模块的地线单独走回一个公共接地点,而不是随便接到一个大地平面上。这种接地方式适合混合信号系统,比如同时有模拟电路和数字电路的板子。对于USB3.0扩展坞来说,星型接地主要用在电源地和信号地的分离上。
我的做法是把DC-DC的功率地和VL812的信号地分开,功率地单独走回输入电容的负极,信号地则通过地平面连接。这样DC-DC的开关噪声不会通过地平面耦合到VL812。
6.2 在嘉立创EDA里分割地平面的操作
嘉立创EDA专业版里可以用铺铜工具来分割地平面。具体操作是:先在第二层(地平面层)用铺铜工具铺一个完整的地,然后用线条工具画出分割线,把功率地和信号地分开。分割线要尽量窄,一般10mil左右,分割之后两边的铜皮要通过一个0欧姆电阻或者磁珠连接。
这里要注意,分割地平面之后,跨越分割线的信号线会有严重的EMI问题。所以任何信号线都不能跨越地平面的分割缝隙,否则返回电流会绕一大圈,形成大的环路面积。
6.3 地过孔的数量和分布原则
地过孔的数量要足够多,特别是VL812的散热焊盘下面和连接器的地引脚旁边。我一般会在每个连接器的地引脚旁边打至少两个地过孔,在VL812的散热焊盘上打9个地过孔。地过孔要尽量均匀分布,不要集中在一个区域。
地过孔的孔径一般选0.3mm,孔盘0.6mm。这个尺寸在嘉立创的工艺能力范围内,而且过孔的寄生电感比较小。
7. 打样前的DRC检查和常见错误排查
7.1 嘉立创EDA的DRC规则设置
打样之前一定要跑DRC。嘉立创EDA专业版里可以设置最小线宽、最小间距、最小孔径等参数。我一般设置最小线宽6mil,最小间距6mil,最小孔径0.3mm。这些参数要和嘉立创的工艺能力匹配,不要设置得比工艺能力还小,否则打样会失败。
DRC跑完之后,重点看几个地方:差分线的线宽和间距是否一致,地过孔是否足够,电源走线是否够宽,丝印是否压焊盘。
7.2 常见的DRC报错和解决方法
最常见的DRC报错是间距违规,一般是差分线和其他信号线太近。解决方法是调整布线通道,或者把其他信号线移到别的层。另一个常见报错是孔径太小,一般是过孔设置得太小,改成0.3mm就行。
还有一个容易被忽略的问题是丝印压焊盘。嘉立创EDA默认会检查丝印和焊盘的重叠,如果丝印压到焊盘上,打样的时候丝印会被去掉,影响美观。解决方法是在丝印层调整文字位置,或者把丝印字号改小。
7.3 生成Gerber文件和打样注意事项
DRC通过之后就可以生成Gerber文件了。嘉立创EDA里可以直接导出Gerber,导出的时候要确认层数正确,四层板要导出顶层、底层、内电层1、内电层2、丝印层、阻焊层、助焊层和钻孔文件。
打样的时候在嘉立创下单页面选择四层板,板厚1.6mm,铜厚1oz,阻焊颜色随意。阻抗那一栏要选“是”,然后填写差分阻抗90欧姆。这样嘉立创会根据他们的叠层来调整线宽,保证阻抗达标。
8. 焊接调试和USB3.0速度验证
8.1 VL812的焊接要点
VL812是QFN封装,底部有散热焊盘,焊接的时候需要热风枪和焊膏。我一般先用焊膏涂在焊盘上,把芯片放上去,用热风枪从底部加热,等焊膏融化之后轻轻按压芯片,让散热焊盘和PCB焊盘充分接触。焊接完成之后用放大镜检查引脚是否有虚焊或者连锡。
QFN封装的引脚在芯片底部,肉眼看不到,所以焊接之后一定要用万用表测一下电源引脚对地的阻抗,确认没有短路。
8.2 上电顺序和电压测量
焊接完成之后,先不要插电脑,先用可调电源给板子供电,限流设到500mA。测量3.3V和1.2V的电压是否正常,如果电压不对,先检查DC-DC和LDO的反馈电阻是否正确。
电压正常之后,再测量VL812的晶振是否起振,用示波器看晶振引脚是否有25MHz的正弦波。如果晶振不起振,检查负载电容是否匹配,或者芯片是否焊接良好。
8.3 用CrystalDiskMark验证USB3.0速度
板子插上电脑之后,如果识别正常,可以用CrystalDiskMark测一下速度。USB3.0的理论速度是5Gbps,实际读写速度大概在400MB/s左右。如果测出来只有40MB/s左右,说明跑的是USB2.0模式,需要检查差分线是否焊接良好,或者ESD保护器件是否影响了信号完整性。
如果速度正常但偶尔掉盘,一般是电源问题,检查5V供电是否足够,或者下游端口的限流开关是否误触发。
9. 开源工程的使用说明和二次开发建议
9.1 工程文件的导入和打开
开源工程我导出的是嘉立创EDA专业版的工程文件,可以直接在嘉立创EDA里打开。打开之后先检查叠层设置是否正确,然后检查设计规则是否和你的打样厂商匹配。如果打样厂商不是嘉立创,需要根据厂商的工艺能力调整线宽和间距。
工程里包含了原理图、PCB、BOM和Gerber文件。BOM里标注了关键物料的型号和封装,可以直接在嘉立创商城下单。
9.2 根据自己的需求修改端口数量
如果你想改成两口或者七口的扩展坞,可以在原理图里删掉或者增加对应的下游端口电路。VL812最多支持四口,如果要更多口,需要换芯片或者级联。修改原理图之后要重新导入PCB,注意新增的差分线也要按照90欧姆阻抗来布线。
9.3 常见二次开发问题和解决思路
二次开发最常见的问题是改了原理图之后PCB网络丢失。解决方法是修改原理图之后,在PCB界面执行“更新PCB”操作,让EDA自动同步网络。如果同步之后有网络报错,检查原理图里的网络标签是否重复或者遗漏。
另一个问题是换了连接器之后封装不匹配。解决方法是自己画一个封装,或者从嘉立创EDA的元件库里找一个匹配的。画封装的时候注意焊盘尺寸和间距要和连接器规格书一致。
10. 我在这个项目里踩过的坑和实测经验
第一个坑是差分线换层过孔没加回流地过孔,结果USB3.0速度死活上不去,只有USB2.0的速度。后来在换层过孔旁边加了地过孔,速度立刻正常了。这个问题的本质是高速信号的返回电流找不到最短路径,只能绕远路,导致信号完整性变差。
第二个坑是DC-DC的电感选了一个非屏蔽的,结果USB3.0的误码率很高,测速的时候经常掉盘。换成屏蔽电感之后问题消失。所以电源部分的电感一定要选屏蔽的,不要省这个钱。
第三个坑是地平面分割之后,有一根USB2.0的信号线跨越了分割缝隙,导致USB2.0的传输也不稳定。后来把那根线改到不跨越缝隙的路径上,问题解决。所以分割地平面之后,一定要检查所有信号线的返回路径是否完整。
第四个坑是VL812的散热焊盘没有打足够的地过孔,芯片工作一段时间之后发热严重,导致性能下降。后来在散热焊盘上补了9个地过孔,发热明显改善。QFN封装的芯片散热全靠底部焊盘,地过孔不够的话热量散不出去。
第五个坑是打样的时候没有选阻抗控制,结果差分线的阻抗偏离了90欧姆,USB3.0的速度虽然能跑但偶尔会报错。后来重新打样的时候选了阻抗控制,问题解决。所以USB3.0的板子打样一定要选阻抗控制,不要省这个钱。
这些坑说到底都是高速电路设计里的经典问题,但新手如果不注意,每一个都可能让你多打几次板。希望这篇内容能帮你少走点弯路,一次把板子点亮。