10. 电池曲线

	
一、注意事项:
	1.电池曲线的excel表格去掉小数点:
		选中右键-> 设置单元格格式-> 数字-> 数值-> 小数位置改为0
	2.电池容量有两个版本(如2877与2866) - 不明
	3.如何查看几伏几安?(如5V1A)
	4.查看是否高容高压?
		1.查看mt_battery_meter_table.h.c中电池曲线, 25摄氏度最高电压是否超过4300(4.3v),超过则为高压
			/* T2 25C*/
			BATTERY_PROFILE_STRUCT battery_profile_t2[] = {
				{0   , 4348 },		// 超过4300 - 高压
				{2   , 4326 },
				{3   , 4305 },
				{5   , 4284 },
				
		2.如为高压 - 需要在mk中配置
			#支持高容高压
			KST_HIGH_BATTERY_VOLTAGE = yes
	

二、移植电池曲线步骤
	1.根据电池容量修改 mt_battery_meter.h
		/* Qmax for battery  */
		#define Q_MAX_POS_50 2877
		#define Q_MAX_POS_25 2877
		#define Q_MAX_POS_0  2877
		#define Q_MAX_NEG_10 2877

		#define Q_MAX_POS_50_H_CURRENT 2866
		#define Q_MAX_POS_25_H_CURRENT 2866
		#define Q_MAX_POS_0_H_CURRENT  2866
		#define Q_MAX_NEG_10_H_CURRENT 2866
		
	2.根据充电电流修改 mt_charging.h
		#define AC_CHARGER_CURRENT			CHARGE_CURRENT_1000_00_MA	//标准充电1a
		#define NON_STD_AC_CHARGER_CURRENT	CHARGE_CURRENT_1000_00_MA	//非标准充电1a
		
	3.根据电池曲线修改 mt_battery_meter_table.h,共有10个数组:
		5个 {百分比,电压} 数组
			-10							// 复制25摄氏度的
			0							// 复制25摄氏度的
			25
				{ 19   , 4117  },		// {百分比 ,电压},
				{ 21   , 4100  },
			50							// 复制25摄氏度的
			空数组
				{0,   0 },				// 空白数组,数组元素个数要与前四个一样,等待编译的时候计算后自动装填
				{0,   0 },
		5个 {电阻,电压} 数组
			-10							// 复制25摄氏度的
			0							// 复制25摄氏度的
			25
				{ 52   , 4327  },		// { 电池电阻 ,电压},
				{ 52   , 4310  },
			50							// 复制25摄氏度的
			空数组
				{0,   0 },				// 空白数组,数组元素个数要与前四个一样,等待编译的时候计算后自动装填
				{0,   0 },

三、mt6739平台(kernel-4.4)配置成1A 充电:
	1. kernel-4.4/drivers/misc/mediatek/include/mt-plat/mt6739/include/mach/mtk_charging.h
		-	#define AC_CHARGER_CURRENT					CHARGE_CURRENT_2050_00_MA
		-	#define AC_CHARGER_INPUT_CURRENT			CHARGE_CURRENT_3200_00_MA
		-	#define NON_STD_AC_CHARGER_CURRENT			CHARGE_CURRENT_500_00_MA
		
		+	#define AC_CHARGER_CURRENT					CHARGE_CURRENT_1000_00_MA
		+	#define AC_CHARGER_INPUT_CURRENT			CHARGE_CURRENT_1000_00_MA
		+	#define NON_STD_AC_CHARGER_CURRENT			CHARGE_CURRENT_800_00_MA

	2. mt6739.dts
		charger: charger {
                compatible = "mediatek,charger";
                algorithm_name = "LinearCharging";
				...
                usb_charger_current_suspend = <0>;
                usb_charger_current_unconfigured = <70000>;
                usb_charger_current_configured = <500000>;
                usb_charger_current = <500000>;
				
		-       ac_charger_current = <2050000>;
		-       ac_charger_input_current = <3200000>;
		-       non_std_ac_charger_current = <500000>;
		-       charging_host_charger_current = <800000>;
				
        +       ac_charger_input_current = <1000000>;
        +       non_std_ac_charger_current = <800000>;
        +       charging_host_charger_current = <500000>;
        +       apple_1_0a_charger_current = <650000>;
                apple_2_1a_charger_current = <800000>;
                ta_ac_charger_current = <3000000>;






你可能感兴趣的:(mtk驱动)