0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

锂电池电量检测解决方案

我快闭嘴 来源:电子产品世界 作者:李跃勇 2021-05-02 12:37 次阅读

1 传统锂电池电量检测方案

传统的锂电池检测方案采用ADC 采集锂电池两端电压,然后根据厂家提供的电池的放电曲线,通过算法估算出来的一个大概的电量数值。如图1 所示,此图是一个容量为2 000 mAh 的锂电池放电曲线,放电电流为2 000 mA。

锂电池电量检测解决方案

图1 锂电池放电曲线

X 轴代表剩余电量,Y 轴代表电池两端电压。根据实际需要显示的电池电量要求,把Y轴分成相应的段数,然后对照X 轴坐标值,可大致估算出电池电量。

例如图2 所示,当电池电压下降到3.5 V 左右时,电池电量大概在50% 左右。但这种方式最大的弊端是没有考虑到电池的内阻,从而导致计算出来的电池容量误差很大。电池两端电压计算公式如下:

V=Voc-I×Rbat

锂电池电量检测解决方案

图2 传统估算电池电量的方法

其中:Voc 指的是电池两端的开路电压,I 表示电池放电电流,Rbat 表示电池内阻,不同厂家的电池内阻通常在几十毫欧到几百毫欧不等,而且电池内阻会随着电池的老化而增加,通常在100 个周期之后电阻内阻会增加1 倍,这种内阻的变压会导致计算出来的误差非常大。

从图1 中的放电曲线上也可以看到,电池满电量时,电压约为4.2 V,当电池用2 000 mA 电流开始放电时,电池电压瞬间就降低到3.9 V 左右,其中的压降正是电池内阻在作怪。当遇到需要突发电流的情形,就会发生电池电量格数跳变的现象。

系统框图

MAX17055采用Maxim ModelGauge™m5 EZ算法。ModelGauge m5 EZ 不需要对特定电池特征进行建模,很容易实现电量计设计,并简化主机软件开发。

ModelGauge m5 EZ 提供可靠算法,对于绝大多数锂电池提供高精度测量。MAX17055 自动补偿老化、温度和放电率,并提供精确的电量状态(SOC,%) 和剩余电量(mAh)。当电池达到接近空电量的临界区域时,ModelGauge m5 算法激活特殊的误差修正算法,进一步消除误差。系统设计师不再需要执行特征分析,这部分工作实际上已经由电量计厂商完成了。该方案系统框图如图3 所示,其中锂电池负端通过检流电阻连接到系统地,MAX17055 相关检测管脚连接到检流电阻的两端,充电管理芯片连接到锂电池正极以及系统地。

锂电池电量检测解决方案

检流电阻用于检测通过锂电池的放电电流和充电电流,该电流送给MAX17055 芯片用于计算电池电量, 充电管理芯片用于给锂电池充电,其中充电管理芯片可采用通用的TP5400 或BQ24075 等。

MAX17055 实现了行业较低的静态电流—低功耗模式下仅消耗7 μA 电流。对于空间受限的应用,它可以支持1.4mm×1.5mm WLP 封装,非常适合智能手表、手机无人机等便携式产品

3 系统电路图

充电管理芯片采用TP5400,它是一款专用的单节锂电池充电器和恒定5 V 升压控制器,充电部分集高精度电压和充电电流调节器、预充、充电状态指示和充电截止等功能于一体,可以输出最大1 A 充电电流。充电电路图如图4 所示。

锂电池电量检测解决方案

图4 TP5400充电电路

IN_5V 连接外部充电器的5 V 输出,OUT_5V 是TP5400 升压后的5 V 输出。VBAT 连接锂电池正极,GND 连接锂电池负极。CHRG 管脚为漏极开路输出,当充电器向电池充电时,此管脚被内部开关拉到低电平,表示充电正在进行;否则此管脚处于高阻状态。

STDBY 管脚也为漏极开路输出,当电池充电完成时,此管脚被内部开关拉到低电平,表示充电完成,否则为高阻状态。PROG 管脚用于设定充电电流大小。可根据下面公式设定充电电流:

