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

STUSB4500 PPS(PD3.0)快充SINK模块——应用 解析

请添加图片描述

0 前言

朋友参加车展,收获一枚很漂亮的倍思65W氮化镓快充头,送给我了。
我看了手中只支持33W快充的三星陷入了沉思…

快充头支持PPS协议,我心思这玩意适合做可调电源啊!
上网随便一查没查到,都是转换成5V、9V、12V等固定电压的,商机来了啊!!

直接让DeepSeek给我推荐了一款芯片,DeepSeek大手一挥推荐了ST的STUSB4500
上网一搜除了官网啥资料没有,没毛病,吃螃蟹总要付出点什么~

一顿看手册、看参考设计、画板子、焊板子、调板子炸了两颗芯片
结果全做完了,上立创开源广场一搜,一大堆做PPS协议的可调电源的
当时怎么没换个关键词好好搜搜呢…

不过也不是完全没有意义,因为现有的方案大多数都是安森美的FSUSB302
介绍个别的芯片给大家换换口味,更何况ST这个销量也不错呢

综上,本文可能是STUSB4500这颗PPS SINK芯片的首发帖子了(虽然这颗芯片也出了很久了),主要介绍一下其应用方案及芯片解析。

我的使用经验也不足,有问题烦请指出。

1 资料

STUSB4500 DATASHEET — Standalone USB PD sink controller with short-to-VBUS protections
STUSB4500 官方文档
STUSB4500 官方评估板

2 概述

在这里插入图片描述

主要的特性:

  1. 自动运行TypeC和USB PD接收控制器
    ——指不通过IIC连接MCU也能用
  2. 支持电池耗尽模式
    ——指可以只通过TypeC的 V B U S V_{BUS} VBUS供电给 V D D V_{DD} VDD,不用外接电源
  3. 3个可配置的PDO配置文件
    ——有3个默认的可配置文件,用于决定输出的电压和电流值。当不使用IIC连接
    MCU的时候,将使用优先级最高的配置文件决定输出的电压和电流
  4. 双通道高功率充电路径支持
    ——由两个引脚是开漏输出,用于驱动MOS管,可以由软件或自动控制,达到控制电源路径的目的
    (还有一个引脚用于驱动MOS管,但那个引脚相当于是放电路径的总开关)
  5. V B U S V_{BUS} VBUS引脚最高可耐28V的电压
  6. 双电源供应
    ——当使用电源耗尽模式时,参考特性2;当不使用电源耗尽模式时,可以通过 V S Y S V_{SYS} VSYS给芯片供电
  7. 兼容PD3.0
    ——(也支持PD3.0里的PPS)

综上,我觉得STUSB4500比FSUSB302强的地方主要在于多了3个MOS管控制引脚,用于控制放电路径。

3 引脚定义

在这里插入图片描述

4 要点

4.1 电源耗尽模式

两个参考图都是使用电源耗尽模式的。

快充芯片是用来给移动设备用的嘛,移动设备都会有电池,平时由电池来给STUSB4500供电,当连接快充头(source端)的时候,STUSB4500(sink端)通过CC和source端通信,获取到需要的电压和电流。

而当电池没电的时候,STUSB4500也就没电了,没法和source端建立通信,因此连一个5V都获取不到(如果CC引脚没有接下拉的话)。因此这种时候就需要使用电源耗尽模式,当无法使用电池通过 V S Y S V_{SYS} VSYS引脚给STUSB4500供电时,STUSB4500可以在CC引脚上提供一个下拉,获取到一个电压用于给自己供电,并在后面建立通讯。

电源耗尽模式的硬件接法:

  • CC1DBCC1接一起,CC2DBCC2接一起。

然而,直接量CC引脚对地是量不到下拉电阻的,因为里面的结构大概是这样的 (引用自TI的TPS65988):

在这里插入图片描述
可以把上图的C_CCn看成STUSB4500的CC1,把RCD_DB_EN看成CC1DB

TI的原文解释如下:
.
TPS65988 支持在无电池或电池耗尽状态下通过从 VBUS 获取电力启动系统。Type-C USB 端口要求受电设备(Sink)在 CC 引脚上呈现 Rd(下拉电阻),Type-C 电源(Source)才会在 VBUS 上提供电压。 TPS65988 的硬件设计可在电池耗尽或无电池状态下自动配置这一 Rd 电阻。此外,电路还提供一种机制,在设备不再需要从 VBUS 取电时关闭此 Rd。
.
图 8-16 展示了 C_CCn 引脚的配置,并详细说明了图 8-14 中基础线缆插入与方向检测模块的结构。每个 C_CCn 引脚的下拉 FET 栅极连接了一个电阻 R_RPD。在正常受电模式(Sink)下,下拉电阻为 RD_CC;但在电池耗尽或无电池状态下,电阻未经过校准,此时表现为 RD_DB。当系统在电池耗尽状态下检测到 RD_DB 时,应用程序代码会将其切换为 RD_CC。
.
在此情况下,下拉 FET 的栅极驱动器输出为高阻态(Hi-Z)。当外部连接在 C_CCn 引脚上施加上拉电压(例如连接到带有上拉电阻 Rp 或上拉电流的 DFP 时),通过 R_RPD 的路径会将 FET 栅极电压上拉,从而导通下拉电阻 RD_DB。此时,C_CCn 引脚等效于一个钳位电压 VTH_DB 与电阻 RD_DB 串联的电路。
.
术语解释:
DFP(Downstream Facing Port):Type-C 中的下行端口(如主机或电源),通常配置上拉电阻 Rp。
VTH_DB:钳位电压阈值(与死电池模式相关)。
RD_DB:死电池模式下的下拉电阻值。

