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

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

3天内不再提示

BQ27426 GMFS文件修改流程介绍

德州仪器 来源:德州仪器 作者:德州仪器 2022-02-15 13:36 次阅读

手机,平板等个人移动产品中,我们经常会关注电池容量的多少,TI的BQ27426,BQ27Z561等电池电量监测芯片可以通过检测电池电压,电流以及温度,从而计算出电池容量,并且两者均是单节电池电量计,广泛应用于上述场景。在实际使用过程中,需要配置好各种参数,生成GMFS文件再交给客户生成.h文件结合到客户的代码之中。

1.1 修改流程介绍

一般来说,当客户需要修改配置并且生成新的GMFS文件时,需要客户提交CHEMID以及GMFS文件,提交给产品线进行修改,耗费时间较长,尤其是当客户只需要修改1-2bit时,此流程可能会延缓项目开发进度,影响客户体验。下文中以最常遇到的DMCODE修改为例,介绍如何快速的进行修改。修改流程主要为: 找到DMCODE寄存器位置->找到校验位位置并快速计算->修改并验证

1.2 快速修改DMCODE

在客户的程序中,一般会通过判断我们BQ27426里内置的DMCODE这一bit来区分不同的配置程序,如果DMCODE保持一致,客户的软件中可能会有所冲突,就需要我们帮助客户快速的修改。

本文是基于GMFS文件直接进行修改,没有在上位机界面进行修改,在上位机界面进行修改后可能还会涉及到新生成的GMFS文件不包含ChemID的问题,同样需要产品线帮我们添加ChemID信息到GMFS文件,具体方式不在赘述。

在进行修改前,我们需要理解GMFS文件。可以参考《GMFS文件解析》来简单了解下GMFS文件。

DMCODE在TRM中有如下描述,但是我们的BQStudio软件并未将这一位寄存器开放出来,经过跟产品线确认,我们的DM CODE位于Subclass ID的第5位。也就是Table 7-2中,Subclass 64, offset为5的位置。(Table 7-2并未完整显示所有寄存器).

pYYBAGILEGGAMOXlAAAz9CyHRSs375.png

pYYBAGILEGKAfo5IAAAlAapeOHU108.png

图1.1 DMCODE定义

Subclass 64这里的64是DEC下的64,如果切换到HEX也就是0x40. 那么我们就需要在gmfs文件中找到0x40写入的指令:

poYBAGILEGSAbKF7AAAoF75bj-Y377.png

图1.2 代码例程

同样根据《GMFS文件解析》,第一行代表的是找到Subclass 64的地址,第二行表示写入数据,第三行表示写入校验和,第四行表示等待,第五行和第六行为校验和相关验证。

我们的DMCODE的offset为5,在上述代码中找到offset为5的位置,也就是01的位置(为方便理解,图中已经标红)。

在接下来就是寻找校验位的位置以及如何快速计算,这里代码中已经标红,就是第三行的0D和第六行的0D。接下来介绍如何快速修改。

关于checksum的计算可以看BQ27426 TRM的第四章节,其中这里有详细的描述:

pYYBAGILEGWAb1XYAAA8EogY0vU713.png

图1.3 checksum计算过程

如果每一次都需要完整计算会耗费较多时间,这里的快速修改方法就是将想要修改的值和修改前作比较,将变化的值取负号也加入到checksum中。

举个例子,由上图可知,我们的DMCODE为01,如果我们像将其改为02,变化的值为+1,因此checksum的值就需要-1,目前Checksum的值为0D,DMCODE修改完后Checksum的值应该为0C.

这里的这张截图是通过上位机修改得到的对比表,可以发现,DMCODE改为2后,Checksum值从0D变为了0C。

pYYBAGILEGeAY0vLAABP82HkVI8860.png

图1.4 DMCODE结果对比

本文提供的是基于GMFS文件直接修改DMCODE的方法,如果需要修改其他寄存器的值,请咨询FAE确认是否可以修改该值。有的值修改后可能会对Gauge的预测算法产生影响。

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

    关注

    112

    文章

    6013

    浏览量

    141106
  • 电量计
    +关注

    关注

    2

    文章

    94

    浏览量

    31635
