当前位置: 首页 > news >正文

基于TPS65982与LM3489的USB PD可变DC-DC电源设计实践

1. 项目概述与背景

最近在做一个基于USB Type-C接口的扩展坞项目,核心需求是让它能作为电源,给连接的笔记本、平板或者手机进行快速充电。这就必须遵循最新的USB Power Delivery(PD)协议。一开始,我直接参考了TI官方的TPS65982评估板(EVM)设计,它用的是PD 2.0 v1.1规范里的“电源描述文件”,只支持5V、12V和20V输出。但当我深入研究最新的PD 2.0 v1.2和PD 3.0规范时,发现事情变了——新的“电源规则”要求供电源必须能提供5V、9V、15V和20V这四档电压。

这个变化看似只是电压值调整,背后其实是协议为了更精细、高效地管理从0到100W的功率范围。比如,给手机快充,9V可能比12V更合适;而一些轻薄本,15V或许就是最佳平衡点。直接用老方案的12V去凑合9V和15V?协议不答应,很多新设备也无法正确握手充电。所以,硬件必须跟着升级。

我的任务,就是基于TPS65982这颗独立的USB Type-C和PD控制器,设计一套新的电源电路,让它能精准、稳定地输出这四档“电源规则”电压。这不仅仅是换个电阻那么简单,它涉及到如何让控制器智能地控制外部电源电路,以及如何选择最合适、最经济的DC-DC架构。经过一番折腾,我最终选定并实现了一套基于LM3489可变降压控制器的方案,实测下来非常稳定。下面,我就把整个设计思路、硬件选型、电路实现以及调试中踩过的坑,毫无保留地分享给大家。

2. 核心需求与方案选型解析

2.1 新旧规范对比与设计挑战

在动手之前,必须搞清楚我们到底要解决什么问题。USB PD协议的本质,是通过CC(Configuration Channel)线进行双向通信,协商出一个双方都同意的供电合同(PD Contract)。这个合同的核心就是电压和电流。

  • 旧规范(PD 2.0 v1.1 - Power Profiles):电压档位是固定的5V, 12V, 20V。设计相对简单,比如我的旧方案,就是用三个独立的DC-DC降压芯片(如TPS54335A)分别产生12V和20V(5V通常由控制器内部或另一个固定DCDC提供),然后通过MOSFET开关选通到VBUS上。
  • 新规范(PD 2.0 v1.2/PD 3.0 - Power Rules):电压变为5V, 9V, 15V, 20V。这个变化直接让旧方案“失效”。你不可能指望设备把12V认成9V或15V。

挑战在于:如何用最少的成本和复杂度,让一个电源电路动态输出这四个电压?TPS65982控制器本身并不产生这些高压,它只负责通信和决策。它需要告诉后级的电源电路:“现在请输出9V”。这就是我们设计的核心——搭建一个能被TPS65982“指挥”的智能电源。

2.2 可选方案深度剖析

当时我主要评估了两种主流架构,它们各有优劣,适用场景不同。

方案一:电源多路复用器这个思路最直接。既然需要4个电压,那我就准备4路独立的DC-DC电路,分别产生5V、9V、15V、20V。然后,用一个由MOSFET构成的“多路选择开关”(多路复用器),根据TPS65982的指令,把对应的一路电压连接到最终的VBUS输出路径上。

  • 优点
    1. 性能最优:每路电源都是独立优化、固定输出的,电压精度和瞬态响应最好。
    2. 易于扩展:在多端口(比如双Type-C口)设备中优势明显。两路9V、15V、20V的电源可以共享给两个端口使用,总体的电源芯片数量可能比方案二更少。
  • 缺点
    1. 成本高、面积大:需要4个DC-DC芯片及其外围电感、电容,BOM成本和PCB面积是硬伤。
    2. 控制逻辑稍复杂:需要额外的逻辑电路或更多GPIO来控制多路MOSFET开关,确保任何时候只有一路导通。

方案二:可变DC-DC转换器这个方案更巧妙。我只用一个DC-DC降压电路,但它的输出电压不是固定的,而是可以通过改变其反馈网络的分压电阻来动态调整。TPS65982通过控制连接到反馈引脚的不同电阻,来“命令”这个DC-DC电路输出9V、15V或20V。

  • 优点
    1. 成本与面积优势巨大:这是它最核心的吸引力。对于单端口设备,只需1个可调DC-DC芯片(代替原来的2-3个固定输出芯片),极大节省了成本和PCB空间。
    2. 控制接口简单:通常只需要2-3个GPIO引脚,通过控制模拟开关(如小信号MOSFET)切换电阻即可。
  • 缺点
    1. 存在切换延时:输出电压切换时,DC-DC环路需要重新稳定,会有几毫秒到几十毫秒的过渡过程。需要仔细评估协议允许的电压变化时间。
    2. 对DC-DC芯片有要求:芯片必须支持宽范围输入输出,且反馈基准电压(Vref)稳定。更重要的是,要输出20V时,如果输入也是20V,芯片必须能支持100%占空比操作(即开关管常开,直通输入电压),否则无法输出满幅的20V。

