天天看點

[筆記分享] [Hardware] PM8901 User Guide study report

PM8901 overview

PM8901的使用是為了更好地給PM8058提供支援。主要擴充了以下幾種功能:

1. 5個快速轉換電壓支援

2. 7個LDO線性穩壓器來支援PM8058電路

3. 7個電壓開關來選通晶片外部電路

4. 4個可配置的MPP作為數字或模拟I/O

和PM8058類似,它也包含了輸出電壓調整、一般的housekeeping、 IC接口、使用者接口。另外還有一個電壓開關子產品。

它的電源來自手機主電源(VPH_PWR),内部的FT-SMPS和LDO也都基于一個基準電壓産生,可以動态縮放電壓,支援low-power mode。

不過PM8058的輸出電壓分的比較細,有low-voltage, medium-voltage和 high-voltage。

在housekeeping方面,用19.2MHz晶振或者内部晶振産生信号來支援SMPS clock。其他信号都過其分頻得到。RC振蕩器用來作備份。此外還有過熱保護,提供Vref功能。

IC級接口方面,MSM用SSBI控制PM8901。當PM8901和PM8058不用同一個XO源時,MSM就會提供一個FCLK。SSBI支援三種中斷:

1. for critical modem

2. for user application

3. for secure application

Device operating modes

PMIC hardwire option通過OPT_X(1-2)來設定的(在powerup的時候起作用),每個引腳都有ground, open, vdd三種接法,是以可達9中,不同晶片組使用不同的設定。

MSM和PMIC之間通過SBI接口來連接配接,而且兩邊的支援電壓必須一緻,這部分功能由PMIC來實作了。兩者之間,PMIC作為slave,MSM充當master的角色,對PMIC進行初始化,模式、參數控制、認證等控制。這些控制,上層已經提供了相應的API,開發人員直接調用即可。

另外PMIC還有若幹種操作模式(active, sleep, off), 具體用哪種依賴于寄存器的設定、電池和支援條件,而内部某些電路功能是否開啟又依賴于選擇的是哪種操作模式。

Output voltage regulation

通過輸出不同的電壓源來支援chipset上的不同電路子產品不同電壓需求,各個子產品電源獨立也可以避免互相之間的最小幹擾。

OPT_x hardware

輸出電壓調整(OVR)電路的兩個功能由外部兩個引腳來決定。一種功能是輸出預設穩壓器電壓,另一種功能是power-on sequence 和他們的positions with sequence。

Bandgap voltage reference circuit

所有的PMIC穩壓器或者其他内部電路都由這個reference來提供基準源。

FT-SMPS circuits

這部分電路主要為了實作MSM内部的多媒體功能部分的運作在高速時鐘、要求高速的動态響應的要求。為了實作這要求,FT-SMPS它的内部包含了衆多功能塊,通過線性和非線性控制機制來優化性能。而對FT-SMPS的控制是通過SSBI接口和它的一些寄存器實作的 。

對于外部元件的選擇、連接配接,我們可參考廠商推薦的值。

FT-SMPS還分兩種操作模式:

1.當負載電流正常或者過重時,采用PWM模式。

2.當負載電流比較輕的時候,采用的是PFM模式。

雖然我們這裡FT-SMPS作為特殊功能提供給處理器用,其實它也可以被用作其他供電之用。如RF、I/O circuits、外設等。

相對于上一代PMIC,為減少電源縮放的步進值(步進太大會導緻overshoot/undershoot等而産生一系列比較嚴重的問題),雖然可以通過PMIC強行改變電源步進值或者通過SSBI對電壓重複的改變,但是這樣慢又複雜,為此, PM8901使用了下面兩種功能來解決這問題:

1.将voltage steps減小。通過軟體實作。

2.SMPS step control。通過硬體實作。

對FT-SMPS的使能控制我們也可以通過硬體(PWR_CTL[2:0])來實作。實作這一功能要去掉相應位的屏蔽(FTSx_VCTRL[7:6]),當任何一個引腳沒被屏蔽而且被拉高時,不管FTSx_VCNTRL[7:6]或者FTSx_CONFIG寄存器如何設定,FT-SMPS都會将被強制進入full power PWM 模式。

LDO liner regulators

