bq27520电量计的量产设计
目前我们有一个案子使用了系统端单芯理电池电量计BQ27520, 也从官网上下载了bq Evaluation Software来BQeasy来一步一步的配置了电量计。
但是这个只是对于单个电量计芯片的配置。量产需要导出一个什么文件呢?以至于烧写到新的主板上面,并不需要一个cycle就可以比较准确地读取电量信息!
以前开发锂电池监控系统样机,采用过TI的电量计芯片,具体型号忘了,现在通过你的问题,学习了下相关资料,将相关的问题答案摘录如下。
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)
bq Evaluation Software这类软件可以导出来很多的文件,我都搞混了,只知道SENC是包含固件和DATA FLASH,以及参数的比较完整的文件。
但是如GG,DFI,SENC,DFFS文件,我就不知道是什么内容了。还望解答。最适合作为量产文件的是哪类文件!
GG文件只包含公开的参数,一般只是作为调试时查看
DFI包含了所有参数,一般是电池厂家量产烧录时使用
SENC包含完整的firmware和参数,一般是调试时或者做样时使用
DFFS文件一般是系统端电量计AP/MCU通过I2C对电量计参数进行配置,只包含参数,如果所购买芯片Firmware型号与生成DFFS文件的型号一致,建议用DFFS文件,否则用包含Firmware的BQFS文件,格式解析参考SLUA541A Updating the bq275xx Firmware at Production这个文档
如果购买的是BQ27520-G4芯片,生成配置文件也是BQ27520-G4,那么最适合的是dffs文件
GG文件只包含公开的参数,一般只是作为调试时查看
DFI包含了所有参数,一般是电池厂家量产烧录时使用
SENC包含完整的firmware和参数,一般是调试时或者做样时使用
DFFS文件一般是系统端电量计AP/MCU通过I2C对电量计参数进行配置,只包含参数,如果所购买芯片Firmware型号与生成DFFS文件的型号一致,建议用DFFS文件,否则用包含Firmware的BQFS文件,格式解析参考SLUA541A Updating the bq275xx Firmware at Production这个文档
需要把你要烧录进去的文件准备好,主要包括GG文件、DFI文件、SENC文件还有DFFS文件等。
GG文件量产时候可以不需要。
那DFFS和DQFS是用AP/MCU来编程的文件,那请问这个文件是怎么生成的,用没有工具来生成这类文件呢!
而在操作系统里面要如何把这类文件编程到电量计芯片上面, 需要软件驱动吗?
那这样还比直接烧写SENC或DFI复杂多了?
1。下载GaugeStudio软件,激活Golden Image插件,可以导出bqfs和dffs文件,http://www.ti.com/lit/zip/sluc424
2。可以把bqfs和dffs拷贝到系统内存中,需要在底层驱动里编写加载代码,把bqfs和dffs逐行写入bq27520即可,建议直接写入bqfs,bqfs是包含指令和数据的完整固件,不存在加载数据和固件版本不兼容的问题
3。bqfs加载流程简单说就是先将bq27520从normal模式【设备地址0x55】切换到ROM模式【设备地址0x0b】,然后执行bqfs内容,最后退出ROM模式,发送复位命令0x41,加锁命令0x20,详细说明参考附件资料
Manufacturer Info A/B数据丢失
http://www.deyisupport.com/question_answer/analog/battery_management/f/35/t/66951.aspx
BQ27545发送IT ENABLE(0x0021)后,QEN位未置位
http://www.deyisupport.com/question_answer/analog/battery_management/f/35/t/66949.aspx
麻烦大神解答一下这两个问题,谢谢
请问有没有现成了加载代码呢?LINUX下面,或者是C语言的。我们方便参考。
大家好
现在我用一个电池用BQeasy配置和CYCLE好了一个GOLDEN file. 但是当update Golden Pack后,IT enable位被重新置为00,就是不使能。
请问这个在导出量产文件BQFS时,需不需要重新置为1。
另外还有一个问题,就是当我用系统工具来烧写BQFS文件后,电量SOC会变的不是那么准确,请问是什么原因; 之后我重新插拔电池后,电量SOC会变的稍微正常一次额。
在量产时,用BQFS烧写板卡后,由于每个设备的电池会存在一些差异,电量SOC显示也会存在差异,是否每个设备都需要一个完整的充放电过程才能更新一个比较准确地状态。
这个是哪个型号的芯片?一个完整的充放电周期可以提高精度,一方面是由于第一次上电时电量计比较难获取准确的开路电压,另一方面可能是电芯的一致性。如果电芯一致性比较好,电量计上电时能够读取准确的开路电压(静置不带载)那么即使是第一个周期也会有很好的精度。
如标题所说,我们用的是bq27520
现在主要有三个问题。
-
现在我用一个电池用BQeasy配置和CYCLE好了一个GOLDEN file. 但是当update Golden Pack后,IT enable位被重新置为00,就是不使能。
请问这个在导出量产文件BQFS时,需不需要重新置为1。
另外还有一个问题,就是当我用系统工具来烧写BQFS文件后,电量SOC会变的不是那么准确,请问是什么原因; 之后我重新插拔电池后,电量SOC会变的稍微正常一次额。
在量产时,用BQFS烧写板卡后,由于每个设备的电池会存在一些差异,电量SOC显示也会存在差异,是否每个设备都需要一个完整的充放电过程才能更新一个比较准确地状态。
您的意思是,烧写电量计并且初始化时,应该是静置不带载的状态吗? 但是BQFS是需要系统来烧写这个文件,在系统工作时不可能没有负载啊?
静置一段时间后电量计会根据读取到的电压自己校准回一个比较准确的SOC。
我们在量产烧写BQFS文件时,遇到了问题,之前是成功做了CYCLE,并且成功导出了GOLDEN file, 并且重新IT enable. 并导出了BQFS文件,用来烧写量产文件
1. 而在用系统烧写进去BQFS后。我认为RemCap 是不准确的。导致充满电后,RemCap到不了FullChgCap 的顶点。而由于阻抗跟踪算法的使能。当FC(full charge)置位后,FullChgCap 会更新为
RemCap最终的值。导致FullChgCap 越来越小。详见tablet5571_1020.xlsx 的LOG信息的3251-3252行。我们猜测是因为RemCap 计算不准的根本原因。请帮我们分析一下
2. 我们又拿了一台设备之前烧写过BQFS固件,并且跑过几次冲放电过程的。在电量显示为0%时,我们重新充电发现在RemCap 增加的过程中, FullChgCap会不断减少。最终二者比例达到最100%.这样最后可使用的容量就只有4960mAH了。可使用的容量就越来越少,这个问题比较严重。需要如何解决,LO信息详见tablet5571_1020_256taper current.xlsx
另外附件还有我们记录的GG文件,和bqeasy的配置文件。
首先分析带平滑的电量计时要查看FCC True这个数值是否比较准确,第二个问题是其实FCC True是比较小的,而FCC比较大,FCC是经过平滑的数值,所以FCC会尝试在100%时平滑到和FCC True比较接近的数值。
从这个现象看起来目前的问题是FCC True的数值存在比较大的误差。
主要检查以下几个方面:
1.满冲条件是否设置准确,这个电池是否是最大电压4.2V的电池?设计容量,Qmax数值是否准确
2.电流数值是否经过校准 误差比较小?
3.CHEM-ID的设置是否是实用TI的EV2300/EV2400在BQEASY,或者CHEM-ID界面选择的(而不是在dataflash直接修改号码)
4.能否提供一下golden learning的数据?
想在我想从系统里面读取FCC True的值,但是找TI资料都不知道从哪里读取,请告知读取方法。或者有哪一个文档说明。
http://www.ti.com/general/docs/lit/getliterature.tsp?baseLiteratureNumber=sluua35&fileType=pdf
第7页有相应寄存器地址
TrueSOC( ) UFSOC 0x74
senc文件如何解析,有相关文吗?无法下载senc文件。