实操心得:如何选择?对于我的单口扩展坞项目,可变DC-DC方案是毫无疑问的赢家。成本、面积是消费类产品的生命线。虽然多路复用器在性能上略胜一筹,但可变DC-DC的性能对于充电应用来说已经完全足够。唯一需要攻克的难点,就是找到一颗支持100%占空比、适合用电阻网络调压的DC-DC控制器。这也是我最终选择LM3489的关键原因。

2.3 TPS65982的GPIO事件:控制逻辑的核心

无论选择哪种方案,都需要TPS65982来发号施令。这颗芯片的固件提供了一个非常强大的功能:可配置的GPIO事件

在TI提供的配置工具(TPS6598X-CONFIG)里,我们可以将任何一个GPIO引脚映射到一个预定义的“事件”上。对于电源控制,最关键的是这两组事件:

  1. 离散事件:例如Source PDO 1 Negotiated,Source PDO 2 Negotiated... 当芯片协商成功某个电压档位(PDO)的供电合同时,对应的GPIO就会输出高电平。我们可以用这个高电平直接去控制一个MOSFET开关。
  2. 真值表事件:例如Source PDO Negotiated Truth Table, Bit 0。这组事件会将协商成功的PDO索引,以二进制位的形式映射到多个GPIO上。比如用GPIO0和GPIO1两个引脚,可以表示4种状态(00, 01, 10, 11),从而控制一个支持数字编程的电源芯片。

对于我们的可变DC-DC方案,使用离散事件就足够了。我们为9V、15V、20V(5V通常是默认路径)各分配一个GPIO。当协商到15V合同时,对应的GPIO变为高电平,触发外部电路改变DC-DC的反馈电阻,输出电压随之变为15V。

3. 可变DC-DC方案详细设计与实现

确定了可变DC-DC的路线后,接下来就是具体的电路设计与器件选型。这里面的每一个细节都关系到系统的稳定性和可靠性。

3.1 核心器件选型:为什么是LM3489?

选择DC-DC控制器是第一步,也是最重要的一步。我需要一个能满足以下所有条件的芯片:

  1. 宽输入电压范围:覆盖适配器常见的12V-24V输入。
  2. 输出可调:能通过外部电阻精确设定在9V、15V、20V。
  3. 支持100%占空比:这是输出20V的关键。当输入为20V时,芯片必须能让上管(通常是PMOS)持续导通,实现输入到输出的直通,压降仅为MOSFET的导通压降。
  4. 驱动外部PMOS:为了处理可能高达5A(100W@20V)的电流,需要外置大电流MOSFET。
  5. 封装与成本:易于焊接,性价比高。

TI的LM3489完美契合了这些要求。它是一款迟滞控制(Hysteretic)的PFET控制器。迟滞控制本身是一种简单可靠的架构,而它驱动外部PFET的特性,天然支持100%占空比——当需���输出接近输入电压时,它只需让PFET一直开启即可。相比之下,很多常见的同步降压控制器(采用上N下N MOS)在100%占空比时会有体二极管导通的问题,导致效率下降或无法输出满压。

3.2 电压反馈网络设计:精密的电阻舞蹈

可变输出的秘密,全藏在反馈网络里。DC-DC控制器通过FB引脚检测输出电压的分压,并与内部基准电压(Vref, LM3489为0.8V)比较,来调节输出。

基本公式Vout = Vref * (1 + Rtop / Rbottom)

对于固定输出,我们只需计算一对Rtop和Rbottom。但对于可变输出,我们需要一个可变的Rbottom

我的设计思路

  1. 设定一个基础电压(例如9V):选择一组固定的Rtop和Rbottom1,使输出为9V。
  2. 并联电阻切换至其他电压:当需要输出15V时,通过一个MOSFET开关,将另一个电阻Rbottom2并联到Rbottom1上。并联后的总阻值Rbottom_total变小,根据公式,Vout就会升高。
  3. 20V的特殊处理:当需要20V且输入也是20V时,我们实际上希望DC-DC停止开关动作,直接让输入通过PFET到达输出。这可以通过将FB引脚电压拉高到远超0.8V(例如通过一个很小的Rbottom)来实现,迫使控制器进入100%占空比状态。在我的电路中,这是通过一个特定的GPIO控制一个更小的电阻并联实现的。