收藏 人收藏

    评论

    相关推荐

    系统侧Impedance Track™电量监测计BQ27426数据表

    电子发烧友网站提供《系统侧Impedance Track™电量监测计BQ27426数据表.pdf》资料免费下载
    发表于 03-22 14:22 0次下载
    系统侧Impedance Track™电量监测计<b class='flag-5'>BQ27426</b>数据表

    BQ3588C烧录说明

    BQ3588C_烧录说明
    的头像 发表于 01-10 15:44 262次阅读
    <b class='flag-5'>BQ</b>3588C烧录说明

    QE for CTSU驱动更新流程介绍

    QE for CTSU驱动更新流程介绍
    的头像 发表于 01-10 08:06 168次阅读
    QE for CTSU驱动更新<b class='flag-5'>流程</b><b class='flag-5'>介绍</b>

    半孔板比常规pcb板多出什么流程

    半孔板是一种特殊的PCB板,相比于常规的PCB板,它在制造过程中需要多出一些步骤和流程。在本文中,将介绍半孔板相较于常规PCB板所多出的流程。 首先,半孔板的制造流程与常规PCB板的
    的头像 发表于 12-25 16:13 385次阅读

    下载vscode老版本离线插件vsix文件流程

    下载vscode老版本离线插件vsix文件流程如下
    的头像 发表于 12-20 09:26 3323次阅读
    下载vscode老版本离线插件vsix<b class='flag-5'>文件</b>的<b class='flag-5'>流程</b>

    linux修改网卡ip配置文件

    、子网掩码、网关等参数。本文将详细介绍如何修改Linux的网卡ip配置文件。 首先,在Linux中,网络接口的配置文件一般位于/etc/sysconfig/network-script
    的头像 发表于 11-17 10:51 1232次阅读

    shell实例三(编写批量修改扩展名脚本)

    实现功能: 编写批量修改扩展名脚本,如批量将 txt 文件修改为 doc 文件 执行脚本时,需要给脚本添加位置参数
    的头像 发表于 11-09 09:35 261次阅读
    shell实例三(编写批量<b class='flag-5'>修改</b>扩展名脚本)

    hex文件可以直接修改吗?

    请问可以直接修改hex文件吗,修改的时候有没有什么技巧
    发表于 09-26 06:08

    如何使用Python和pandas库操作Excel文件

    修改Excel文件,需要使用openpyxl库中的Workbook和Worksheet对象。这些对象使您能够读取和修改Excel文件中的单元格、行和列。  1、
    的头像 发表于 09-11 17:57 745次阅读

    解锁YOLOv8修改+注意力模块训练与部署流程

    很多人也想跟修改YOLOv5源码一样的方式去修改YOLOv8的源码,但是在github上面却发现找到的YOLOv8项目下面TAG分支是空的
    的头像 发表于 08-11 14:14 2670次阅读
    解锁YOLOv8<b class='flag-5'>修改</b>+注意力模块训练与部署<b class='flag-5'>流程</b>

    如何在IPI流程修改(以太网)IP工程(及其所包含的GT模块)的代码与属性

    本文介绍如何修改IP例子工程里的IP和GT模块的源代码与属性
    的头像 发表于 07-10 17:21 867次阅读
    如何在IPI<b class='flag-5'>流程</b>中<b class='flag-5'>修改</b>(以太网)IP工程(及其所包含的GT模块)的代码与属性

    FPGA设计流程

    FPGA的设计流程主要包括HDL代码编写、RTL综合、布局布线、静态时序分析、生成下载文件。下面将逐一介绍各部分。下面是FPGA设计的流程图。
    的头像 发表于 07-04 12:06 895次阅读
    FPGA设计<b class='flag-5'>流程</b>

    如何从Linux内核角度探秘Java NIO文件并读写本质呢?

    又在此基础之上介绍了针对 socket 文件的相关操作及其对应在内核中的处理流程
    的头像 发表于 06-12 14:14 538次阅读
    如何从Linux内核角度探秘Java NIO<b class='flag-5'>文件</b>并读写本质呢?

    关于bq78350+bq79630相关问题

    和0x16都不能读数据 是什么原因呢 能否通过软件修改BQ78350的地址 ,如果 可以是在哪一项设置里改呢,看了说明书不是特别清楚。 连接大容量电池,怎样设置超过软件限制的 充放电电流和容量呢 访问温度
    发表于 05-31 13:51

    Linux系统如何修改文件属性与权限

    我们已经深入学习了Linux系统中用户和用户组的基本概念。每个文件和目录都具有“所属用户”和“所属用户组”这两个属性,这两个属性对文件权限及安全性至关重要。本节我们就来学习如何修改一个文件
    的头像 发表于 05-12 15:29 2010次阅读
    Linux系统如何<b class='flag-5'>修改</b><b class='flag-5'>文件</b>属性与权限