2. PD控制器硬件基础:典型PD控制器芯片引脚功能、内部框图、电源与时钟要求

好,咱们进入正题。这一章我打算聊聊PD控制器的硬件基础。说白了,就是那些芯片长什么样,每个引脚干嘛用的,内部又是怎么个结构。我个人习惯是,拿到一个新芯片,先不看手册里的长篇大论,而是先瞄一眼引脚图和内部框图。这就像看一个人的骨架,骨架清楚了,后面就好办了。

咱们今天挑两个最典型的芯片来聊:FUSB302和STUSB4500。这两款芯片我都在项目里用过,一个偏简单,一个功能更全。你想想看,搞懂了它们,其他PD控制器基本也就触类旁通了。

2.1 FUSB302:一颗小巧的PD物理层芯片

FUSB302是安森美(ON Semiconductor)出的,主打一个“小”字。它主要负责PD协议里的物理层和一部分协议层工作。说白了,它就是个翻译官,把MCU发过来的指令,转成CC线上能跑的PD信号。

2.1.1 引脚功能

FUSB302的封装很小,常见的是WLCSP 9-ball或者QFN 14-pin。引脚不多,但个个关键。我列个表,你看着会更清楚。

引脚名 功能描述 我的一点经验
VDD 电源输入,典型值3.3V 注意滤波,我习惯在VDD引脚附近放一个0.1μF的陶瓷电容,再加一个1μF的钽电容。
VSS 没啥好说的,铺铜要铺好。
CC1 / CC2 配置通道引脚,用于PD通信和检测 这是PD的灵魂引脚。CC线上有下拉电阻(Rd)或上拉电阻(Rp),用来确定角色是Source还是Sink。我在调试时,经常用示波器抓这两个脚的波形,看通信是否正常。
SCL / SDA I2C接口,用于和MCU通信 标准I2C,速率400kHz就够用了。注意上拉电阻,我一般用4.7kΩ。
INT_N 中断输出,低电平有效 这个脚很重要。当有PD事件发生时(比如插入、拔出、协商成功),芯片会拉低这个脚通知MCU。MCU的GPIO要配置成下降沿触发中断。
VBUS_EN VBUS使能控制输出 用来控制外部VBUS开关的。当PD协商通过后,这个脚输出高电平,打开VBUS。
小提示: 我曾经在一个项目里,因为CC1和CC2的走线太长,导致信号质量变差,PD协商老是失败。后来我把走线控制在5cm以内,问题就解决了。所以,CC线的走线一定要短,尽量远离高频信号。

2.1.2 内部框图

FUSB302的内部框图不算复杂。核心是一个状态机,负责处理PD协议。它通过CC收发器(CC Transceiver)跟外部通信。I2C接口则负责跟MCU交换数据。还有个VBUS检测模块,用来监测VBUS电压。

嗯,这里要注意,FUSB302本身不直接控制VBUS的开关,它只是输出一个使能信号。真正的VBUS开关,需要外接一个PMOS或者专门的负载开关芯片。我习惯用TI的TPS22965,内阻小,发热低。

2.1.3 电源与时钟要求

电源方面,FUSB302只需要一个3.3V供电。电流消耗很小,典型值在几百微安到几毫安之间。时钟方面,它内部有一个振荡器,不需要外部晶振。这算是个优点,省了一个元件,也省了PCB空间。

核心要点: FUSB302适合做Sink(受电端)或者DRP(双角色端口)。如果你只是想让你的设备能通过Type-C充电,用FUSB302加一个便宜的MCU(比如STM32G0)就足够了。

2.2 STUSB4500:一颗自带电源管理的PD控制器

STUSB4500是意法半导体(ST)的,功能比FUSB302强大多了。它不光能处理PD协议,还能直接控制一个可编程的电源路径。说白了,它更像一个“独立”的PD控制器,不需要MCU也能完成基本的PD协商。

2.2.1 引脚功能

STUSB4500的引脚多一些,常见的是QFN 24-pin。我挑几个关键的说说。

引脚名 功能描述 我的一点经验
VDD 主电源,3.0V ~ 5.5V 供电范围宽,可以直接用VBUS供电,省一个LDO。但我建议还是用3.3V,更稳定。
VREG 内部稳压器输出,需外接电容 这个脚要接一个1μF的电容到地。别省这个电容,否则芯片工作不稳定。
CC1 / CC2 配置通道引脚 跟FUSB302类似,但STUSB4500内部集成了Rp和Rd电阻,外部不用再挂了。这省了不少事。
SCL / SDA I2C接口 同样用于配置和读取状态。但STUSB4500支持NVM(非易失性存储器),配置可以烧录到芯片内部,上电自动加载。
INT_N 中断输出 功能类似FUSB302。
VBUS_SENSE VBUS电压检测输入 用来监测VBUS的实际电压。我一般通过一个分压电阻网络接到VBUS上。
GATE 外部N-MOSFET栅极驱动输出 这个脚厉害了。它可以直接驱动一个N-MOSFET,用来控制VBUS的通断。省掉了外部的负载开关芯片。
VBUS_DISCH VBUS放电控制 当断开连接时,用来快速放掉VBUS上的电荷,符合Type-C规范。
警告: 我曾经在STUSB4500的GATE引脚上吃过亏。驱动N-MOSFET时,要注意栅极的充放电速度。如果驱动能力太强,可能会引起振荡。我后来在GATE到MOSFET栅极之间串了一个10Ω的电阻,问题就解决了。

2.2.2 内部框图

STUSB4500的内部框图比FUSB302复杂不少。它有一个完整的电源管理单元(PMU),包括一个可编程的降压转换器(Buck Converter)或者线性稳压器(LDO),用来将VBUS转换成系统需要的电压。它还集成了NVM,可以存储PDO(电源数据对象)等配置信息。

你想想看,这意味着什么?意味着你可以把STUSB4500配置成固定的电压输出(比如5V、9V、12V),然后它自己就能完成PD协商,完全不需要MCU参与。这对于一些简单的应用(比如充电底座)来说,简直是神器。

2.2.3 电源与时钟要求

STUSB4500的电源要求比FUSB302灵活。它可以直接用VBUS供电(最高到28V),内部有LDO降压。当然,也可以用外部3.3V供电。时钟方面,它同样不需要外部晶振,内部有RC振荡器。

核心要点: STUSB4500适合做Source(供电端)或者需要独立运行的PD应用。如果你不想用MCU,或者想简化设计,STUSB4500是首选。它的NVM功能可以让你“一次配置,终身使用”。

2.3 两种芯片的对比与选型建议

好了,两个芯片都聊完了。我做个简单的对比,方便你选型。

特性 FUSB302 STUSB4500
角色 Sink / DRP Source / Sink
是否需要MCU 必须 可选(可独立运行)
内部电源路径 有(可编程)
NVM
外部元件数量 较多(需要Rp/Rd电阻、VBUS开关) 较少(内部集成)
成本 较低 较高
灵活性 高(由MCU决定) 中(由NVM决定)

我个人建议:

  • 如果你的项目是做一个智能设备,需要跟PD Source进行复杂的协商(比如要20V 5A),而且你已经有MCU了,那选FUSB302,成本低,灵活度高。
  • 如果你的项目是做一个充电器或者充电底座,只需要输出固定的几个电压,而且不想用MCU,那选STUSB4500,省事,稳定。

嗯,这一章就到这里。下一章我会讲讲PD协议栈的软件架构,包括如何用状态机来管理PD通信。到时候我会拿FUSB302的驱动代码来举例,咱们手把手写一个。