具体计算示例(以9V和15V切换为例)

  • 假设Vref = 0.8V,Rtop = 100kΩ
  • 目标9V:计算Rbottom_9V = Rtop / (Vout/Vref - 1) = 100k / (9/0.8 - 1) ≈ 100k / 10.25 ≈ 9.76kΩ。我选用标准值9.53kΩ
  • 目标15V:计算Rbottom_15V = 100k / (15/0.8 - 1) = 100k / 17.75 ≈ 5.63kΩ
  • 计算并联电阻:我们需要一个电阻R_add,使得9.53kΩ // R_add = 5.63kΩ。解得R_add ≈ 13.3kΩ。我选用13.32kΩ

这样,当控制9V的GPIO有效时,反馈网络只有100kΩ和9.53kΩ。当控制15V的GPIO有效时,一个13.32kΩ的电阻会通过MOSFET并联到9.53kΩ上,总阻值变为约5.63kΩ,输出即变为15V。

注意事项:电阻精度与温漂反馈电阻的精度直接影响输出电压精度。务必使用1%甚至0.5%精度的薄膜电阻。同时要注意电阻的温漂系数,尤其是应用环境温度变化大的场合。选择温漂系数低的电阻(如25ppm/°C)可以保证在全温度范围内输出电压稳定。

3.3 完整电路架构解析

结合LM3489和TPS65982,整体的电源架构框图如下(基于TI应用报告SLVA782):

20V DC输入 (Barrel Jack) | | [LM3489 Variable Buck Converter] | | | | | +---> FB引脚 <- [电阻网络] <- [TPS65982 GPIO0,1,2,3控制] | | | +--->VIN VOUT (9V/15V/20V) | | | | [固定5V DCDC] [路径选择与驱动] | | +------+--------+ | [TPS65982 功率路径管理] |(内部FET:PP_5V0, PP_HV) | USB Type-C Connector VBUS
  • 输入:来自DC插座的20V直流电。
  • 主可变电源:LM3489电路,产生9V/15V/20V。其FB引脚连接由精密电阻和MOSFET开关组成的网络,受TPS65982的GPIO0-3控制。
  • 固定5V电源:另一个独立的DCDC(如TPS54335A)产生系统所需的5V,同时也作为PD协议的5V源。
  • 路径管理:TPS65982内部集成了功率路径管理FET(PP_5V0用于5V, PP_HV用于高压)。根据协商结果,它会自动导通相应的内部FET,将正确的电压连接到VBUS。
  • 使能与泄放电路:一个关键的细节是LM3489的EN(使能)引脚。我将其连接到TPS65982的另一个GPIO(如GPIO6),该GPIO映射到“连接事件”上。只有当Type-C线缆插入时,DC-DC才被使能,这避免了空载损耗和意外上电。同时,这个GPIO还控制一个LED(如D7)。这个LED不仅是指示灯,更是一个重要的泄放负载。当从高电压(如20V)切换到低电压(如9V)时,输出电容上的电荷需要快速释放以符合PD协议规定的电压下降时间。这个LED提供了约50mA的固定负载,能帮助电容快速放电。

3.4 PCB布局与散热考量

高功率DC-DC的布局至关重要,糟糕的布局会导致效率低下、噪声大甚至不稳定。

  1. 功率环路最小化:LM3489的VIN、SW(开关节点)、GND以及输出电容构成的环路面积要尽可能小。使用宽而短的走线,以减小寄生电感和电阻,降低开关噪声和损耗。
  2. 反馈走线:连接FB引脚的电阻网络走线要远离噪声源(如电感、开关节点)。最好采用“星型”连接,将敏感点直接引回FB引脚,避免在噪声路径上引入压降。
  3. 散热处理:外置的PFET和电感是主要热源。PFET应选用低Rds(on)的型号,并为其提供足够的铜皮面积散热,必要时可添加散热过孔连接到背面或内层的地平面。电感的饱和电流和温升电流需留足余量。
  4. 地平面分割:模拟地(反馈网络、芯片AGND)和功率地(PGND)应单点连接,通常连接在输出电容的负端下方,以防止功率地的噪声干扰敏感的模拟信号。

4. 固件配置与调试要点

硬件设计好了,还需要正确配置TPS65982才能让它“聪明”地工作。

4.1 使用TPS6598X-CONFIG工具