它内部的閉環控制系統使得輸出穩定,直接調整輸出電壓到需要的電壓,不過它不會管負載是什麼就直接輸出電流到負載上。

每種穩壓器輸出端要求接有不同大小的陶瓷電容來使輸出穩定。

和FT-SMPS一樣,LDO也可以通過硬體引腳來控制其使能。不過FT-SMPS還受MODE_CTL引腳的控制。

線性穩壓器的輸入源有的必須要直接來自PM8058的VDD,有的可以通過buck converter之後再擷取也可以。

Subregulation

有兩種subregulation,一種是buck converter,另一種是linear regulator。Buck converter能提供更大的壓差和電流,linear regulator的輸入源可以從buck converter的輸出得到,而且相對來說能提供一個幹淨的輸出(less noisy)。
           

Low-power modes

所有線性穩壓器都可工作在low-power模式,在手機sleep模式的時候特别有用,不同器件工作方式不同。由于VREG_4内部問題而不能工作在這種模式。

a. Linear regulators

它是通過來降低回報循環來實作的。不過性能會有所下降。當負載大于1mA時,輸出電壓可能出規定範圍。

b. FT-SMPS

有兩種控制模式: PFM, PWM, 由XO_EN引腳控制。在PFM模式時,當負載過重時,輸出紋波會變差。正常操作用PWM模式。

Voltage switches

可消除分離的FETs,保持各部分電源獨立進而避免leakage,還可以使能更多的boot sequencing options。

通過它來選擇一路信号到ADC,被選擇的信号可被軟體監視。另外,電壓縮放電流也依賴于他。一共有三種類型: low-voltage, medium-voltage, high-voltage。下面是他們的共同特征:

1.Low-power mode。不管開關是否使能,都可以處于這種狀态,而且可以通過硬體來進行設定。注意在此模式下,短路保護和中斷是無效的。

2.自動睡眠。開關一旦成功使能後就進入此狀态。

3.外部元件不做要求。

Low- and medium-voltage switches

Low-voltage輸出1.8v,Medium-voltage是3.6v。電流輸出都是300mA,可通過SSBI配置。
由于沒有提供反向電流保護,在作特殊應用時應該注意這一點。
和FT-SMPS和LDO一樣,LVS 和MVS也提供外部引腳控制其使能,控制方法和前者是一樣的。
           

High-voltage switches

能在SSBI控制下提供5V的輸出,當開關禁止的時候,内部終端電壓管理部分保護免遭漏電。至于如何進行配置,方法是和LVS和MVS一樣的。

主要用在USB_VBUS和HDMI,注意要輸出要上拉,電流限制。

General housekeeping

比起PM8058來功能相對少一點。包含以下子產品:

1. 時鐘電路

2. 過溫保護

3. MPP

4. 數字控制輸出

Clock circuits

雖然内部自帶晶振可産生時鐘,但是我們一般用PM8058提供的XO時鐘。除此之外,時鐘部分還包含一個備份RC振蕩器和SMPS時鐘分發電路。

a. RC oscillator

當PMIC power-up的時候,RC作為預設時鐘源工作直到轉換到PM8058的XO時鐘源為止,然後停止以減少功耗。注意兩個源之間一定要同步來確定SMPS時鐘正常。

當XO信号源停止工作的時候,RC振蕩器又會自動工作。

b. SMPS clock

有兩種時鐘源可以選擇:RC振蕩器和19.2MHz的XO源。輸出的時鐘可以分發下去。

Over-temperature protection

當溫度過高時,子產品會産生中斷發給MSM而且會是溫度的不同關閉相應的部分(如高電流電路或者整個PM8901)。産生的溫度轉換為電壓進行處理。

Digital control ouput

通過SSBI将MPP配置成數字輸出,然後這個基準輸出被送到PM8058的XO_ADC電路中去使用。

User interfaces and MPPs

雖然PM8901可以通過MPP的不同配置來實作UI功能,MPP功能如下:

1. 數字輸入。可通過軟體直接讀取電平引腳。

2. 數字輸出。可通過軟體直接設定電平的高低。

3. 雙向I/O。在成對中使用,兩個MPP可以互補。

4. 模拟輸入。被路由到模拟多路複用器中。

5. 模拟輸出。作為Vref。