锂电池电量检测解决方案

其中IBAT 表示充电电流,RPROG 为1.1 kΩ, 故设置的充电电流为1 A。根据芯片数据手册可知,芯片的终止充电电流在C/5,大约是200 mA。MAX17055 硬件电路如图5 所示。

锂电池电量检测解决方案

图5 MAX17055电路图

BATT 脚连接锂电池正极,MAXGND 连接锂电池负极,R5 为检流电阻,此处为5 mΩ,CSP 脚连接检流电阻正端,CSN 连接检流电阻负端,SCL 和SDA 脚用于与单片机进行IIC 通信,ALRT 脚用于输出报警信息

THRM 脚可用于连接带有温度检测的锂电池,如果锂电池没有温度检测管脚,可按上图处理即可。

MAX17055 需进行正确的初始化才能工作,其初始化流程如图6 所示。

锂电池电量检测解决方案

官方提供了MAX17055 初始化代码例程,例程中的部分寄存器必须根据自己的实际情况来正确配置才能获得精确的电量指示,这些寄存器分别如下。

DesignCap Register(18h):电池容量寄存器,这个值与计算得到的当前的电池容量做对比,用来计算电池的使用寿命和健康状况。多少毫安时的电池就填写实际的数值进去,这里以2 000 mAh 的电池为例,此处可直接填写0x07D0。

RSense Register(D0h):检流电阻大小寄存器,此寄存器例程中并没有给出,但我们在实际配置过程中必须根据硬件电路配置此寄存器,否则得不出准确的结果。

根据数据手册官方推荐的数值,硬件电路采用5 mΩ 的检流电阻,此处值我们填写0x01F4。

IChgTerm Register(1Eh):充电终止电流寄存器,前面我们设置的充电管理芯片TP5400 的充电终止电流为200 mA,一般我们将此值设置得比实际终止电流稍微大一些。在这里我们设置此寄存器的值为260 mA。

VEmpty Register(3Ah):空电压寄存器,锂电池一般设置为3 V 即可。

初始化代码(部分)如下:

I2C_Read(0x00, &statusPOR);// 读取Status 寄存器

if((statusPOR&0x0002) == 0)// 上电复位事件未发生

{

return SUCCESS;

}

else// 上电复位事件发生