TI提供了图形化的配置工具,这是配置固件的关键。

  1. 导入基础配置:可以从EVM的配置文件开始修改。
  2. 设置Source Capabilities:在“Power”或“PD Policy”部分,定义你的电源能力(Source PDOs)。你需要添加四个Fixed Supply PDO,电压值分别为5V、9V、15V、20V,并设置每档电压下你设备能提供的最大电流(例如5V/3A, 9V/3A, 15V/3A, 20V/5A)。
  3. 映射GPIO事件:这是核心步骤。进入GPIO配置页面。
    • 将GPIO0映射到事件Source PDO 1 Negotiated(假设PDO1是9V)。
    • 将GPIO1映射到Source PDO 2 Negotiated(假设PDO2是15V)。
    • 将GPIO2映射到Source PDO 3 Negotiated(假设PDO3是20V)。
    • 将GPIO6映射到Connection Event(用于使能DC-DC和泄放LED)。
    • 确保这些GPIO被配置为推挽输出模式。
  4. 生成并烧写固件:工具会生成一个二进制配置文件,通过I2C或SPI接口烧写到TPS65982外挂的EEPROM(如W25Q80)中。上电后,芯片会自动加载配置。

4.2 系统上电与协议协商流程

一个完整的工作流程是这样的:

  1. 设备上电:TPS65982初始化,加载固件配置。
  2. 线缆插入:TPS65982检测到CC引脚上的连接,GPIO6输出高电平,使能LM3489,泄放LED点亮。
  3. 广播能力:TPS65982通过CC线向连接的设备(Sink)发送Source Capabilities消息,告知对方“我能提供5V、9V、15V、20V”。
  4. 请求与协商:Sink设备根据自身需求,回复一个Request消息,例如“请给我20V/3A”。
  5. 接受并执行:TPS65982接受请求,建立PD合同。同时,固件触发事件,使对应20V的GPIO2输出高电平。
  6. 控制电源:GPIO2的高电平控制MOSFET,将对应20V的反馈电阻接入LM3489的FB网络。LM3489调整输出至20V。
  7. 导通路径:TPS65982内部相应的PP_HV高压路径FET导通,将20V送至VBUS,开始为设备供电。
  8. 电压切换���如果设备断开并重新连接了一个需要9V的设备,TPS65982会先通过内部电路和泄放LED将VBUS电压快速拉低,然后协商新的9V合同,切换GPIO0,改变LM3489输出,最后导通路径。

4.3 调试与验证实录

调试阶段是最容易踩坑的,下面是我遇到的一些典型问题及解决方法。

问题1:输出电压不准,或切换后电压飘移。

  • 排查:首先用万用表静态测量反馈电阻的阻值,确认是否与计算值一致。然后上电,在空载和带载(用电子负载)情况下分别测量各档位电压。
  • 可能原因与解决
    • 电阻精度或焊接问题:更换为高精度电阻,检查虚焊。
    • MOSFET开关导通电阻影响:小信号MOSFET(如2N7002)的导通电阻(Rds_on)可能达到几欧姆,如果与反馈电阻串联,会引入误差。确保你使用的模拟开关(如SI8409)或MOSFET的导通电阻远小于反馈电阻(至少小两个数量级)。
    • FB引脚寄生电容:连接到FB节点的长走线或开关管的寄生电容可能影响环路稳定性。尽量缩短走线,并在FB引脚到地之间按芯片手册建议放置一个小的补偿电容(如10pF)。

问题2:电压切换时,输出出现大幅过冲或跌落。

  • 排查:使用示波器在输出电容两端观察切换瞬态。
  • 可能原因与解决
    • 环路补偿不足:LM3489是迟滞控制器,本身环路稳定,但反馈电阻的突然变化相当于给环路一个阶跃扰动。可以尝试在反馈电阻上并联一个小电容(如100pF),与电阻形成一个低通滤波,减缓反馈电压的变化速度,从而“软化”切换过程。
    • 泄放能力不足:从高电压切换到低电压时,如果输出电容存储的电荷无法快速释放,电压下降太慢,可能导致协议超时。确保泄放LED(或专用泄放电阻)的电流足够大。计算一下:放电时间 ≈ (C * ΔV) / I_discharge。例如,从20V放到9V,ΔV=11V,输出电容C=100µF,泄放电流I=50mA,则理论时间约为22ms,这在协议允许范围内。

