MTK手機平臺充電原理

EPT GPIO初始化文件 @bsp_gpio_ept_config.c

1 知識點總結
1.1 Official 參考充電電路
Figure 1-1 參考電路

VCHG:USB正極
VCDT:VCHG Charger Detect充電電壓檢測腳
ISENSE:充電電流檢測電阻的正極
BATSNS:充電電流檢測電阻的負極
BAT:電池正極引腳
BAT_ON:電池NTC (熱敏電阻) 引腳
RECHARGING_VOLTAGE: 回充電壓

1.2 5V充電器電壓設置
@ cust_charging.h
#define  V_CHARGER_MAX       6500    // 6.5 V 充電器的電壓最大值
#define  V_CHARGER_MIN       4400    // 4.4  充電器的電壓最小值
#define  V_CHARGER_ENABLE     0      //1:ON , 0:OFF  //充電電壓保護使能

1.3 配置電池溫度檢測相關參數
@ cust_battery_temperature_table.h
1.3.1 熱敏電阻
目前熱敏電阻有兩種規格:10K和47K;由電池工程師提供參數。
#define BAT_NTC_10 1
#define BAT_NTC_47 0

1.3.2 在配置熱敏電阻參數的同時,也要根據原理圖,配置溫度檢測上拉電阻以及參考電壓
#define RBAT_PULL_UP_R             16000 // Unit: Ohm,對應原理圖中的R311
#define RBAT_PULL_UP_VOLT          2800   // Unit: micro voltage,對應原理圖中的VBATREF

BattVoltToTemp函數就是任何將ADC讀出的電壓值轉換爲溫度值,該函數其實就是做了兩個運算,運算的原理如下圖所示。
Figure 1-2 MTK平臺NTC溫度值計算

1.4 配置充電電流
@ cust_charging.h

1.5 配置電流檢測電阻
@ cust_battery_meter.h or @ cust_charging.h
#define CUST_R_SENSE         56  // Unit: micro Ohm, 56 mOhm

該電阻的兩端是BATSNS & ISENSE。

Figure 1-3 充電電流檢測電阻

1.6 Dead Battery Voltage
@ cust_charging.h
#define V_0PERCENT_TRACKING             3410  /* 3410mV */

1.7 各溫度下最大放電容量,內阻-電壓表,放電深度-電壓表
電池充放電參數由電池工程師向電池廠家索取。目前MTK支持-10°、0°、25°、50°。
1.7.1 各溫度下最大放電容量 (Unit: mA)
@ cust_battery_meter.h

Q表示各溫度下最大的放電容量
#define Q_MAX_POS_50 1750  //Cmax, 50°最大放電容量1750 mA
#define Q_MAX_POS_25 1763 // 25°
#define Q_MAX_POS_0 1756  // 0°
#define Q_MAX_NEG_10 1726 // -10°

High Voltage:
#define Q_MAX_POS_50_H_CURRENT 1737 //Cmax_400mA, 50°最大放電容量1337 mA
#define Q_MAX_POS_25_H_CURRENT 1717  // 25°
#define Q_MAX_POS_0_H_CURRENT 1214  // 0°
#define Q_MAX_NEG_10_H_CURRENT 966  // -10°

1.7.2 各溫度下的內阻-電壓表和放電深度-電壓表
@ cust_battery_meter_table.h

Figure 1-4 ZCV curve measured SOP

Figure 1-5 Battery Voltage Measure

CAR:庫侖計
Cmax/Qmax:電池容量
DOD:Depth of Discharging,放電深度百分比
mAh:放電容量
OCV:Open Circuit Voltage,開路電壓
R (battery):電池內阻,(V2-V1)/400mA
SOP:Standard Operation Procedure
VC (=VBAT):Voltage of Closed Circuit,閉路電壓,Charge ADC採樣的到電壓就是閉路電壓
ZCV:Zero Current Voltage,零電流-電壓,一般指ZCV的2個表格(開路電壓-放電深度百分比,開路電壓-電池內阻)

在ZCV曲線裏面,還有一欄是電池內阻R (battery),在cust_battery_meter_table.h裏面就是r_profile_tX[51],那這個有什麼用呢?
公式:oam_v_ocv_1 (OCV) = vol_bat (VC) + 補償電壓(IR)。
在手機端讀取的電池電壓是vol_bat (VC),實際電池電壓是oam_v_ocv_1 (OCV),兩者之間由於電池特性或者充電線會有一些差異,這時候就會需要一個補償電壓來讓手機端顯示百分比更準確,這就是R (battery) 的作用。

Figure 1-6 MTK OCV和SOC計算原理

線性插值方法具體原理如下圖。
Figure 1-7 Linear Interpolation Method

從電池供應商表格中提取 R-OCV 對應溫度的r_profile_tX[51]數組
從電池供應商表格中提取DOD-OCV到對應溫度的battery_profile_tX[51]數組中
注意數組的元素個數都要一致。
系統開機後,會利用預先測得的分佈在-10、0、25、50攝氏度下的 ZCV 表,結合真實溫度,動態重構一張當前溫度下的ZCV 表格,重寫TEMPERATURE對應預留的空ZCV數組battery_profile_temperature[51]

假如產品的電壓範圍設置在4.2V - 3.4V,並且該電壓範圍對應的容量大小是2000mA,則每個百分點就是20mA。

1.8 充電算法
@ cust_battery_meter.h
考慮接觸點電阻,電池接觸點處一般會有20~40 mOhm的電阻,這個阻值在大電流 (1.5-2A) 充電的時候,會對充電算法有一定的影響。所以在調試的時候要考慮這個電阻的存在,尤其是大電流充電的時候。在函數mtk_imp_tracking中計算開路電壓 (OCV)的時候,可以通過宏定義FG_METER_RESISTANCE的調整去補充這個接觸點電阻。

2 Documents
《Battery_Charging_Introduction_for_Customer_V1.0.pdf》
《Battery_Customer Document_MT65xx.pdf》
《Fuel_Gauge_introduce.pdf》
《Fuel_Gauge_Application_Notes_V1.0.pdf》
《Fuel_Gauge_Battery_ZCV_Table_Test_SOP_V1.0_20120716.pdf》

3 DOD-OCV的百分數excel計算法
3.1 excel
1) 點擊B1 然後在上面的編輯欄輸入 (A1/100)

2) 右鍵“設置單元格格式(F)...”

3) 剩下的其他單元格只要把鼠標拖到B1的右下角有個 +號此時點擊鼠標左鍵下拉就行了
4)折線圖的生成
從excel選中2列數據,點擊“插入”->“插入折線圖”,excel會生成直觀折線圖。

3.2 word

4 Abbreviations
GM 3.0:MTK Gauge Master

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章