{

I2C_Read(0x00,®_tempValue);// 读FSTAT

寄存器的值

while(reg_tempValue&0x01)// 判断FSTAT.DNR

状态

{

I2C_Read(MAX17055_REG_FStat,®_

tempValue);

I2C_Delay(10);// 延时 10ms

}

Read(0xBA,&HibCFG);

WriteAndVerifyRegister(0x60,0x0090);

WriteAndVerifyRegister(0xBA,0x0000);

WriteAndVerifyRegister(0x60,0x0000);

WriteAndVerifyRegister(0x18,0x07D0);// 设

置电池容量为2000mAH

WriteAndVerifyRegister(0x45,0x003E);// 设

置dQAcc

WriteAndVerifyRegister(0x1E,0x0340);// 设

置充电终止电流为260mA, 计算方法0x0340*1.5625/5

WriteAndVerifyRegister(0x3A,0x9661);// 设

置空电压,计算方法:0x9661*1.25mV/16

WriteAndVerifyRegister(0xD0,0x01F4);// 设

置检流电阻大小,500=0x01F4

WriteAndVerifyRegister(0x46,0x0640);// 设

置dPAcc

WriteAndVerifyRegister(0xDB,0x8000);// 设

置ModelCFG

WriteAndVerifyRegister(0x13,0x4600);// 设

置FullSocThr 寄存器

Read(0xDB,®_tempValue);

while(reg_tempValue&0x8000)

{

I2C_Read(0xDB,®_tempValue);

I2C_Delay(10);// 延时10ms

}

WriteAndVerifyRegister(0xBA,HibCFG);

Read(0x00,®_tempValue);// 读取Status

寄存器

WriteAndVerifyRegister(0x00,0xFFFD);// 清

除POR 位

Read(0x00,&statusPOR);// 读取POR 位

if((statusPOR&0x0002) == 0)

{

return SUCCESS;// 初始化成功

}

else

{

return FAULT;// 初始化失败

}

4 结语

随着生活水平的提高,人们对便捷式产品的要求越来越高,传统的依靠电池电压来推算电量的方式因为显示不精细、不准确而饱受诟病,特别是针对便捷式的医疗器械产品来说,往往可能因为电量指示的不准确从而误导用户没有及时地对仪器进行充电,从而影响到仪器的再次使用。此方案可提供准确的电量指示,解决单节锂电池供电仪器的电量指示问题。
责任编辑:tzh

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 锂电池
    +关注

    关注

    256

    文章

    7665

    浏览量

    163358
  • 检测
    +关注

    关注

    5

    文章

    4080

    浏览量

    90744
  • 电量
    +关注

    关注

    0

    文章

    107

    浏览量

    18082
收藏 人收藏

    评论

    相关推荐

    锂电池电量检测问题

    打算自制一锂电池电量检测板(20~30V输入),能将电量值通过串口或其他方式将数据传给计算机,有没有什么芯片或软件可用借鉴?要求尽量降低成本。工作温度要在-20~60度。谢谢!
    发表于 04-11 11:20

    8脚带AD转换单片机做锂电池电量检测是否可行

    8脚带AD转换单片机做锂电池电量检测是否可行
    发表于 12-14 21:12

    [求助] 显示5串锂电池电量方案?最好有电路图

    显示5串锂电池电量方案?最好有电路图 ,用LED灯显示的
    发表于 01-14 20:58

    锂电池电量检测疑问

    最近在做一个手持设备时遇到了电池电量检测问题。一开始我使用检测锂电池电压的办法,但发现不准确,最后只做了低电量报警。网上搜索发现,有一种“库
    发表于 10-19 17:39

    锂电池电量检测----充电过程,锂电池电量怎么检测

    1、给电池充电,本来打算通过检测电池电压Vbat,来计算电池的充电电量;2、但是5V适配器接上后,主控板就会输出4.2V的Vbat,这时
    发表于 03-18 17:04

    锂电池电量检测芯片

    求教介绍款锂电池电量检测芯片:1)使用I2C通信接口;2)测量3.7V锂电池;3)成本尽量小;4)封装小点;5)使用库仑计数,或者阻抗跟踪的检测技术;
    发表于 05-24 18:41

    简单的锂电池电量检测电路 从百度里下载的

    简单的锂电池电量检测电路从百度里下载的
    发表于 06-04 09:43

    单个锂电池电量检测集成电路LC709203F

    导读:On Semi公司的LC709203F是用于手持设备的单个锂电池电量检测集成电路(IC),具有高精度电池电量检测和精密电压测量,不需要外接电阻,支持高达400kHz的I2C接口和
    发表于 09-30 16:03

    单节锂电池电量指示芯片

    YJ60A是一款单节锂电池电量指示芯片,可实现四个电压点的检测检测精度高。
    发表于 12-07 20:56

    单节锂电池电量指示芯片

    YJ60A 是一款单节锂电池电量指示芯片,可实现四个电压点的检测
    发表于 12-19 18:31

    单节锂电池电量指示芯片

    YJ60A是一款单节锂电池电量指示芯片,可实现四个电压点的检测
    发表于 02-18 19:59

    单节锂电池电量指示芯片

    YJ60A是一款单节锂电池电量指示芯片,可实现四个电压点的检测
    发表于 02-20 13:05

    单节锂电池电量指示芯片

    YJ60A是一款单节锂电池电量指示芯片,可实现四个电压点的检测
    发表于 02-24 11:09

    单节锂电池电量指示芯片

    YJ60A是一款单节锂电池电量指示芯片,可实现四个电压点的检测
    发表于 03-04 10:23

    锂电池电量指示电路

    锂电池电量指示电路内部有四个比较器,由四个独立的指示电路实现电池的端电压指示。
    发表于 12-06 18:23