电量计(gas gauge /fuel gauge)是用来计量显示电池电量,通常包括mAh剩余容量(RM),满充容量(FCC),百分比容量(SOC),电压,电流,温度等,部分电量计还包含放空,充满时间。TI阻抗跟踪电量计还有2个重要参数,Qmax(最大化学容量,指以非常小的电流从充抱到彻底放空的容量)和阻抗表(重要的有25度下(部分很老型号为0度)的Ra table)。笔记本电量计(2-4串)还具备非常完善的保护功能。
常见问题:
Q:采用电量计有什么好处,哪些应用需要使用电量计?
一般来说,可充放电池都是电量计的应用场合,取决于成本,用户体验等多方面考量。
好处:1.提高用户体验(能够精确知道电量,不会有大幅度不合理跳变,传统简单的电压法很容易有异常跳变,简单的库仑计会有累计误差以及需要经常更新校准)
2.尽可能多放出电池电量,延长使用时间(获得精确电量信息能够保证不突然死机前提下采用更低的关机电压)
3.成本效益,在2的前提下对于大容量电池能够多放出来的电量可能比一个电量计成本还要高,另外在体积受限场合能够避免使用高能量密度电池也能够带来成本上优化
Q:为什么电量计精度十分难提高
Q:TI电量计高精度的原因
Q:TI电量支持哪种电池材料
目前TI阻抗跟踪算法电量主要是支持锂电池,包括钴理,锰锂,铁锂和三元等多种材料,其中对于固定电芯信息的BQ27425 BQ27421/441目前不支持铁锂并且需要针对材料选择不同后缀型号,其他型号电量计需要针对特定材料下载相应的电芯信息。
Q:TI单节电量计产品分类和如何选型
TI单节目前主推的型号有BQ27541 BQ27741 BQ27510 BQ27520 BQ27531/530 BQ27421/441 BQ27425
BQ27530/531带charger控制功能,能够实现充电优化
BQ27425/BQ27421为集成电流采样电阻的电量计,最大长时间放电电流仅支持2A
BQ27421/BQ27441为简单易用电量计,配置参数流程简单,适合用于单片机控制场合
BQ27620为只采电压的电量计,使用较为复杂,建议选型前联系FAE。
Q:开发电量计需要哪些工具
Gaugestudio http://www.ti.com/litv/zip/sluc424c
BQ275XX EVSW http://www.ti.com/litv/zip/sluc367c
bqCONFIG http://www.ti.com/litv/zip/sluc378d
Q:能够不使用EV2400/2300,仅使用单片机便完成整个开发过程吗?
不使用官网的评估套件就无法使用上位机进行相关配置,调试和生成量产文件,尤其对于BQ275XX、BQ27741这类需要烧写电芯特性参数(CHEM-ID)的电量来说,开发阶段仅通过单片机是无法实现的这些参数烧写,即使对于bq27421/441这些可以用单片机完成配置的电量计,缺乏很好的调试工具也会造成开发效率低下。
Q:EV2300连接电脑后无法使用
EV2300确实在部分电脑有无法使用现象,解决方法先尝试装驱动软件(有32位和64位版本的驱动),如果不行建议更换为EV2400
Q:如何完成开发过程并得到量产文件?
开发步骤主要包括:1.配置参数 2.校准 3.电芯曲线CHEM-ID选择4.循环学习golden learning 5.导出量产文件
1.配置参数,可以通过bqCONFIG或者EVSW里的bqEASY进行配置,最通用的方式是通过EVSW或者Gauge studio对dataMemory里的参数进行修改。主要参数(部分电量计可能没有显示全部参数,可以不填写)有
判断满充条件参数
->Charge Voltage 满充充电电压,charger恒压充电时电压
->Taper Current 满充时电流,一般设置比charger停止充电时电流略大25mA左右(注意BQ27425,BQ27421/441填写方式略有不同,换算数值为Taper current(数值)=Design Capacity*10/Taper current(mA))
->Taper Voltage 用于判断电池符合满充的条件,一般设置为100或者150mV,即比充电电压小100-150mV
电池容量信息
->Design Capacity按电芯标称容量填写
->Design Energy 按电芯标陈能量填写(4.2V钴锂为标称容量*3.7,4.35V满充电压的电池为标称容量*3.8)
系统信息(注意BQ27425,BQ27421/441填写方式略有不同,换算数值为Threshold(数值)=Design Capacity*10/Threshold(mA))
->Terminate Voltage系统正常运行最低工作电压
->Dsg Current Threshold放电阈值
->Chg Current Threshold充电阈值
->Quit Current
其他的信息,包括中断管脚功能,温度传感器选择等,根据需要填写
2.校准
先确保无负载和充电电流情况下校准CC offset 然后校准 board offset,然后加上1A放电电流通过万用表填写实际电流数值校准Pack current
电压和温度校准无先后顺序,需要确保电池或电源电压数值稳定时通过万用表读取实际数值进行校准
对于集成采样电阻的电量计无需要对pack current进行校准。
3.CHEM-ID选择
A电池先采用0.5C恒流,恒压taper电流小于0.01C充饱
B静置2小时
C连接EVM板,自动log DataRAM数据,间隔为4s一次
D开始用0.1C电流放电,一直放到2.8V
E静置5小时
F将以上的log的数据保存下来用MATHCAD程序计算CHEM_ID,软件链接http://www.ti.com/litv/zip/sluc138bh
G 通过bqCONFIG/EVSW/Gauge studio相应界面下载CHEM_ID
注意板在做CHEM_ID前要先校准好,放电过程要连续,记录的数据包含放电完之后静置的那5小时,BQ27425/BA27421/441无需要这个步骤,只需要选择相应型号
4.循环学习和导出量产文件
A、确认已经设置好相关的参数以及进行校准和CHEM_ID选择才可以进行此步骤,发送命令0x41复位,导出DFI文件或者SENC文件备用
B、准备好一个放空的电芯(电压在3.0V-3.3V),静置5小时
C、连接板,发送0x0021命令使能IT算法,建议自动记录Data RAM数据(4s间隔)Data FLash数据(10分钟间隔)
D、按照正常充电过程将电池充饱,然后静置2小时,再按照0.2C电流进行放电到截止电压,再静置5小时,确保update status的数值为0x06
E、导出DataFlash的gg文件,用记事本打开修改Update Status为0x02,Cycle Count为0
F、导入之前备份的DFI或者senc文件,然后再写入修改后的gg文件
G、生成DFI,dffs文件
注意:测试过程在常温进行,铁锂电池需要更长的静置时间,A,E,F仅针对pack side电量计BQ27541和BQ27741,对于bq27421/441不需要步骤G,只需要得到gg文件即可。BQ27425对应DFI文件叫做DMI文件。BQ27421/441和BQ27425无需要发送0x0021命令。对于BQ275XX和BQ27741实际量产时最后需要确认发送使能(0x0021)和seal命令(0x0020),BQ27421/441BQ27425需要发送seal命令(0x0020)
Q:为什么需要seal电量计?如何unseal电量计?
Seal电量计以方面可以防止正常运行时错误写入电量计参数,另一方面可以保证电量计参数不被第三方读出
最后一部分,为什么没有说如何unseal?
回复 user3796401:
因为还没发完整。
Unseal电量计方式,对寄存器00和01写入DataMemory里的2个参数:Sealed to Unsealed = 36720414 Unsealed to Full = FFFFFFFF,默认是36720414 和FFFFFFFF,如果修改过则按照修改后的参数(注意发送时要连续)
先往00寄存器发0414中的14
再往01寄存器发0414中的04
再发3672(图略)
同理发送FFFFFFFF。
Q:电量计得到量产文件后如何进行量产?
系统端电量计可以通过AP编写相关的配置程序下载dffs或者bqfs文件
电池端电量计可以通过专业第三方量产设备或者使用多个EV2300进行小批量生产
Q:如何编写I2C程序?
TI 提供了一个基于MSP430的读写例程。MSP430™ Microcontroller Software for Handheld Fuel
Gauges and Battery Authentication Products http://www.ti.com/litv/pdf/slva413a
如果实际编写中发现还是通信不正常,可以使用示波器抓取相应波形对比一下。
例如读电压波形,08寄存器连续读2个字节得到5E0E,那么电压值为0x0E5E=3678
Q:如何获得TI的技术支持
除了联系TI和代理商的FAE以外,常见的方式就是通过deyisupport和E2E论坛发帖询问。
Deyisupport中文论坛主要是由国内FAE进行支持,http://www.deyisupport.com/question_answer/analog/battery_management/f/35.aspx
E2E英文论坛主要由产品线支持
http://e2e.ti.com/support/power_management/battery_management/f/180.aspx
Q.如何log数据和导出gg文件,senc文件?
通常在论坛提及电量计问题时,会经常遇到log数据,gg和senc文件。
Senc文件包含了电量计所有参数,包括firmware,隐藏参数和公开参数。
GG文件只包含公开参数。
Log数据包含了一段时间内电量计寄存器的数值。一般调试过程中,尽量记录gg文件和log数据。
EVSW里log数据和导出GG文件方法
Log 数据方式:Option-set logging Interval 设置记录数据间隔,一般记录时间不长的话采用默认的1000mS即可,然后点击start logging填写文件名点save就可以log数据了。
GG文件导出方式:点击DataFlash进入参数页面,选择File菜单下的Export填文件名点save就可以导出gg文件。同样位置Import就是导入GG文件。
Options菜单里可以设置gg文件自动导出的间隔名称,最后选择AutoExport就能够自动记录GG文件。
Gauge studio里log数据和导出gg文件方法
Gaugestudio 里点击Datalog(1)然后添加需要记录的数据(2),设置记录时间间隔(5),然后点击开始(3),数据记录完成后再点击3的位置,按4保存。
GG 文件导入和导出
点击DataMemory,图中的2 和3就是导入导出GG文件
GG里参数的修改直接选择相应的参数,输入修改后数值回车就,修改完建议点Read All键确实是否写入成功。
Q:为什么无法修改GG里的参数
回复 Sheldon Cai:
BQ27541 IIC 通信有没有原代码? 还有我设置,校准完后,能不能读到电池剩余电量百分比?
回复 zhengen zheng:
代码请参考附件,电量计需要完成校准配置学习等过程,并且发送0021命令使用IT算法才能读到正确的SOC
请问下量产工具的问题,也是要用EV2300 EV2400;这样的工具去写文件吗?
还是有其他的方法把测试出来的文件批量的写入到IC当中去;有没有烧录器
-----BQ27541
回复 xin gao1:
这个是IIC接口;应该可以用主控直接将文件写入到 BQ的IC中吧
主控是安卓平台
BQ27541是电池端的电量计,电池板厂一般有专业的第三方量产设备支持。系统端的可以考虑使用bq27510-G3或者bq27520-G4。一般客户的下载方式是通过I2C下载,我们的上位机工具在完成开发后可以生成senc文件 dffs文件和bqfs文件。dffs文件和bqfs文件是一些I2C的命令,主机需要将这些命令解析然后转换成I2C命令下载,注意下载时要连续,不能中断(如果中断需要马上重写)。用EV2400/EV2300下载当然是可以的,只是下载效率低。
我使用的是BQ27531+BQ24192,看到BQ27531循环学习周期这里有个问题请教您一下:当电池执行到D步骤:充电->静置->0.2C放电到截止电压后,接下来是静置5小时,在这5小时中整个电量统计系统由哪里供电??
1)由电池为BQ27531供电吗??如果是由电池供电,电池到截止电压后无法再使BQ27531正常工作(从EVSW软件无法读取BQ27531的RAM数据)。
2)由充电端供电??如果由充电端供电,那电池和充电端同时接入有效电压情况下是由充电端供电的,那么电池该怎么放电到截止电压??
百忙中打扰您,抱歉,谢谢!
回复 GLOARY LEE:
静置的时候其实并不要求电池完全没有电流输出,只要电流足够小,然后电量计检测到电压非常稳定即可,此时的电量计是由电池供电的,电量计和chargerIC的静态功耗都不大,完全可以达到静置要求。
1)所谓的截止电压一般指系统能正常工作的电压,通常会比电池包的欠压保护要高,如果系统可以运行的电压非常低,那么可以稍微将截止电压还设置高一些以保证电量计能工作,单节电量计推荐设置截止电压要大于2.8V
2)在第一个学习过程中需要保证放点过程中无充电现象,所以不推荐插着适配器放电。
这个要找代理商或者原厂的工程师要吧,我们现在一款新的电池保护板就是用的这颗IC