一 BQ芯片初步认识

包括BQ40Z50在内,BQ系列电池管理芯片看起来是一个芯片,其实芯片里面封装了两个die。一个是MCU部分负责计算和控制,其采用的是bqBMP内核的16位处理器;另外一个die是模拟前端AFE,负责模拟信号处理部分,主要功能是处理电压电流温度信号,包括放大,MUX,MOS驱动和一些硬件保护逻辑。两个芯片的绑定类似下图结构:

二 BQ芯片内部结构

MCU和AFE间主要接口有:电流采样库仑计CC,电压温度采样ADC,GPIO和专用串口通信。类似我们用分立器件MSP430+BQ76925的架构。

主要结构见下图所示:

MCU和AFE封装在一起是不得已而为之,也具有明显的优势:

• MCU主要负责计算和控制逻辑,是低压部分,而AFE主要负责高压部分处理,两个芯片工艺不同,在一个die上实现比较困难;

• 封装在一起,对外呈现的是一个芯片,使用方便,真正做到低耦合高内聚;

• 封装后固件也是由TI提供,稳定性比较好保证;

• 封装也利于电量计算法的实现,提高芯片价值。举例,BQ40Z50比BQ4050就贵不少。

对于BQ40Z50芯片,芯片架构细节如图所示:

TI专用内核bqBMP处理器是哈弗结构,数据总线和程序总线独立,其基本特征有:

  • CPU是16位的
  • 运行速度4.2MHz
  • 三级流水线
  • 指令长度灵活,可以支持8位、16位、24位指令

三 BQ40Z50内部存储器结构

内部存储器包括Flash,Boot ROM Flash, RAM,Data Flash和EEPROM。其中Flash一共有64K大小,RAM 2.5K, Data Flash 8K, EEPROM 0.5K.

Boot ROM是芯片的Bootloader,承担启动加载和固件升级作用,芯片固化好,不可修改和升级。

我们通过BQ Studio读出来的SREC文件,包括Data Flash, Program Flash和EEPROM的数据,也是除了Bootloader外的所有数据。

注意:

  • TI的电池管理芯片内的CPU core有两代,BQ30Z55 BQ3055 BQ34Z100 BQ27541 BQ27542 BQ78350是比较老的一代,已经逐步淘汰;
  • BQ40Z50同平台的有BQ40Z80,BQ78Z100,BQ27Z561等,推荐使用这一个系列。

四 固件升级方案

通过以上对CPU架构和存储结构的了解,我们对实现电量计芯片升级有个思路了。它跟普通MCU升级有相似的地方,只是要对芯片充分了解,可以做到不用bqStudio也能升级固件。

实际工作中,我们可能遇到以下问题:

1 已经校准的电池需要返工,通过bqStudio升级固件会擦除掉校准值和电量计学习的数据

解决方法:我们就可以不用bqStudio,专门编个PC软件,控制EV2400/EV2300,跳过升级data flash部分,只升级Program flash;

2 发现固件Bug,但由于固件已经发布,或者电池是串口的等原因,不能用电脑软件升级。

解决方法:主控来实现升级策略,可以升级电池的固件和配置参数,这个方法我们在无人机上已经实现。

3 已经发给客户的电池需要升级,并且数量很大,用PC软件效率太低。

解决方法:针对这种情况,也可以专门做个小板,内部存储电量计固件,连上电池就自动升级

这个可以50个100个同时工作,也很快能完成电池升级的问题。

事实上,我们也的确遇见这个问题,就做了个带SD卡的小板,将固件放到SD卡里面,一连接电池就会执行自动升级。

以上都是作者多年与BQ电量计打交道,通过研究或与原厂共同开发得到的经验,希望能对做电池的你有所帮助。

博客内都是原创文章,转载请注明出处。

