android PMU

   什么是PMU(PMIC)
       PMU(power management unit)就是电源管理单元,一种高集成的、针对便携式应用的电源管理方案,即将传统分立的若干类电源管理芯片,如低压差线性稳压器(LDO)、直流直流转换器(DC/DC),但现在它们都被集成到手机的电源管理单元(PMU)中,这样可实现更高的电源转换效率和更低功耗,及更少的组件数以适应缩小的板级空间,成本更低。

PMU作为消费电子(手机、MP4、GPS、PDA等)特定主芯片配套的电源管理集成单元,能提供主芯片所需要的、所有的、多档次而各不相同电压的电源,同电压的能源供给不同的手机工作单元,像处理器、射频器件、相机模块等,使这些单元能够正常工作。按主芯片需要而集成了电源管理,充电控制,开关机控制电路。包括自适应的USB-Compatible的PWM充电器,多路直流直流转换器(BuckDC-DCconverter),多路线性稳压器(LDO),Charge Pump,RTC电路,马达驱动电路,LCD背光灯驱动电路,键盘背光灯驱动电路,键盘控制器,电压/电流/温度等多路12-BitADC,以及多路可配置的GPIO。此外还整合了过/欠压(OVP/UVP)、过温(OTP)、过流(OCP)等保护电路。高级的PMU可以在USB以及外部交流适配器、锂电池和应用系统负载之间安全透明的分配电能。动态电源路径管理 (DPPM) 在系统和电池充电之间共享交流适配器电流,并在系统负载上升时自动减少充电电流。调整充电电流和系统电流分配关系,最大程度保证系统的正常工作,当通过 USB 端口充电时,如果输入电压降至防止 USB 端口崩溃的阈值以下,则基于输入电压的动态电源管理 (IDPM) 便减少输入电流。当适配器无法提供峰值系统电流时,电源路径架构还允许电池补偿这类系统电流要求。

       LDO是利用较低的工作压差,通过负反馈调整输出电压使之保持不变的稳压器件。压差小的话用LDO,带可关断功能便于电源管理。压差大的还是用DC-DC效率高。

按照系统需要能提供多种电压的电源,这些电压是电压调整所需的,另外这些电源还可以与功能同步开、关这些供电电压,以支持电压域切换。

PMU一般是和主芯片绑定定制的。因为它要配合CPU的上电时序。某些电压的上电顺序和之间的时间间隔有先后关系和时间要求。这个是掩模好的。PMU其实是带有掩模程序的专用电源控制器。要32.768KHZ的晶体和19.2M的晶体.待机状态是32.768KHZ的晶体工作,正常工作是19.2M的主晶体工作。
       靠上电池后PMIC进入待机状态,PMU由32.768KHZ的晶体提供时钟,按POWER按键触发开机后,安装定制的开机顺序将对应的LDO,DC-DC打开,19.2M的主时钟工作,CPU电源正常后,输出设置给CPU,输出复位信号给CPU,释放复位信号,CPU开始启动。CPU输出PS_HOLD信号将PMIC的状态处于工作状态。(关机的时候CPU将PS_HOLD拉低电,PMIC关闭进入关机状态)

CPU工作正常后,可以通过I2C接口对PMIC的各个模块进行控制。比如系统变频的时候,不同的工作频率要调整core电压到对应的电压。RTC时间的设置和ALARM的时钟。同时PMIC可以将异常事件产生中断信号给CPU,CPU再进行中断处理。

PMIC的电源越多,对系统的模块供电就越细,各个模块的电源受牵连就小,所以就越省电。


1.基本概念

PMIC: Power Management IC电源管理IC

相关接口代码

U32 pmic_config_interface (U32 RegNum, U32 val, U32 MASK, U32 SHIFT)

preload:alps\mediatek\platform\mt6582\preloader\src\drivers\pmic_6323.c

lk:alps\mediatek\platform\mt6582\lk\mt_pmic.c

kernel:alps\mediatek\platform\mt6582\kernel\drivers\power\pmic_mt6323.c


LDO是low dropout regulator,意为低压差线性稳压器,LDO类的电源转换芯片。

相关接口定义:

上电接口函数:hwPowerOn
掉电接口函数hwPowerDown

alps\mediatek\platform\mt6582\kernel\core\mt_pm_ldo.c


2.上电、掉电配置方法(preload 、lk、 kernel、系统启动后四个阶段):

2.1 preload 、lk 阶段配置:
下面是在LK阶段的上电/掉电方法:
使用upmu_common.c文件里面API来分别控制每一个LDO_VGPX.
比如:
upmu_set_rg_vgp6_vosel 用来控制上电的电压值;
upmu_set_rg_vgp6_en 用来控制enable VGP6这个pin 

2.2 kernel 阶段配置:

