TI电量计BQ27541我自己做的校准电流就差最后一步了!请ti大发慈悲帮我解释下!
目前校准电压,校准温度都已经ok!附件是我自己用上位机做的校准,但是现在就是校准电流没有做成功,不过我已经研究的差不多了,就是把dataflash的CCGAIN和CCDELTA重新写一个新的校准值。
不过里面有很多浮点运算和非IEEE1714标准,弄得我头大,不过大致上已经思路清晰了,但是现在就差东风了,请TI大发慈悲帮小弟一把,我一个星期都没合眼了!
在我看来这种技术最多叫做破解,算不上真正的技术,真正的技术还在TI如何利用CCGAIN和CCDELTA的模型进行电流参数和阻抗追踪 进行SOC的算法,当然我觉得目前国内还没达到这种技术水平,所以我们只能吧别人的东西“拿来主义”。
再次也分享 我自己最近的一些研究成果,主要是校准电流“如何利用上位机发命令和下位机进行电流参数校准”
附近是我自己下位机和上位机的主要代码,当然我不会全部贴出,我觉得要珍惜我的劳动成果,!
CC GAIN 和 OFFSET
Raw data (0x7F71205C) ‐> first two byte is for exp gain. The exp is 0x7F ‐> 127, so gain is: (127‐128‐24) = ‐25 ‐>
2^(‐25)
0x71205C OR with 0x80 = 0xF1205C ‐> convert into DEC and times 2^(‐25) = 15802460*2^(‐25) = 0.47095
New encr file: CC Gain = 4.768/x = 4.768/0.47095 = 10.124 (matches!)
谢谢您对TI社区的贡献。
谢谢wang 工,不过我还是有疑问,关于0X60寄存器的写入,就是当我吧ccgain和ccdelta的值重新写入之后,怎么才能计算出0x60新的值呢?
看了ti规格书,吧所有的数据读取出来,然后累加得到x,再用25-x。再取最低8位。
但是这个方法同样适用cc gain和ccdelta吗?
怎么我试了不行,是不是我的代码有问题,我待会附上我的效验代码!
您说的是CRC校验的算法,对所有dataflash的值都是适用的。在同一个subclass下32byte相加,255-x
王工:你好! 还是想请教一下你,目前CRC效验我已经解决了,校准写入2次的问题我吧延迟调了之后也解决了,最后一个就是你贴的那个算法,我不太懂的就是说浮点数转换4个字节之后,经过你上面的算法得到写入dataflash的真实值,这里我实在是看不懂算法,也写不出来,我有一个想法,不知道对不对,就是说假设现在读到的电流是1000ma,我想校准成700ma的话,是不是吧(700/1000)=0.7发给上位机,然后上位机吧原先的dataflash的值乘以这个值得到一个新的值,再经过上述算法转换成4个字节发给下位机,不知道我说的对不对,还请指教?
我自己用示波器看了波形,发现还是有规律的,比如原先的值是10.124,对应的4个字节是0x7f,0x71,0x21,0xae, 我写成7之后,4个字节就是0x7f, 0x 2E, 0x 5F, 0x 61。我看规格书里面是需要与一个常数进行运算的,比如这里(规格书的常数)4.768/10.124=0x3E,0x F1,0x 21,0x AE,规律就是最高位如果是奇数,就要把第二位最高位置位。当然我测试过很多数据,才得到上述关系的,但是我不知道怎么用程序去实现他,还望王工能够透露一下!
bqEVSW 软件将芯片内的4byte dataflash 值读取以后,会做一些运算处理,
算法参照上面的回复。
如果需要计算出这个校准值,参考,http://www.ti.com/lit/pdf/slua640
说真的那个算法我真的没看懂,
哥们 我最近也用到BQ27541 也有些问题,不知道能否指导下
BQ27541
电池电量电流都可以读
但是读CCDELTA 怎么运算
这个算法我都会
现在问题是上位机怎么通讯
BQ80XRW.DLL 里面的函数都不公开 文档也没有智能摸索呀
可以联系我,774606398