BQ40Z50固件怎么升级?告诉你BQ系列芯片内部结构和升级方法的更多相关文章

  1. LSI系列芯片Raid卡配置方法、管理手册

    说明 本手册适用于LSI芯片Raid卡 包括但不限于Inspur 2008/2108 Raid卡.LSI 9240/9260/9261/ 9271 等Raid卡. 不同型号的Raid卡在某些功能上的支 ...

  2. 全面!总结BQ系列阻抗跟踪电量计化学Chemical ID配置和Golden学习方法

    BQ系列阻抗跟踪电量计SOC最高能达到1%,功能强大,应用起来也比较复杂.不仅要配置好参数,匹配好化学ID,并且进行好Golden学习和相关测试.本文就讲述ID匹配,Golden学习和测试的终极方法流 ...

  3. sharepoint2007就地升级2010系列(五)升级到sharepoint2010

    ---恢复内容结束--- 大家下午好 今天我们来完成最后一步,sharepoint2007升级2010.其实我反倒没有那么紧张了,因为我最担心的数据库升级,已经过了. OK,话不多说,让我们直接开始吧 ...

  4. sharepoint2007就地升级2010系列(三)升级系统

    OK,上两篇我们完成sharepoint2007的预览,以及升级前的补丁准备.今天我们来正式进行升级windows server系统以及SQL数据库 升级之前首先确定 search服务停止而且被禁用, ...

  5. openresty开发系列3--nginx的平滑升级

    openresty开发系列3--nginx的平滑升级 nginx服务器从低版本升级为高版本,如果强行停止服务,会影响正在运行的进程. 平滑升级不会停掉正在运行中的进程,这些进程会继续处理请求.但不会接 ...

  6. [转帖]你不曾见过的国产CPU:可能是最全的龙芯系列芯片家谱(下)

    你不曾见过的国产CPU:可能是最全的龙芯系列芯片家谱(下) https://www.ijiwei.com/html/news/newsdetail?source=pc&news_id=7177 ...

  7. 爱特梅尔ATMEL全系列芯片解密单片机破解

    爱特梅尔ATMEL全系列芯片解密单片机破解 ATMEL芯片介绍: ATMEL公司为全球性的业界领先企业,致力于设计和制造各类微控制器.电容式触摸解决方案.先进逻辑.混合信号.非易失性存储器和射频 (R ...

  8. 在keil 4中添加stc系列芯片的方法--【sky原创】

    在keil 4中添加stc系列芯片的方法: 1.从官网下载uv3.cdb的文件网址是:http://www.stcmcu.com/ 2.下载好后把uv3.cdb文件改成STC.cdb:3. 然后将[S ...

  9. xcode7.3 升级 xcode8.0 后权限设置问题(升级xcode 8.0 后构建版本不显示问题)

    xcode7.3 升级 xcode8.0 后权限设置问题(升级xcode 8.0 后构建版本不显示问题) 前两天为了适配 iOS10 的系统 我将xcode 7.3 升级到了 xcode 8.0 但是 ...

随机推荐

  1. 学习PHP中的任意精度扩展函数

    今天来学习的是关于数学方面的第一个扩展.对于数学操作来说,无非就是那些各种各样的数学运算,当然,整个程序软件的开发过程中,数学运算也是最基础最根本的东西之一.不管你是学得什么专业,到最后基本上都会要学 ...

  2. Mybatis中使用级联查询,一对多的查询

    一.需求描述 自己在开发一个小程序的过程中,需要做的一个查询是稍微比较复杂的查询,根据用户信息去查询用户所对应的宠物信息. 一个用户可能对应多个宠物,所以在用户和宠物信息的对应关系就是一对多的关系. ...

  3. redis 设置密码 laravel框架配置redis

    * 参考资料 redis文档             http://www.redis.cn/documentation.html,  http://redisdoc.com/index.html r ...

  4. three.js 纹理动画实现

    需求: 1.使用一张长图.分别播放这张长图的不同位置 来达到动态内容的目的 解决方案: 1.纹理创建并指定重复方向:this.texture.wrapS = this.texture.wrapT = ...

  5. 【死磕NIO】— 阻塞IO,非阻塞IO,IO复用,信号驱动IO,异步IO,这你真的分的清楚吗?

    通过上篇文章([死磕NIO]- 阻塞.非阻塞.同步.异步,傻傻分不清楚),我想你应该能够区分了什么是阻塞.非阻塞.异步.非异步了,这篇文章我们来彻底弄清楚什么是阻塞IO,非阻塞IO,IO复用,信号驱动 ...

  6. Centos7 配置JDK 提示 /lib/ld-linux.so.2: bad ELF interpreter: No such file or direct

    解决办法:yum install glibc.i686

  7. 浅谈一手MYSQL设计规范

    前言: 最近牵头搞一个机场管理集团的项目,发现团队中的成员对于库表设计,有非常多的盲区.所以决定写一篇文章,总结一下最近工作的几年中,常用的一些数据库设计规范和思路. 目的 MySQL数据库与 Ora ...

  8. hdu4479 (数学题)(算术基本定理)

    题目大意 给定一个三元组\((x,y,z)\)的\(gcd\)和\(lcm\),求可能的三元组的数量是多少,其中三元组是的具有顺序的 其中\(gcd\)和\(lcm\)都是32位整数范围之内 由算术基 ...

  9. 从网络通信的演进过程彻底搞懂Redis高性能通信的原理(全网最详细,建议收藏)

    我们一直说Redis的性能很快,那为什么快?Redis为了达到性能最大化,做了哪些方面的优化呢? 在深度解析Redis的数据结构 这篇文章中,其实从数据结构上分析了Redis性能高的一方面原因. 在目 ...

  10. ❤️这应该是Postman最详细的中文使用教程了❤️(新手使用,简单明了)

    ️这应该是Postman最详细的中文使用教程了️(新手使用,简单明了) 在前后端分离开发时,后端工作人员完成系统接口开发后,需要与前端人员对接,测试调试接口,验证接口的正确性可用性.而这要求前端开发进 ...