一 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. Docker系列(19)- 数据卷之Dockerfile

    初识Dockerfile Dockerfile就是用来构建docker镜像的构建文件!命令脚本! 通过这个脚本生成镜像,镜像是一层一层的,脚本与一个个的命令,每个命令都是一层! # 创建一个docke ...

  2. lightweight openpose 入门实操笔记(pytorch环境)

    最近有个小项目要搞姿态识别,简单调研了一下2D的识别: 基本上是下面几种 (单人)single person 直接关键点回归 heatmap,感觉其实就是把一个点的标签弄成一个高斯分布 (多人)mul ...

  3. Redis-Cluster分片扩容

    redis分片分片场景在业务量相对较小的时候,可以将所有数据都存到一台机器上,只使用redis单机模式,不存在分片问题.如果业务的数据量超过一台物理机器的内存大小时,则会面对扩展问题,需要多台机器去存 ...

  4. YbtOJ#526-折纸游戏【二分,hash】

    正题 题目链接:https://www.ybtoj.com.cn/problem/526 题目大意 一个\(n\times m\)的网格上有字母,你每次可以沿平行坐标轴对折网格,要求对折的对应位置字母 ...

  5. CreateRemoteThread创建远程线程

    要实现线程的远程注入必须使用Windows提供的CreateRemoteThread函数来创建一个远程线程 该函数的原型如下: HANDLE CreateRemoteThread( HANDLE hP ...

  6. 11.4.4 LVS-Fullnat

    lvs-fullnat(双向转换) 通过请求报文的源地址为DIP,目标为RIP来实现转发:对于响应报文而言,修改源地址为VIP,目标地址为CIP来实现转发: CIP --> DIP VIP -- ...

  7. Java基础之(五):数据类型

    Java快捷键 首先我们先来介绍下IDEA的一些快捷键 psvm=public static void main(String[] args) {} sout=System.out.println(& ...

  8. 试题 算法训练 区间k大数查询 java题解

    资源限制 时间限制:1.0s   内存限制:256.0MB 问题描述 给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个. 输入格式 第一行包含一个数n,表示序列长度. 第二行包含n个正 ...

  9. CountBoard 是一个基于Tkinter简单的,开源的桌面日程倒计时应用

    CountBoard 是一个基于Tkinter简单的,开源的桌面日程倒计时应用. 项目地址 https://github.com/Gaoyongxian666/CountBoard 基本功能 置顶功能 ...

  10. 【错误分析】NX error status: 32

    在进行NX 制图里面的表格注释合并单元格时,总是报错NX error status: 32,找了很久都不知道问题所在. 报错提示如下: NXOpen.NXException: NX error sta ...