4、电源管理单元设计:PDA功耗模型分析、PMIC选型(TI TPS系列/Qualcomm PM系列)、电池充电管理(BQ系列芯片)、电源轨顺序控制与低功耗模式
电源管理,说白了就是PDA的“心脏”和“血管”系统。我见过太多项目,功能逻辑写得飞起,结果一上电池就趴窝,或者屏幕闪得像迪斯科。嗯,这章咱们就把电源管理这块硬骨头啃下来。
4.1 PDA功耗模型分析:知己知彼
做电源设计之前,你得先搞清楚你的PDA到底能吃多少“饭”。我个人习惯是先画一张功耗地图,把每个模块的电流需求标出来。
典型的PDA功耗模型可以分为几个档位:
- 待机模式(Suspend): 只有RTC和唤醒逻辑在工作。电流通常在几十微安到几百微安。我做过一个项目,待机电流做到50μA以下,电池能撑一个月。
- 空闲模式(Idle): CPU在跑,但没跑重任务,屏幕可能半亮。电流在几十毫安级别。
- 活跃模式(Active): 用户正在操作,CPU全速,屏幕全亮,Wi-Fi/蓝牙开着。电流轻松上几百毫安甚至安培级。
- 峰值模式(Peak): 比如同时开GPS导航、录像、4G通话。这时候电流可能瞬间冲到2A以上。
关键点: 设计电源时,不能只看平均电流。峰值电流决定了电源芯片的瞬间带载能力,搞不好会触发过流保护,直接黑屏重启。
我曾经在一个手持设备上吃过亏。待机电流算得好好的,结果一进电话模式,PA(功率放大器)瞬间拉电流,PMIC直接保护了。后来加了足够的去耦电容才解决。
4.2 PMIC选型:TI TPS系列 vs Qualcomm PM系列
PMIC(电源管理集成电路)是整个系统的“配电柜”。选型时我一般看三点:集成度、效率、以及配套的软件生态。
4.2.1 TI TPS系列:灵活、通用、文档全
TI的TPS系列,比如TPS65218、TPS65910,是我个人非常喜欢用的。它们的特点是:
- 多路输出: 通常集成了3-4路BUCK(降压)和几路LDO(低压差线性稳压器),基本覆盖CPU、DDR、IO、模拟等电源轨。
- 可配置性强: 通过I2C接口,可以动态调整输出电压和上电时序。这在调试阶段特别方便。
- 文档极其详细: TI的Application Note会告诉你每个电容怎么摆,电感怎么选。对于新手来说,照着做基本不会翻车。
我的小技巧: 选TPS系列时,记得看它的“Power-Up Sequencing”章节。TI通常会给出一个默认的时序图,但实际项目中我建议根据CPU的Datasheet重新配置,别偷懒。
4.2.2 Qualcomm PM系列:深度绑定、效率高
如果你用的是高通平台(比如骁龙系列),那PM系列(如PM8953、PM660)几乎是唯一选择。为什么?
- 协议绑定: 高通PMIC通过SPMI(系统电源管理接口)与主芯片通信,这个协议是保密的,第三方芯片很难兼容。
- 动态电压调节(DVS): 高通PMIC和CPU之间有硬件握手信号,可以根据负载实时调整电压,效率极高。
- 集成度高: 连音频编解码、触控反馈、LED驱动都集成进去了,省了不少PCB面积。
但要注意,高通PMIC的配置非常复杂,通常需要配合高通的PIL(平台初始化库)来搞。我记得第一次调PM660的时序,光看那几百页的寄存器手册就看了三天。
| 特性 | TI TPS系列 | Qualcomm PM系列 |
|---|---|---|
| 适用平台 | 通用(TI、NXP、Rockchip等) | 高通平台专用 |
| 控制接口 | I2C/SPI | SPMI(私有协议) |
| 动态调压 | 需外部MCU配合 | 硬件自动DVS |
| 开发难度 | 中等(文档好) | 高(需高通工具链) |
| 典型型号 | TPS65218, TPS65910 | PM8953, PM660 |
4.3 电池充电管理:BQ系列芯片
PDA用的是锂电池,充电管理可不是简单地把正负极接上就行。TI的BQ系列是业界标杆,我几乎每个项目都用它。
充电的三个阶段:
- 预充电(Pre-charge): 电池电压低于3.0V时,用小电流(比如0.1C)激活电池。防止损坏深度放电的电池。
- 恒流充电(CC): 电压达到3.0V后,用设定的大电流(比如1C)快速充电。这是主要充电阶段。
- 恒压充电(CV): 电压达到4.2V(或4.35V)后,电流逐渐减小,直到充满截止。
警告: 千万别用万能充那种傻充方案。锂电池对过充、过放、过温极其敏感。BQ系列芯片内置了这些保护,但PCB布局时一定要把NTC热敏电阻紧贴电池,否则温度检测就是摆设。
我常用的型号是BQ25890。它支持USB OTG(输出5V给外设),还集成了Power Path管理。什么意思?就是插着充电器时,系统直接由充电器供电,电池只负责充电。这样即使电池坏了,插电也能开机。
// BQ25890 典型配置(I2C写入)
// 设置充电电流为 2A
i2c_write(0x6A, 0x02, 0x20); // REG02: ICHG = 2A
// 设置充电电压为 4.2V
i2c_write(0x6A, 0x04, 0x4A); // REG04: VREG = 4.2V
// 使能充电
i2c_write(0x6A, 0x00, 0x01); // REG00: EN_CHG = 1
4.4 电源轨顺序控制与低功耗模式
这是最容易出问题的地方。CPU、DDR、IO、模拟电路,它们上电和下电的顺序是有严格要求的。搞反了,轻则无法启动,重则烧芯片。
4.4.1 上电时序:先核心,后IO
以典型的ARM Cortex-A系列为例,上电顺序一般是:
- VDD_CORE(核心电压,比如1.1V)
- VDD_DDR(内存电压,比如1.35V)
- VDD_IO(IO电压,比如1.8V/3.3V)
- VDD_PLL(锁相环电压,通常1.8V)
为什么?因为CPU核心先起来,才能开始初始化DDR控制器。如果DDR电压先起来,核心还没起来,DDR的IO引脚可能处于不确定状态,产生大电流。
实现方式: 最简单的是用PMIC的Power Good信号级联。比如TPS65218的每个BUCK输出都有一个PG引脚,你可以把上一路的PG接到下一路的使能脚上。这样天然保证了顺序。
4.4.2 下电时序:反着来
下电时,要先关IO,再关DDR,最后关核心。我曾经在一个项目里忽略了这一点,下电时DDR还在工作,核心电压先掉了,结果DDR里的数据全乱了,下次开机直接卡死在bootloader。
4.4.3 低功耗模式:从硬件层面省电
PDA是电池设备,低功耗是核心竞争力。除了软件上的睡眠/唤醒,硬件上可以做这些:
- 关闭未使用的电源轨: 比如待机时,把Wi-Fi、蓝牙、摄像头的LDO全部关掉。用GPIO控制使能脚即可。
- 使用负载开关: 对于大电流的外设(比如4G模块),建议用专门的负载开关(如TPS22918),而不是直接用PMIC的LDO。因为LDO在轻载时效率很低。
- 保持DDR自刷新: 进入睡眠时,让DDR进入自刷新模式,电压可以降到1.2V甚至更低。这能省下几十毫安。
避坑指南: 我曾经设计过一个低功耗模式,待机电流算下来只有100μA。结果实际测试有5mA。查了半天,发现是PMIC的一个LDO没关,它给一个悬空的GPIO供电,那个GPIO内部有上拉电阻,一直在漏电。所以,不用的引脚一定要配置成高阻或下拉。
好了,电源管理这块内容不少,但核心就是:算清楚功耗、选对PMIC、管好充电、控好时序。下一章咱们聊聊PDA的存储系统设计,包括eMMC和UFS的选择,以及DDR的布局要点。