ARTICLE DETAIL

资讯详情

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

基于JHL7440的雷电4显卡坞:集成PD3.1 140W快充与UPS后备电源

基于JHL7440的雷电4显卡坞:集成PD3.1 140W快充与UPS后备电源 1. 项目缘起与整体设计思路1.1 为什么要折腾雷电4显卡坞笔记本性能再强核显终究有天花板。尤其是用轻薄本跑本地大模型推理、做视频渲染、或者偶尔想打两把3A大作的时候外接显卡就成了最现实的方案。市面上成品显卡坞不少但要么价格虚高要么扩展性差要么供电设计拉胯——尤其是同时挂载显卡、硬盘阵列、还要给笔记本反向充电的时候很多坞站直接罢工。这个项目的出发点很直接用Intel JHL7440这颗雷电3/4主控芯片做一台自带UPS后备电源、支持PD3.1 140W快充、还能塞进一张全长双槽显卡的开源显卡坞。JHL7440是Intel Titan Ridge系列的主力型号单芯片搞定雷电协议、PCIe隧道、DisplayPort隧道和USB隧道外围电路比新一代JHL8540好搞得多芯片也相对好买。选它不是因为性能最强而是因为资料最全、踩坑的人最多、开源方案最成熟。这个项目适合谁如果你有基本的电路焊接能力、看得懂原理图、会用万用表并且愿意花两三个周末折腾那完全可以复现。如果你只是想买个成品那这篇内容也能帮你理解显卡坞内部的供电逻辑和雷电握手流程选购的时候不容易被忽悠。1.2 整体架构拆解整台设备分成四个功能块我用一张表先把它们的关系理清楚功能块核心器件作用关键参数雷电主控JHL7440PCIe/USB/DP隧道40Gbps双向供电管理PD3.1控制芯片反向快充坞站供电最高140WUPS后备锂电组BMS断电续命12V/6Ah显卡供电12V直供PCIe辅助独立供电最高450WJHL7440负责和笔记本握手建立PCIe隧道让系统识别到外接显卡。PD3.1部分负责从适配器取电一路给坞站内部器件供电一路反向给笔记本充电。UPS部分在适配器掉电的瞬间接管12V母线保证显卡和硬盘不会因为突然断电而掉盘或者损坏。显卡供电则直接从12V母线取电通过PCIe插槽和辅助供电接口两路供给。这个架构的核心思路是母线统一、分级管理。所有12V负载挂在同一条母线上UPS只在母线电压跌落时介入PD3.1控制器负责和笔记本协商充电功率JHL7440只管数据不管电。这样分工明确任何一块出问题都不会牵连其他部分。1.3 为什么集成UPS而不是外挂很多人第一反应是UPS单独买一个不就行了确实可以但外挂UPS有两个问题。第一体积大桌面本来就挤再放一个方盒子很占地方。第二切换时间不可控。市电掉电到UPS输出稳定中间有几十毫秒的切换窗口如果显卡正在满载跑训练这几十毫秒足够让PCIe链路断开系统直接蓝屏。集成式UPS的好处是切换路径极短。锂电池组通过理想二极管电路直接挂在12V母线上市电正常时由适配器供电并给电池充电市电掉电时电池瞬间接管切换时间在微秒级。显卡根本感觉不到断电训练任务不会中断。这个设计思路借鉴了服务器电源的冗余方案只是把规模缩小到了桌面级别。注意锂电池组必须配BMS保护板过充过放都会导致电池鼓包甚至起火。BMS的放电过流保护要设在30A以上否则显卡瞬时功耗飙升时会触发保护。2. JHL7440主控核心细节与实操要点2.1 JHL7440最小系统搭建JHL7440是一颗BGA封装芯片引脚间距0.4mm手工焊接难度不小。我的建议是直接买现成的核心板或者找代工厂做SMT贴片。自己用热风枪吹的话成功率大概三成而且虚焊问题很难排查。最小系统需要以下几组供电1.05V核心电压给芯片内部逻辑供电电流需求约3A1.8V IO电压给PCIe和USB接口供电电流约1A3.3V辅助电压给控制逻辑和EEPROM供电电流约0.5A这三组电压的时序有严格要求1.05V先上延迟10ms后1.8V上再延迟5ms后3.3V上。顺序错了芯片可能不启动或者PCIe链路训练失败。我用的是TPS650861这颗PMIC它自带时序控制通过电阻分压设定每路的上电延迟比用分立LDO搭省事得多。晶振部分需要一颗24MHz的无源晶振负载电容12pF精度要求±50ppm以内。晶振走线要尽量短包地处理否则雷电握手会随机失败。我第一版就是因为晶振走线太长导致每隔几次插拔就识别不到设备后来重新画板把晶振挪到芯片背面才解决。2.2 雷电接口的PCB布局要点雷电4接口跑40Gbps差分线对信号完整性的要求极高。JHL7440到Type-C座子之间的走线必须满足差分阻抗90Ω±10%等长误差控制在5mil以内过孔数量不超过2个参考平面完整不得跨分割我实测下来等长误差超过8mil的时候DisplayPort隧道就会间歇性黑屏。过孔超过3个的话PCIe链路直接降速到x2。这些参数不是理论值是踩坑踩出来的。Type-C座子建议用沉板式这样显卡坞可以做得更薄。座子下面的PCB要挖空否则插拔的时候应力会传到焊盘上时间长了容易虚焊。我在座子周围打了六个过孔做机械加固插拔了上百次目前还没出问题。2.3 EEPROM配置与固件烧录JHL7440需要一颗EEPROM来存储配置信息包括厂商ID、设备ID、雷电通道配置、PCIe链路宽度等。我用的是24LC256I2C接口地址0xA0。配置内容主要改这几个字段# 雷电通道配置 TBT_CHANNEL_0PCIe TBT_CHANNEL_1PCIe TBT_CHANNEL_2DP TBT_CHANNEL_3USB # PCIe链路配置 PCIE_LINK_WIDTH4 PCIE_LINK_SPEEDGen3 # 电源管理 PD_PROFILE3.1 MAX_POWER140W烧录工具用CH341A编程器就行便宜好用。烧录完之后一定要校验我遇到过好几次写入成功但校验失败的情况原因是EEPROM供电不稳。后来在VCC脚加了一个10uF的钽电容问题就消失了。提示EEPROM里的厂商ID如果填了Intel的保留值Windows会直接蓝屏。建议填一个不冲突的自定义ID比如0x1234。3. PD3.1快充与UPS供电系统实现3.1 PD3.1 140W取电与反向充电PD3.1把电压档位扩展到了28V、36V、48V最大电流5A理论功率240W。这个项目用的是28V/5A档位合计140W。取电芯片选的是SC2001它支持PD3.1全档位并且可以配置成双角色端口——既能从适配器取电也能反向给笔记本充电。电路上SC2001通过CC1和CC2和笔记本协商电压。协商成功后适配器输出28V经过Buck电路降到12V给母线供电。反向充电的时候12V母线升压到28V再通过Type-C口输出给笔记本。这里有个细节升压和降压不能同时工作否则母线电压会震荡。我在固件里加了互斥逻辑检测到适配器插入就关闭反向充电拔出适配器再开启。实测下来给一台16寸笔记本充电功率稳定在135W左右从20%充到80%大概40分钟。显卡满载的时候适配器总输出会到200W以上这时候PD反向充电会自动降到65W优先保证显卡供电。这个优先级逻辑是我在固件里写死的因为显卡掉电的后果比笔记本充电慢严重得多。3.2 UPS锂电池组选型与BMS配置电池组用的是4串18650标称电压14.8V容量6Ah合计约88Wh。选18650而不是软包电池是因为18650的机械强度好不容易被显卡的热量烤鼓包。电芯用的是三星30Q单节放电电流15A4串之后理论放电能力60A带一张300W的显卡绰绰有余。BMS用的是JBD的4串智能保护板带蓝牙和UART输出。保护参数设置如下参数设定值说明过充保护4.25V/串防止过充过放保护2.8V/串防止过放放电过流30A显卡瞬时功耗充电过流10A适配器充电电流均衡电流50mA被动均衡BMS的UART接到主控MCU上可以实时读取电池电压、电流、温度。我在固件里做了个简单的电量计通过库仑积分估算剩余电量精度大概±5%。这个精度够用了毕竟不是用来做精密计量的。注意锂电池组一定要加温度保护。我测试的时候把电池放在显卡出风口旁边温度飙到60度BMS直接切断了输出。后来把电池挪到进风口位置温度稳定在35度左右。3.3 理想二极管与切换电路市电和电池之间的切换用理想二极管电路实现核心器件是LM74700控制器加两颗N沟道MOSFET。市电正常时适配器输出的12V通过MOSFET给母线供电同时给电池充电。市电掉电时适配器输出电压跌落LM74700检测到之后迅速关断适配器通路打开电池通路切换时间小于10微秒。这个切换速度意味着显卡的12V输入电压跌落不超过0.1VPCIe链路完全感觉不到。我实测过满载跑Furmark的时候拔掉适配器显卡功耗曲线没有任何波动训练任务也没有中断。电路里还有个细节电池通路要加一个肖特基二极管做防反接。虽然MOSFET本身有体二极管但体二极管的压降大大电流下发热严重。加一个低压降的肖特基并联可以分担电流降低温升。4. 整机装配与实测数据4.1 结构设计与散热方案外壳用3D打印材料选PETG耐温80度比PLA强不少。打印的时候壁厚设3mm填充率40%这样既有强度又不会太重。显卡坞内部风道是前进后出前面板装两个4010风扇后面板装一个8010风扇。实测下来显卡满载时核心温度比开放式平台高8度左右但比市面上很多封闭式显卡坞低5度以上。显卡固定用的是PCIe x16延长线长度20cm带屏蔽层。延长线不能太长超过30cm信号质量会明显下降。我试过用40cm的线PCIe链路直接降到x4带宽腰斩。20cm是实测下来最稳的长度。4.2 雷电握手与显卡识别测试测试平台是一台Intel笔记本雷电4接口Windows 11系统。插上显卡坞之后系统在3秒内识别到雷电设备5秒内识别到显卡。设备管理器里显示的是“Thunderbolt PCIe Controller”和“NVIDIA GeForce RTX 4070”。跑分数据如下测试项目内置显卡显卡坞外接损耗3DMark Time Spy120001080010%Cinebench R2318000165008.3%大模型推理45 tokens/s40 tokens/s11%损耗主要来自PCIe隧道的编码开销和延长线的信号衰减。10%左右的损耗在可接受范围内毕竟雷电4的40Gbps带宽跑PCIe Gen3 x4已经接近饱和了。4.3 UPS续航与切换实测电池组88Wh显卡待机功耗15W满载300W。待机状态下UPS可以撑5小时以上。满载状态下大概能撑15分钟。这个时间足够保存工作进度并正常关机了。切换测试做了三种场景轻载切换显卡待机时拔适配器系统无感知电池指示灯亮起满载切换Furmark满载时拔适配器帧率无波动训练任务不中断反复切换连续插拔适配器20次每次间隔5秒系统稳定无蓝屏反复切换测试是最考验电路的因为每次切换都有浪涌电流。我在母线上加了一个大容量电解电容做缓冲配合理想二极管的软启动功能浪涌电流控制在10A以内。5. 常见问题与排查技巧实录5.1 雷电设备无法识别这是最常见的问题排查顺序如下检查EEPROM是否烧录正确用编程器读出来对比重点看厂商ID和通道配置测量三组供电电压1.05V、1.8V、3.3V偏差超过5%就会导致握手失败检查晶振是否起振用示波器看24MHz波形幅度应该在1Vpp以上检查Type-C座子焊接CC引脚虚焊会导致PD协商失败进而影响雷电握手我遇到过最诡异的一次是EEPROM数据正确、供电正常、晶振正常但就是不识别。后来发现是Type-C座子的屏蔽壳没接地导致信号完整性出问题。把屏蔽壳接到PCB地之后问题解决。5.2 显卡频繁掉驱动显卡掉驱动通常和供电有关。排查思路测量12V母线电压满载时不能低于11.4V低于这个值显卡会保护性掉驱动检查PCIe辅助供电线线径要够粗18AWG起步细了压降大检查延长线屏蔽屏蔽层要接地否则高频噪声会干扰PCIe信号我第一版用的是22AWG的辅助供电线显卡满载时线材发热严重压降到了11V显卡每隔几分钟就掉一次驱动。换成18AWG之后压降控制在0.2V以内问题消失。5.3 UPS切换时系统重启切换时重启说明切换时间太长或者电池通路内阻太大。排查测量切换时间用示波器看12V母线波形跌落时间超过100微秒就会导致重启检查MOSFET驱动LM74700的驱动能力要够栅极电阻不能太大检查电池内阻内阻超过50mΩ的话大电流下压降会很大我遇到过电池组内阻偏大的情况原因是镍片焊接不良。重新焊接镍片之后内阻从80mΩ降到了25mΩ切换就稳定了。5.4 常见问题速查表现象可能原因排查方法解决方案不识别雷电设备EEPROM配置错误读取EEPROM对比重新烧录正确配置显卡掉驱动12V母线压降大万用表测满载电压加粗供电线UPS切换重启切换时间过长示波器测母线波形换低内阻电池PD不充电CC引脚虚焊万用表测CC通断重新焊接座子频繁蓝屏晶振走线太长示波器看晶振波形重新布局PCB提示调试的时候建议先不接显卡用一张便宜的PCIe网卡做测试。网卡对信号质量的要求比显卡低更容易握手成功。等网卡稳定识别了再上显卡。6. 个人实操体会与后续扩展思路这个项目前前后后折腾了三个月打样了四版PCB烧了两颗JHL7440都是焊接温度过高导致的最后才稳定下来。最大的体会是雷电显卡坞的难点不在数据而在供电。数据部分只要按照Intel的参考设计来基本不会出大问题。供电部分才是坑最多的地方尤其是UPS切换和PD协商的互斥逻辑稍不注意就会导致母线震荡。另一个体会是散热设计要留余量。我第一版外壳设计得太紧凑显卡满载时内部温度到了75度JHL7440开始降速。后来把外壳加高了10mm增加了进风口面积温度降到了60度以下性能就稳定了。后续扩展的话我打算加一个以太网口通过JHL7440的USB通道接一个千兆网卡。这样显卡坞同时还能当扩展坞用一根雷电线搞定显卡、网卡、USB和充电。另外UPS部分可以加一个SNMP模块接入网络管理工具实现远程监控电池状态和市电状态。这个功能对于跑长时间训练任务的场景很实用断电的时候能及时收到告警。最后分享一个小技巧调试PD协商的时候用USB PD分析仪抓包。我用的是一款便宜的PD嗅探器能看到CC线上的所有报文。有一次反向充电一直失败抓包发现是笔记本发了一个不支持的PDOSC2001没有正确回应。后来在固件里加了一个PDO过滤逻辑问题就解决了。没有分析仪的话这个问题能查一整天。
返回列表