上电接口函数:hwPowerOn
掉电接口函数hwPowerDown
以下以PMIC6320的VGP6为例。
请在您要上电的文件#include <mach/mt_pm_ldo.h> 上电请调用 hwPowerOn,掉电请调用hwPowerDown
hwPowerOn(MT65XX_POWER_LDO_VGP6, VOL_2800, "ldo_test");
bool hwPowerDown(MT65XX_POWER_LDO_VGP6, "ldo_test");

2.3系统启动后阶段配置:

系统正常启动后,kernel都是跑起来的,所以上电/掉电的操作都应该放在kernel里面。


驱动电压修改:

lcm vgp1驱动电压:

\alps\mediatek\custom\common\kernel\lcm\rgb_mt8193\rgb_mt8193.c

static void lcm_init(void){

         upmu_set_rg_vgp1_vosel(0x7);//驱动电压修改--->pmic_config_interface()

         upmu_set_rg_vgp1_en(0x1);

}


mt6323 电压等级对应文件:

\alps\mediatek\platform\mt6582\kernel\drivers\power\pmic_mt6323.c

举例说明:vgp1电压等级映射表:

void dct_pmic_VGP1_sel(kal_uint32 volt)

{

    if(volt == VOL_DEFAULT)     { upmu_set_rg_vgp1_vosel(5);}

    else if(volt == VOL_1200){ upmu_set_rg_vgp1_vosel(0);}

    else if(volt == VOL_1300){ upmu_set_rg_vgp1_vosel(1);}

    else if(volt == VOL_1500){ upmu_set_rg_vgp1_vosel(2);}

    else if(volt == VOL_1800){ upmu_set_rg_vgp1_vosel(3);}

    else if(volt == VOL_2000){ upmu_set_rg_vgp1_vosel(4);}

    else if(volt == VOL_2800){ upmu_set_rg_vgp1_vosel(5);}

    else if(volt == VOL_3000){ upmu_set_rg_vgp1_vosel(6);}

    else if(volt == VOL_3300){ upmu_set_rg_vgp1_vosel(7);}

    else{

    }

}


### PMU 和 VBAT 的电源管理单元电池电压监控电路设计及应用 #### 1. PMU 功能概述 FR801xH 集成了完整的电源管理单元 (PMU),其中包括 SISO DC-DC 转换器、各种 LDO、CCCV 充电器以及多个功能模块,如中断控制器、开关逻辑和 RTC 等[^1]。这些组件共同协作,确保系统的高效运行并优化功耗。 #### 2. IPSOUT 和 BAT 的通路选择机制 PMIC 实现了对 IPSOUT 和 BAT 的动态切换控制。具体而言: - 当外部供电源(ACIN 或 VBUS)能够提供充足的电力时,IPSOUT 将作为主要供电路径。 - 如果 IPSOUT 的电压降至低于 VBAT 减去 40mV,则表明外部电源无法满足当前负载需求,此时系统会自动切换至内部电池供电模式[^2]。 这种设计不仅提高了系统的可靠性,还延长了设备的工作时间。 #### 3. PMU 开机启动与初始化过程 为了实现稳定的上电顺序和快速响应,PMU 设定了严格的开机条件和初始化流程。以下是其核心要点: - **开机触发事件**:可以通过 ACIN 输入的有效信号变化、VBUS 达到阈值或者用户手动按下 Power 键来激活系统。 - **初始化阶段**:在此期间完成各子模块的状态配置,例如设置 DC-DC 输出电压水平、调整 LDO 参数以及使能必要的外设接口等操作[^3]。 #### 4. 应用实例分析 某款嵌入式开发板采用了基于 PMU 的设计方案,具备以下特点: - 板卡尺寸紧凑仅为 75mm×55mm,同时保留丰富的 GPIO 接口资源; - 支持多类存储介质扩展选项,包括但不限于 emmc 类型; - 提供低功耗待机特性并通过特定硬件结构增强续航表现; - 完全适配主流操作系统环境像 Linux/Android 平台; - 增强网络连接能力配备千兆以太网端口; - 引入现代化显示交互手段借助 MIPI 技术链接显示屏元件[^4]。 以上提到的功能均依赖于高效的能源调度策略,而这正是得益于先进 PMU 架构的支持。 ```python # 示例代码展示如何读取电池状态 def read_battery_status(): vbat_voltage = adc_read_channel('VBAT') # 使用 ADC 获取 VBAT 数据 ipsout_voltage = adc_read_channel('IPSOUT') # 同样方法测量 IPSOUT if ipsout_voltage < (vbat_voltage - 0.04): return 'Switching to Battery Mode' else: return 'Running on External Power' print(read_battery_status()) ``` 此函数通过比较两个关键节点上的实际采样值得出结论关于现在采用哪种能量供给形式。 #### 结论 综上所述,现代电子产品的成功离不开精心规划的电源管理系统。从基础理论探讨到实践案例剖析可以看出,合理运用 PMU 不仅可以简化整体架构还能显著提升用户体验品质。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值