现在的位置: 首页 > 技术文章 > Tiny4412专区 > 裸机程序 > 正文

exynos 4412 电源管理芯片PMIC 的配置及使用方法

2015年10月02日 裸机程序 ⁄ 共 3365字 ⁄ 字号 暂无评论 ⁄ 阅读 341 次

一、概览

S5M8767A有9路BUCK和28路LDO,暂且可以当成共有37路供电电路。这37路供电电路最低可以使用6.25mV的步进电压,多达60多个电压档位可以做到对输出电压的精确控制。另外S5M8767A还有一个硬件RTC,可以在有外部电池供电的情况下保存时钟信息。

二、PMIC与uboot的关系

uboot按模块初始化硬件,有其自己的代码顺序,这就要求PMIC在特定的时间点给特定的硬件提前提供电源,以供uboot进行初始化配置。否则uboot的执行必然失败,例如PMIC需要在eMMC初始化前对其两路电源进行供电。

另外PMIC的初始化时间在uboot里有其默认的时间点,但是这个时间点还是与核心板与底板的实际电路密切相关的,需要根据实际需要提前或延后。

2.0 PMIC中BUCK与LDO的分类

PMIC中的BUCK和LDO都大概可以分成两种:

一种是PMIC上电即可直接输出电压的BUCK和LDO。

另一种是PMIC上电不输出电压,需要使用i2c对PMIC配置后才可输出电压的BUCK和LDO。

2.1 PMIC与DDR的关系

对于4412来讲,DDR的初始化是在BL2中进行的,这时如果使用汇编初始化硬件i2c来对PMIC进行配置个人感觉没有什么意义,所以DDR的电源需要连接到PMIC的默认ON的BUCK上,即PMIC上电即可直接输出电压的BUCK,不需代码配置。

S5M8767A推荐使用BUCK5做为DDR的电源,

BUCK5

BUCK5

但是,BUCK5这里的默认输出是1.2V,DDR需要的是标准1.5V,问题出在哪里?

三星早就替我们考虑好了这个问题,为了适配不同类型的DDR,BUCK5可以通过K9 K10两个引脚的电平搭配,输出四种默认电压:

V select

V select

V SET

V SET

在这里,开发板是这样设置的:

board set

board set

这样一来,B5S1:B5S2 = 1:0 即BUCK5输出1.5V电压,正好与DDR的需求相吻合。

2.2 PMIC与4412主芯片的关系

给ARM核芯提供电压的是PMIC的BUCK2,BUCK2也是默认ON的,默认输出1.1V。经过查阅4412 spec后,需要注意的是,在1.1V电压下,给ARM核心提供时钟的APLL最大只能输出1000MHz,即刚上电时如果不设置PMIC,ARM核心只能工作在1000MHz,无法使用最高频率1.4GHz。

三、PMIC的设置方法

3.1 通信协议

        S5M8767A使用I2C协议与4412进行通信,从机地址分为两部分,PM(Power Manager)和RTC,也就是说PM和RTC的寄存器地址是分开的,可以看作两个单独芯片。
PM

PM

3.2 举例

        以BUCK1举例说明寄存器设置方法,其它BUCK和LDO基本类似,需要时认真阅读手册即可:
BUCK1有两个8位控制寄存器,
CTRL1

CTRL1

CTRL1的低6位可以按照默认值设置即可,高两位需要解释一下,00和1x的意思就不需解释了,01的意思是 BUCK1的开关由PWREN外部引脚控制,而这个PWREN引脚一般与4412的XPWRRGTON引脚连接在一起,这个XPWRRGTON是由CPU自动控制的,CPU处于休眠状态此脚为低,工作状态此脚为高,就是说CPU一旦退出休眠状态,PMIC就会给所有受PWREN控制的BUCK & LDO上电。

CTRL2

CTRL2

CTRL2就是控制BUCK2输出电压的,6.25mV的步进值,需要多少电压自行计算然后写入即可。

 

扫盲文

什么是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的电源越多,对系统的模块供电就越细,各个模块的电源受牵连就小,所以就越省电。
本文转载自 http://www.cnblogs.com/humaoxiao/p/4267614.html

给我留言

留言无头像?



×