MTK battery 原理

參考文檔:

http://blog.csdn.net/zhandoushi1982/article/details/5804951

http://blog.csdn.net/ollins136/article/details/52230722?locationNum=1

http://blog.chinaunix.net/uid-9012903-id-2011559.html

 

MTK中,Battery底層驅動主要涉及代碼在這兩個目錄下:

\kernel-3.18\drivers\misc\mediatek\power\mt6735

\kernel-3.18\drivers\power\mediatek

 

一、充電流程介紹:當充電器插入時,亦即爲PMIC充電模塊提供了Vcharge電壓,這時會產生一個充電中斷信號到CPU,通知CPU現在已經進入充電狀態。CPU開始啓動如下模塊:

1ADC採樣,主要是採集VchrgVbat及從MOSFET漏極輸出的電壓,可以算出充電電壓和充電電流;

2,發消息給MMI層,讓它顯示充電狀態及一些採樣數據;

3,檢測電池電壓有沒有超過保護電壓及電池連接是否連接正確,如果有問題即可通過CHRCTRL切斷充電電路;

4,平時顯示“充電器沒有連接”警告,是因爲PMICBATDET腳和MOSFET沒有打開,從而沒有充電電流引起的。

二、充電狀態轉換介紹:如果電池電壓較低,只是預充的時間稍長一些,最多一兩個小時應該可以完成預充電!一般電池都有自保護,不會把電放到0V的!

     充電分三個過程:預充電、恆流充電(CC模式)、恆壓充電(CV模式)(有些人也會分爲四個階段預充電、恆流充電(CC模式)、恆壓充電(CV模式)、涓流充電)

1,當Vbat<3.3V  屬於預充階段,處於預充電狀態時,以150mA電流涓流充電。PMIC不能提供VcoreVdd等電壓,CPU處於關機狀態,這時CPU是不工作的!純粹是硬件電路充電

2,當3.3V<bat<4.2V  PMICLDO開始輸出電壓,從而cpu開始工作,這是進入恆流充電階段,以大概600mA 電流快速充電。3.45V是開機電壓,按開機鍵的話就會開機。

3Vbat>4.2V 進入恆壓充電階段(屬於TOPOFF的一個點,如下圖),這個階段電流逐漸變小,電壓維持不變!當電流減小到接近爲0(或者某個較小閥值)時,CPU發出控制信號這時停止充電!

圖一是充電過程的整個狀態圖:

                                                                                                            圖一

下圖二是內核層充電的一個框架圖:


                                                                                                 圖二 內核層充電的一個框架圖

CC模式切換到CV模式在代碼中的alps/mediatek/kernel/drivers/power/linear_charging.calps/mediatek/kernel/drivers/power/ switch_charging.c

     MTK Battery系統驅動的大致流程主要是通過系統platform總線註冊devicedriver,然後在probe函數裏面創建了一個線程,然後創建一個hrtimer定時器,定時器每10s運行一次,同時在probe函數裏面會創建一些設備節點,通過這些設備節點,系統將每10s更新的數據上傳給上層供上層調用顯示。

 


發佈了72 篇原創文章 · 獲贊 13 · 訪問量 15萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章