exynos 4412 電源管理晶片PMIC 的配置及使用方法,exynospmic
/********************************************************************************* @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