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

/**
******************************************************************************
* @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也很難下載獲得,不知是何緣由?我只能理解成這部分知識比較簡單,沒人願意寫吧。但記錄一下原理和使用方法作爲備忘,總歸沒有什麼壞處。另外仍然須要提早聲明的是,這裏只提供官方手冊 推薦的配置方法,自由玩法不保證可行及穩定性。

1、概覽

LDO和BUCK的概念:請參考《 嵌入式電路中的BUCK VS LDO》。
S5M8767A有9路BUCK和28路LDO,暫且能夠當成共有37路供電電路。這37路供電電路最低可使用6.25mV的步進電壓,多達60多個電壓檔位能夠作到對輸出電壓的精確控制。另外S5M8767A還有一個硬件RTC,能夠在有外部電池供電的狀況下保存時鐘信息。

2、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的電源,
NewImage
可是,BUCK5這裏的默認輸出是1.2V,DDR須要的是標準1.5V,問題出在哪裏?
三星早就替咱們考慮好了這個問題,爲了適配不一樣類型的DDR,BUCK5能夠經過K9 K10兩個引腳的電平搭配,輸出四種默認電壓:
 
NewImage
 
NewImage
在這裏,迅爲的開發板是這樣設置的:
 
NewImage
 
這樣一來,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。
 
3、PMIC的設置方法

3.1 通訊協議

        S5M8767A使用I2C協議與4412進行通訊,從機地址分爲兩部分,PM(Power Manager)和RTC,也就是說PM和RTC的寄存器地址是分開的,能夠看做兩個單獨芯片。
 
NewImage

3.2 舉例

        以BUCK1舉例說明寄存器設置方法,其它BUCK和LDO基本相似,須要時認真閱讀手冊便可:
BUCK1有兩個8位控制寄存器,
 
NewImage
 
        CTRL1的低6位能夠按照默認值設置便可,高兩位須要解釋一下,00和1x的意思就不需解釋了,01的意思是 BUCK1的開關由PWREN外部引腳控制,而這個PWREN引腳通常與4412的XPWRRGTON引腳鏈接在一塊兒,這個 XPWRRGTON是由CPU自動控制的,CPU處於休眠狀態此腳爲低,工做狀態此腳爲高,就是說CPU一旦退出休眠狀態,PMIC就會給全部受PWREN控制的BUCK & LDO上電。
 
NewImage
 
        CTRL2就是控制BUCK2輸出電壓的,6.25mV的步進值,須要多少電壓自行計算而後寫入便可。

4、引用高手的PMIC技術貼

原載於:《 什麼是PMU
----------------------引用開始--------------------------------
什麼是PMU(PMIC)
        PMU(power management unit)就是電源管理單元,一種高集成的、針對便攜式應用的電源管理方案,即將傳統分立的若干類電源管理芯片,如低壓差線性穩壓器(LDO)、直流直流轉換器(DC/DC),但如今它們都被集成到手機的電源管理單元(PMU)中,這樣可實現更高的電源轉換效率和更低功耗,及更少的組件數以適應縮小的板級空間,成本更低。
        PMU做爲消費電子(手機、MP四、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
相關文章
相關標籤/搜索