/**
******************************************************************************
* @author    Maoxiao Hu
* @version   V1.0.0
* @date       Feb-2015
******************************************************************************
* < COPYRIGHT 2015 ISE of SHANDONG UNIVERSITY >
******************************************************************************
**/
本文会不时完善和纠正一些小错误,务必请到 http://www.cnblogs.com/humaoxiao 参考最新版本。
 
开发板:迅为4412精英版。
uboot:uboot-2014-10。
PMIC:SAMSUNG S5M8767A
 
        在移植新版u-boot的时候,上网搜电源管理芯片的使用方法资料,发现几乎没有,就算是datasheet也很难下载得到,不知是何原因?我只能理解成这部分知识比较简单,没人愿意写吧。但记录一下原理和使用方法做为备忘,总归没有什么坏处。另外仍然需要提前声明的是,这里只提供官方手册推荐的配置方法,自由玩法不保证可行及稳定性。

一、概览

LDO和BUCK的概念:请参考《嵌入式电路中的BUCK VS LDO》。
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这里的默认输出是1.2V,DDR需要的是标准1.5V,问题出在哪里?
三星早就替我们考虑好了这个问题,为了适配不同类型的DDR,BUCK5可以通过K9 K10两个引脚的电平搭配,输出四种默认电压:
 
 
在这里,迅为的开发板是这样设置的:
 
 
这样一来,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的寄存器地址是分开的,可以看作两个单独芯片。
 

3.2 举例

        以BUCK1举例说明寄存器设置方法,其它BUCK和LDO基本类似,需要时认真阅读手册即可:
BUCK1有两个8位控制寄存器,
 
 
        CTRL1的低6位可以按照默认值设置即可,高两位需要解释一下,00和1x的意思就不需解释了,01的意思是 BUCK1的开关由PWREN外部引脚控制,而这个PWREN引脚一般与4412的XPWRRGTON引脚连接在一起,这个XPWRRGTON是由CPU自动控制的,CPU处于休眠状态此脚为低,工作状态此脚为高,就是说CPU一旦退出休眠状态,PMIC就会给所有受PWREN控制的BUCK & LDO上电。
 
 
        CTRL2就是控制BUCK2输出电压的,6.25mV的步进值,需要多少电压自行计算然后写入即可。

四、引用高手的PMIC技术贴

原载于:《什么是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] SEC_S5M8767A01-6070_Data Sheet_Ver.0.10.00_Preliminary.pdf
[2] DS_K4B2G1646Q-BC_Rev103.pdf
[3] SEC_Exynos 4412 SCP.pdf

exynos 4412 电源管理芯片PMIC 的配置及使用方法的更多相关文章

  1. IM2603设计资料 Type-C拓展坞电源管理芯片

    应用于Type-C拓展坞外围集成Buck变换器的电源管理芯片 IM2603 IM2603 概述 用于带有集成降压转换器的 Type-C 外围应用的电源管理 IC IM2603 是一款主要用于 Type ...

  2. IM2603资料 Type-C 扩展坞电源管理芯片

    用于带有集成降压转换器的 Type-C 外围应用的电源管理 IC IM2603 是一款主要用于 Type-C 外围应用的电源管理 IC. 它集成了一个带有内置高侧 MOSFET 的同步降压转换器和一个 ...

  3. 迅为三星Exynos 4412开发板四核Cortex-A9ARM安卓linux开发板

    开发板光盘资料包含:原理图(PDF格式).底板PCB(Allegro格式).驱动程序源码.芯片和LCD数据手册.开发环境.产品使用手册. 4412开发板简介: iTOP-Exynos4412开发板采用 ...

  4. intel电源管理技术中I2C和SVID

    1.I2C总线架构图: 2.Gemini Lake平台所支持的PMIC 是哪种类型? POR 是SVID PMIC, i2c PMIC 会影响性能. 3.SerialVID, 总共有三个信号线 时钟( ...

  5. Linux电源管理(2)-Generic PM基本概念和软件架构【转】

    本文转载自:http://www.wowotech.net/pm_subsystem/generic_pm_architecture.html 1. 前言 这里的Generic PM,是蜗蜗自己起的名 ...

  6. exynos 4412 eMMC配置及使用方法

    /** ****************************************************************************** * @author    Maox ...

  7. 支持动态调频_配置AXP228电源管理_4核8核兼容设计_iTOP-4418/6818开发板

    iTOP-4418/6818开发板 支持动态调频,AXP228电源管理, 系统支持:Android4.4/5.1.1.Linux3.4.39.QT2.2/4.7/5.7.Ubuntu12.04 内存: ...

  8. [专业名词·硬件] 2、DC\DC、LDO电源稳压基本常识(包含基本原理、高效率模块设计、常见问题、基于nRF51822电源管理模块分析等)·长文

    综述先看这里 第一节的1.1简单介绍了DC/DC是什么: 第二节是关于DC/DC的常见的疑问答疑,非常实用: 第三节是针对nRF51822这款芯片电源管理部分的DC/DC.LDO.1.8的详细分析,对 ...

  9. BQ24296充电管理芯片使用过程中的注意事项

    BQ24296遇到的一点问题 概述:BQ24296是TI出品的具有窄范围VDC控制.基于I2C通讯的最大支持3A充电电流的开关式电源路径管理芯片.可以轻松实现2A以上的大电流充电,能量转换效率达到90 ...

随机推荐

  1. nginx平滑重启与平滑升级的方法

    如何实现nginx平滑重启与平滑升级? 平滑重启 kill -HUP `cat /usr/local/www/nginx/logs/nginx.pid` 平滑升级nginx: cd /yujialin ...

  2. NULL, '\0',0 '0'的区别

    如题,在程序中经常遇到NULL,和'\0',常常疑惑它们是什么关系,其实它们的值是一样的,只不过表现的形式不一样: 1.NULL; NULL 即空指针,在C和C++中的形式不一样,msdn上有如下的内 ...

  3. 40 JavaScript Chart and Graph Libraries for Developers--reference

    reference:http://www.egrappler.com/javascript-chart-and-graph-libraries-for-developers/ BY TEAMEGRAP ...

  4. C. Ilya and Sticks

    C. Ilya and Sticks time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

  5. 1.5.6 Filters

    Filters 过滤器filter应该跟在tokenizer或者另一个filter之后.因为它们将TokenStream作为输入源. <fieldType name="text&quo ...

  6. SolrEntityProcessor

    SolrEntityProcessor从不同的solr实例和内核中引入数据,这个数据是基于指定的或者是过滤的查询来获取到的.如果你需要复制索引,并且小幅度的修改目标索引文件中的数据,那么可以使用Sol ...

  7. Windows OpenVPN Client and tls-auth

    The official Windows OpenVPN client does not seem to work properly with the tls-auth option if a key ...

  8. iOS7.1 编译报错 解决方案 体会

    iOS升级到 iOS 7.1 了 ,开发人员必须与时俱进.果断下载更新了xcode5.1版本 ,试运行了一下已上线的应用,哇 报错了!好头疼 贴下报错地方: 都是关于第三方类库报的错 比如parse. ...

  9. oracle优化辅助SQL语句

    --查询正在执行的SQL语句 select a.program, b.spid, c.sql_text,c.SQL_FULLTEXT,c.SQL_ID from v$session a, v$proc ...

  10. python 基础——常用功能片段

    1. 元素去重 data = [1,2,3,4,4,5,5,6] res = set(data) 2. 元素去重排序 res = sorted(set(data)) 2. 打印重复的元素 res = ...