问题3:20V档位输出达不到20V,只有19V左右。

  • 排查:测量输入电压、LM3489的SW节点波形、以及PFET的栅极驱动。
  • 可能原因与解决
    • 未进入100%占空比:这是最常见的原因。检查控制20V档位的反馈电阻是否足够小,确保FB引脚电压被拉得足够高,迫使控制器进入全开模式。用示波器看SW节点,在20V输出时,应该是一条稳定的高电平直线,没有任何开关波形。
    • 路径压降:即使DC-DC输出了20.0V,经过PCB走线、TPS65982的内部FET(PP_HV或PP_EXT)后,到VBUS端口也会有压降。特别是当电流较大时(如5A),走线电阻和FET的Rds_on会产生可观压降(可能达0.1-0.2V)。解决方案是优化功率路径布局,使用更宽更短的走线,并确保TPS65982的散热,防止内部FET因过热而Rds_on增大。

问题4:连接某些设备无法充电或反复断开。

  • 排查:使用USB PD协议分析仪(如Ellisys, Total Phase)监控CC线上的通信报文。
  • 可能原因与解决
    • PDO顺序或属性错误:在配置工具中,确保Source PDO的顺序符合协议要求(通常按电压升序排列)。检查每个PDO的电流能力是否设置合理,是否勾选了“Unconstrained Power”或“Dual Role Power”等不该勾选的选项。
    • VBUS放电时间不满足:协议要求Source在合同失效后,必须在规定时间内(如tVBUSDischarge)将VBUS放到安全电压(通常<5V)。如果泄放电路太弱,可能导致放电超时,被Sink设备视为异常。加大泄放电流或电容值。
    • EMI/噪声干扰CC通信:如果DC-DC的开关噪声耦合到CC线上,可能导致通信错误。确保CC走线远离功率电感和大电流路径,并做好屏蔽。可以在TPS65982的CC引脚附近增加滤波电容(需谨慎,容值太大会影响信号边沿)。

经过上述系统的设计、实现和调试,最终得到的板卡能够可靠地支持USB PD “电源规则”的全部四档电压。这个方案在成本、复杂度和性能之间取得了很好的平衡,特别适合单Type-C端口的电源适配器、显示器、扩展坞等产品。在整个过程中,深刻体会到电源设计与协议栈配合的重要性,任何一个细节的疏忽都可能导致整个系统无法正常工作。希望这份详细的总结,能给正在攻关USB PD设计的工程师们带来实实在在的帮助。

http://www.cnnetsun.cn/news/3600008.html

相关文章:

  • Bit2Watt攻击实战溯源:GPU功耗调制检测、防护加固与电网安全复盘
  • AI打破跨部门的信息壁垒
  • YOLOv26目标检测技术解析与实战部署指南
  • UE4 Niagara碰撞参数优化:解决粒子穿模与性能问题
  • 容器日志驱动选择:json-file、journald 与 fluentd 的场景适配
  • 设备报警系统误报分析与降噪优化方案
  • SQLBot:大模型与RAG技术结合的智能SQL生成工具
  • KVM虚拟化技术在RHEL7中的部署与优化实践
  • 工业视觉系统架构与图像处理技术详解
  • 华为 HCIA-AI 3+1 微认证
  • 工作流平台的事件驱动架构演进:从轮询到实时推送的性能优化路径
  • 文颜MCP Server与LLM结合优化公众号排版与分发
  • Unity编辑器自动化实战:8个高频场景提升开发效率
  • 个人AI实践:万元投入如何提升内容创作效率
  • TVP5146M2视频解码器:I2C配置、VBI数据处理与寄存器详解
  • HarmonyOS开发实战:小分享-系统分享能力——@ohos.systemShare 集成
  • 云南旅行社服务质量实战测评与避坑指南
  • 深入解析MSPM0模拟比较器:从基础电压比较到高级事件联动应用
  • AI精准获客:核心技术解析与行业应用实践
  • BQ28Z610阻抗跟踪算法:从核心原理到RSOC平滑、均衡配置实战
  • AIGC内容检测:方法论与工程实践
  • 城市轨道交通智能调度系统:多智能体协同与深度强化学习实践
  • AIGC与大模型:AI时代的架构新挑战
  • 轻断食真的能减肥吗?聊聊很多人试了却没瘦下来的真相
  • 计算机毕业设计之中医知识分享平台
  • Tiger AI Plateform平台中外接标注工具操作说明(小白入门)
  • TVP5154A多通道视频解码芯片:架构解析与实战调试指南
  • 蓝牙连接不稳定?从握手协议到环境干扰的全面解析
  • 从 Demo 到生产:为什么你的 LangGraph Agent 上线即崩,权限与…
  • 基于控制障碍函数的安全轨迹跟踪控制实现