6. 驅動LEDs。

MPP可以單獨使用,也可以成對使用。在成對使用時,得注意外部的接口必須開漏。

IC-level interfaces

Poweron circuits and power sequence

PM8058最為master,8901作為boot slave,8901的boot必須是在8058 power-on完成之後才開始運作。下面是power順序:

1. PM8058探測到power-on事件

2. PM8058使能和穩定power-on預設的穩壓器

3. PM8058産生19.2MHz系統時鐘

4. PM8058發送複位信号(PON_RESET_N高)來開啟PM8901

5. PM8901使能和穩定power-on預設的穩壓

6. PM8058發送複位信号(PON_RESET_N高來開啟modem IC

7. MSM是PS_HOLD為高來保持兩個PMIC

a. Power-on sequence

1. 在PWR_ON變化後,預設的寄存器被一個個開啟,注意時序。

2. 一旦寄存器都穩定後,PON_RESET_N拉高。當穩壓器全部開啟或者全部關閉後,該引腳拉低。

3. 之後PS_HOLD要拉高。

b. Power-off sequence(Normal)

在PM8058關閉之前一定要先關閉掉PM8901,這和power-on sequence是相對的,不管是不是正常關閉還是故障。

1. 在power-down之前先要關閉軟體設定的穩壓器。然後發送PS_HOLD low信号。

2. PM8901發送PON_RESET_N low使modem IC和其他外設複位。

3. 關閉預設的穩壓器,關閉PM8901

4. PM8058發送BAT_FET_N信号将電池和手機電源斷開

5. 關閉PM8058

PMIC一直處于OFF狀态隻要PS_HOLD為低。在此期間,隻有它的内部RC振蕩器在工作。

c. Power-off sequence(Fault)

當出現錯誤故障時,需要立刻關閉,否則會出現錯誤的邏輯狀态,電流洩漏,甚至會毀壞電源。

當PM8058出問題時,它發送一個PON_RESET_N low信号給PM8901,PM8901輸出PON_RESET_N low給modem IC,這樣PM8901和modem IC都是在PM8058關閉前被關閉。

當PM8901出問題時,它發送PON_RESET_N low給modem IC導緻它複位而産生PS_HOLD low發送給PM8058,這樣PM8901也是在PM8085之前關閉的。

當故障全部清除後方可再一次power-on sequence。

注意PM8901 UVLO 門檻值要比PM8058要高,這樣PM8058才會被先關閉。

雖然PM8901沒有SMPL功能,但是當PM8058發生SMPL時,它會先關閉PM8901,如果SMPL時VDD又正常了,那麼PM8058就重新開機PM8901。

PMIC clocks during power sequencing

當boot的時候,PMIC都用他們内部的RC振蕩器,而PM8901直到PM8058輸出的XO時鐘送過來為止。

Independent PM8901 operation

PM8058和PM8901之間運作是互相獨立的,除了PM8901可能要用到PM8058的XO時鐘源以為,而且軟體需要看PM8901是否需要這個時鐘源。

當PM8901工作在PWM模式而且發現XO信号不能用時,會自動轉用其内部的RC振蕩器,然後會産生一個中斷發送給軟體。

使用RC振蕩器會由于它的精度不高可能帶來性能問題或者執行失敗,是以在使用之前得注意這個問題。

PM8901 sleep mode

通過對MODE_CTL引腳的控制使PM8901進入sleep模式,相對通過SSBI設定更有效。由于MODE_CTL是複用的,是以在某個時間使用某一功能的時候需要屏蔽其他功能操作。

External power control pins

可不需要通過SSBI而是PWR_CTL[2:0]引腳來控制FT-SMPS、LDO、LVS、MVS的使能。這些引腳還允許提供外部電源控制。

SBI

它是PMIC和MSM之間的通信接口。MSM通過SBI寄存器來控制PMIC,包括參數設定,檢視裝置狀态,中斷事件等。設計人員可以在上層直接調用相應的API來操作PMIC。

另外,coin cell作為備份電池來給PMIC服務。

Interrupt manager

PMIC提供三種中斷:

1.标準中斷送到modem ARM

2.安全中斷送到application processor

3.使用者中斷被送到application processor

繼續閱讀