4、VBUS路径设计:VBUS开关管(FET)选型、理想二极管 vs 负载开关、反向电流保护
好,咱们接着聊VBUS路径。这部分是Type-C电源路径里最“硬”的环节,说白了就是电流从哪走、怎么走、走的时候别出事。我当年第一次做Type-C项目时,就在这上面栽过跟头——选了个看似参数不错的FET,结果反向电流把整个系统搞崩了。嗯,今天咱们就把这块掰开揉碎了讲清楚。
4.1 VBUS开关管(FET)选型:别只看导通电阻
很多人选FET,第一眼就看Rds(on)。这没错,但远远不够。你想想看,VBUS路径上的FET要扛的可不是普通信号,而是5V到20V的电压,电流从几百毫安到5A都有可能。
我个人的选型清单,通常按这个顺序来:
- Vds耐压:必须大于VBUS最大电压,留20%余量。比如支持20V PD,至少选25V的FET。我见过有人用20V的FET卡着极限跑,结果一个浪涌就击穿了。
- Vgs阈值:Type-C控制器通常输出3.3V或5V的栅极驱动,所以Vgs(th)要低于2V,最好在1.5V左右。不然驱动电压不够,FET半开半关,发热严重。
- Rds(on):这个大家都懂,但要注意是@Vgs=4.5V还是10V下的值。很多FET标的是10V下的Rds(on),实际驱动只有3.3V时,电阻可能翻倍。
- Qg(栅极电荷):这个容易被忽略。Qg太大,开关速度慢,切换瞬间损耗大。我一般选Qg在10nC以下的。
- SOA(安全工作区):特别是热插拔场景,FET要能承受短时间的过流。我习惯看SOA曲线,确保在10ms内能扛住2倍额定电流。
避坑指南:我曾经在一个快充项目里,选了颗Rds(on)只有5mΩ的FET,觉得稳了。结果一测,Vgs只有3.3V时,Rds(on)飙到了18mΩ,满载5A时发热到120°C。后来换了颗Vgs(th)更低的FET,问题才解决。
4.2 理想二极管 vs 负载开关:两种思路的博弈
VBUS路径上,我们有两种主流方案:理想二极管和负载开关。它们各有千秋,我分别说说。
4.2.1 理想二极管方案
理想二极管,说白了就是用FET模拟二极管的单向导通特性,但压降极低。它的核心是:当VBUS电压高于系统电压时,FET导通;反之则关断。
优点:
- 正向压降极低(几十mV),效率高
- 天然防反接,不需要额外电路
- 切换速度快,适合电池供电场景
缺点:
- 控制逻辑复杂,需要比较器和驱动电路
- 反向恢复时间虽然比肖特基短,但仍有延迟
- 成本比普通FET高
我的经验:理想二极管适合电池供电的便携设备,比如手机、平板。我在一个TWS耳机充电仓项目里用过,待机电流只有几微安,效果很好。
4.2.2 负载开关方案
负载开关就是一个简单的N沟道或P沟道FET,由控制器直接控制通断。它不关心电压方向,只负责“开”或“关”。
优点:
- 控制简单,一个GPIO就能搞定
- 成本低,一颗FET加几个电阻就行
- 导通电阻可以做到很低
缺点:
- 没有天然的反向阻断能力,需要额外加保护
- 如果控制信号丢失,可能一直导通
- 热插拔时容易产生浪涌电流
注意:负载开关方案一定要配合反向电流保护电路,否则一旦VBUS电压倒灌,后果很严重。我见过一个案例,USB口插反了,负载开关没关断,直接把主板的3.3V rail烧了。
4.3 反向电流保护:这是保命的设计
反向电流保护,英文叫Reverse Current Protection,简称RCP。它的作用很简单:防止电流从系统端倒灌回VBUS。为什么会发生?比如系统端有电池,VBUS端突然掉电,电流就会从电池通过FET倒灌出去。
常见的实现方式有三种:
| 方案 | 原理 | 优缺点 |
|---|---|---|
| 肖特基二极管 | 串联在VBUS路径上 | 简单可靠,但压降大(0.3-0.5V),发热严重 |
| 背靠背FET | 两个FET源极相连,栅极独立控制 | 双向阻断,压降低,但控制复杂,成本高 |
| 集成RCP的负载开关 | 芯片内部集成反向电流检测和关断逻辑 | 最省心,但贵,且可选型号少 |
我个人最推荐背靠背FET方案。为什么?因为它既能实现低导通压降,又能做到真正的双向阻断。我在一个100W PD充电器项目里用过,两个FET背靠背,一个负责正向导通,一个负责反向阻断,配合控制器的死区时间管理,效果非常好。
关键设计要点:
- 两个FET的栅极必须独立控制,不能短接
- 切换时要有死区时间,防止瞬间短路
- 检测反向电流的阈值要设得足够低,我一般设在50mV左右
4.4 实际电路设计示例
好了,理论讲完了,咱们看个实际电路。这是一个典型的Type-C VBUS路径,包含背靠背FET和反向电流保护。
// 伪代码:VBUS路径控制逻辑
if (VBUS_present == TRUE) {
// 正向导通
FET1_ON();
delay(10us); // 死区时间
FET2_ON();
} else {
// 反向阻断
FET2_OFF();
delay(10us);
FET1_OFF();
}
// 反向电流检测
if (V_system - V_VBUS > 50mV) {
// 检测到反向电流,立即关断
FET2_OFF();
FET1_OFF();
set_alert_flag();
}
这段代码看着简单,但实际调试时坑不少。我记得有一次,死区时间设得太短,两个FET同时导通,瞬间电流飙升,直接把电源保护了。后来把死区时间从5us改到15us,问题才解决。
小技巧:如果你用集成RCP的负载开关芯片,比如TI的TPS25982,可以省掉很多外围电路。但要注意,这类芯片的响应时间一般在几微秒,对于快速反向电流可能不够。我习惯在芯片外面再加一个快速比较器做双重保护。
4.5 总结与避坑清单
好,咱们把VBUS路径设计的要点捋一遍。你设计时,可以对照这个清单检查:
- FET的Vds耐压是否留了20%余量?
- Vgs驱动电压是否足够?Rds(on)是在实际Vgs下测的吗?
- 有没有考虑反向电流保护?是二极管、背靠背FET还是集成方案?
- 死区时间是否足够?建议至少10us起步。
- 热插拔时,FET的SOA是否满足浪涌电流要求?
最后一句忠告:VBUS路径设计,宁可保守,不要激进。我曾经为了省几分钱,选了个便宜的FET,结果返修率高了3倍。嗯,从那以后,我选FET只看性能,不看价格。
下一章咱们聊CC逻辑检测和配置通道设计,那是Type-C通信的核心,也是很多工程师容易搞混的地方。到时候见。