歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Exynos 4412 電源管理芯片PMIC 的配置及使用方法

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

日期:2017/3/1 9:17:37   编辑:Linux編程
開發板:迅為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(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

Copyright © Linux教程網 All Rights Reserved