4.2 PDO配置文件

4.2.1 PDO概述

PDO全程是Power Data Object,是 PD 协议中用于描述电源能力或电源需求的数据结构。
在这里插入图片描述
STUSB4500支持3组PDO。其中PDO3的优先级最高,PDO1的优先级最低。
PDO1的电压是不可调整的,固定为5V。PDO2和PDO3的电压是可以调整的,参照下表(用户定义参数和默认配置表);PDO1、PDO2和PDO3的电流都是可以调整的。

在这里插入图片描述
在这里插入图片描述

STUSB4500 三个PDO的默认参数如下:

在这里插入图片描述

4.2.2 PDO的匹配流程

决策算法将 SNK_PDO(接收端电源需求) 与 SRC_PDO(源端供电能力) 逐一比较。

从优先级最高的 SNK_PDO 开始,依次向下比较,优先比较电压,再比较电流
如果满足以下条件,则匹配成功,停止对其余PDO的比较
(1) SNK_PDO 电压 等于 SRC_PDO 电压;
(2) SNK_PDO 电流 ≤ SRC_PDO 电流。

匹配成功时,生成 RDO(请求数据对象),包含:
工作电压 = 匹配的 SNK_PDO 电压;
工作电流 = 匹配的 SNK_PDO 电流;
最大电流 = 匹配的 SRC_PDO 电流。

将 RDO 发送给源端,等待源端接受并切换电压,SINK 端收到 PS_READY 后完成协商。

若所有比较均未匹配,则 PD 协商失败,默认采用 5V 供电。
发送 RDO,标记能力不匹配;
工作电流 = 源端 5V PDO 的电流值;
最大电流 = SNK_PDO1 的电流值。

在这里插入图片描述

4.3 电源回路控制

STUSB4500有三个引脚,VBUS_EN_SNKPOWER_OK2POWER_OK3,用于驱动MOS管以控制电流路径。

这三个引脚的有效触发状态可通过IIC配置,当一些条件满足时,该引脚由高阻态变为低电平,MOS管导通,相应的电流回路被激活。

默认状态是Configuration 2:
当检测到VBUS时,VBUS_EN_SNK输出低电平,否则为高阻态;
当匹配PDO2时,POWER_OK2输出低电平,否则为高阻态;
当匹配PDO3时,POWER_OK3输出低电平,否则为高阻态。

在这里插入图片描述
在本文设计的模块中,只使用VBUS_EN_SNK驱动了MOS管,来充当整个放电回路的开关。POWER_OK2POWER_OK3则作为一个引脚引出模块。

5 原理图

5.1 参考原理图

这里主要参考了两个原理图设计:

  • STUSB4500 DATASHEET里的Typical applications:
    在这里插入图片描述
  • 来自MIKROE的评估板的原理图:
    在这里插入图片描述

5.2 模块原理图

  • STUSB4500芯片外围

在这里插入图片描述

  • 放电回路控制

在这里插入图片描述

  • ESD保护
    在这里插入图片描述
  • IIC和RST引脚外围
    在这里插入图片描述

6 PCB

在这里插入图片描述

7 实物演示

  • 上电但是不接USB
    请添加图片描述
  • 接入VBUS和GND,但是不接CC
    可以看到ATTACH引脚的灯没有亮,量VSINK引脚也没有电压输出
    请添加图片描述
  • 再把CC接上
    可以看到ATTACH引脚的灯亮了,并且量VSINK引脚有20V电压输出
    请添加图片描述

8 结语

以上,希望对大家有帮助。

后面我会用STUSB4500做一个超迷你的PPS可调电源,包含LCD显示、过欠压保护、过流保护、短路保护、PC控制等,目前已经申请立创本年度的星火计划了,有兴趣的话可以关注一手,等待后续更新。

PCB会在测完了之后开源在立创广场,届时会把链接更新过来。

http://www.xdnf.cn/news/729865.html

相关文章:

  • [学习] C语言的回调函数(代码示例)
  • 数据基座觉醒!大数据+AI如何重构企业智能决策金字塔(下)
  • 【Linux 学习计划】-- 命令行参数 | 环境变量
  • 【目标检测】【AAAI-2022】Anchor DETR
  • 【Golang进阶】第八章:并发编程基础——从Goroutine调度到Channel通信实战
  • Redis持久化机制
  • MPC5744P——eTimer简介
  • Github 2025-05-30Java开源项目日报Top10
  • 《深入解析Go语言结构:简洁高效的工程化设计》
  • 基于 KubeKey 3.1.9,快速部署 K8s 1.33.0 高可用集群
  • Java复习Day23
  • haproxy 搭建web群集
  • EMQX社区版5.8.5集群搭建踩坑记
  • vscode命令行debug
  • 中国外卖包装废弃物高精度网格图谱(Tif/Excel/Shp)
  • 128、STM32H723ZGT6实现串口IAP
  • 贪心算法实战3
  • 6年“豹变”,vivo S30系列引领手机进入场景“体验定义”时代
  • 交叉编译tcpdump工具
  • File—IO流
  • Vue 3.0 中的路由导航守卫详解
  • [yolov11改进系列]基于yolov11引入轻量级注意力机制模块ECA的python源码+训练源码
  • CVPR 2025论文分享|MGGTalk:一个更加通用的说话头像动画生成框架
  • 60天python训练计划----day40
  • 训练和测试的规范写法
  • Z-AnyLabeling1.0.1
  • Glide NoResultEncoderAvailableException异常解决
  • [网页五子棋][匹配模式]创建房间类、房间管理器、验证匹配功能,匹配模式小结
  • 【Git】
  • DBeaver导入/导出数据库时报错解决方案