MSW_DRV_电池_充电_APN_V1.00

  • 格式:pdf
  • 大小:878.48 KB
  • 文档页数:16

Mstar Driver

电池 & 充电

- 1 -

Copyright © 2010 MStar Semiconductor, Inc. All rights reserved.

电池 & 充电

V1.00

Mstar Driver

电池 & 充电

- 2 -

Copyright © 2010 MStar Semiconductor, Inc. All rights reserved. Table of Contents

0. Revision History............................................................................................................................2

一、文档简介.........................................................................................................................................3

二、充电电路介绍...................................................................................................................................3

三、充电检测.........................................................................................................................................6

四、怎样修改充电驱动程序......................................................................................................................9

五、电池充电流程图.............................................................................................................................14

六、充电常见的一些问题及其DEBUG........................................................................................................15

七、充电检测走线要点..........................................................................................................................16

0. REVISION HISTORY

Document

Description Date

V1.00 Ÿ First release 2010-11-16

Ÿ

Mstar Driver

电池 & 充电

- 3 -

Copyright © 2010 MStar Semiconductor, Inc. All rights reserved.

一、 文档简介

本文档主要介绍手机电池充电相关内容,主要包括:

(1)充电电路介绍。

(2)充电的一些相关参数介绍。

(3)充电检测---充电器是否插入检测,电池是否存在检测,充电电压、电流和电池电压的检测以及对

充电电压的过压保护。

(4)怎样修改充电驱动程序。

(5)电池充电的非正常操作及操作的结果。

(6)充电检测走线要点。

通过这些内容,有助于理解充电的整个过程,理解电池充电驱动程序,并能对充电驱动程序进行简单的

修改和DEBUG。

二、 充电电路介绍

充电电路原理图,如图1所示。

图1 充电电路

图中的VCHG为充电电压,R104和R105用于充电电压的检测,VCS和GATEDRV用于控制MOS管D822,近而

控制MOSSET-U202,用于控制充电电路是否导通。ISENSE、AVDD和R106(0.22欧姆)用于充电电流的检测。

当充电电压过高的时候,VADAIN检测到过压(VADAIN>1V),VCS和GATEDRV会被LOCK在相同电压(理论上

为6V左右,实测电压为5V多),关闭D822,近而关闭U202,最终关闭充电电路,达到过压保护的目的。

U202在正常充电的时候,输出的电压为4.2V。incense通过VCS来检查是否有充电器插进来,如果VCS电

压大于3.9V就认为有充电器插入。

Mstar Driver

电池 & 充电

- 4 -

Copyright © 2010 MStar Semiconductor, Inc. All rights reserved. 三、 电池及充电参数介绍

(1)电池电压与电池容量的映射关系数据,这些数据时根据放电曲线特征来获取的,由HW同事提

供,LB和HB的作用:假设目前为LEVEL1,放电的时候,以图(2)的E2P值做参考当电压降到3813-LB

时,从LEVEL1变为LEVEL0;电压为上升的时候,当电池电压大于3813+HB时,从LEVEL0变为LEVEL1。

在33C(33C1)上分为8个等级,各个LEVEL对应的电压值可以通过修改E2P文件来修改,E2P存放路径和

文件名称为:

图2电压等级E2P

假设E2P中的电压设定如下:

图3 E2P VOLTAGE设定值

电压设定与MMI显示的格数的对应的关系图如图4所示:

BAT_LEVEL_3(ADC value:Vbat >4009-LB if battery voltage is going down, Vbat>4009+HB if battery voltage is going up)

BAT_LEVEL_2(ADC value:Vbat >3898-LB if battery voltage is going down, Vbat>3898+HB if battery voltage is going up)

BAT_LEVEL_1(ADC value:Vbat >3813-LB if battery voltage is going down, Vbat>3813+HB if battery voltage is going up)

BAT_LEVEL_0(ADC value:Vbat >3693-LB if battery voltage is going down, Vbat>3693+HB if battery voltage is going up)

BAT_LOW_BATTERY(ADC value:Vbat >3616-LB if battery voltage is going down, Vbat>3616+HB if battery voltage is going up)

BAT_LOW_BATTERY(ADC value:Vbat >3400-LB if battery voltage is going down, Vbat>3400+HB if battery voltage is going up)

BAT_TOO_LOW_FOR_COMM(shut off after 15seconds ADC value:Vbat <3400 )

LB=11,HB=22

图4 电池电压与容量关系图

通常情况下VOLTAGE TO MMI LEVEL是不用修改的,Base code中已经OK了。如果在实际的项目中发

Mstar Driver

电池 & 充电

- 5 -

Copyright © 2010 MStar Semiconductor, Inc. All rights reserved. 现,实际电压和MMI LEVEL显示不一致,主要从以下几个方面来DEBUG:

①在使用精密电源模拟电池放电时,请注意,电压只能从高变低,不能从低变高,MMI LEVEL只会处理

从高变低的过程。

②调完电压后,MMI LEVEL不会立即更新,需要等一些时间才能更新,由于不同的电压或软件版本对该

时间有不同的定义,我们取30s为状态更新时间,即调整好电压呀,等待30s,check MMI LEVEL是否

update。

③check实际电压和工程模式中读到的电压是否一致(正常时,基本一致),如果相差太大,请校准

ADC,如果还大,请check硬件。

④在check MMI LEVEL显示与Voltage是否一致时,请以手机采样到的电压为准,可以从工模中读出当

前的电压值。

⑤如果感觉显示不准,我们可以通过TMT来check,check从ADC中读到的Voltage是否正确,Voltage

TO MMI LEVEL是否正确,MMI LEVEL传到MMI后的处理是否正确,check整个流程来定位问题所在。

⑥如果自己要增加电池的等级,不光要修改cusSetting.e2p.val中的WBattLev,还需要修改

NB_MMI_LEVEL、_g_aeTabMmiLevel等内容,还需要修改MMI层。

(2)ADC采样校准参数,数据来自于E2P文件(stack_nor.e2p.val),读取参数函数为:

_MdlBatGetAdcParam(),它们的作用是减小误差。B2里面主要使用battery voltage相关的校准参数,在

函数_MdlBatGetAdcParam()计算。

static s32 _MdlBatGetAdcParam(bat_AdcParam_t* pParams)

{

#ifdef __ADC_CALIB_DRV__

// for battery voltage channel

e2p_Read(E2P_ADCBATCOEFF, &(pParams->batcoeff));

_TRACE((_IOB | MSDRV_BATTERY_TRACE_2, " batcoeff=%d \n ", pParams->batcoeff));

#ifdef __B2__

if((pParams->batcoeff > 50) || (pParams->batcoeff < -50))

{

_TRACE((_IOB | MSDRV_BATTERY_TRACE_2, "=== Invaild batcoeff value=== %d\n", pParams->batcoeff));

pParams->batcoeff = 0;

e2p_Write(E2P_ADCBATCOEFF, &(pParams->batcoeff));

fms_E2pSaveOneParameter(E2P_ADCBATCOEFF);