ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

bqstudio电量计校准、QMAX学习与Golden Image量产指南

bqstudio电量计校准、QMAX学习与Golden Image量产指南 手上拿到一块电池保护板或者电池包电量计芯片已经焊在板上Data Flash 里全是供应商给的模板参数QMAX 和 Ra Table 是没经过学习循环的占位数据连电压电流的校准都没做过。这个时候你想让它准确报 SOC基本不可能报出来的百分比要么跳变要么永远卡在某个值上。能把这块芯片从出厂态调到可用态的工具绝大多数工程师手上就是 bqstudio。它是德州仪器官方的 Battery Management Studio专门用来配置、校准、学习、导出 bq27xxx、bq28xxx、bq34z100、bq40z50、bq4050 这一整条电量计产品线部分充电管理和保护芯片也能用它做寄存器级的调试。它能干的事情很具体读写 Data Flash 参数、读写寄存器、发命令、做电压电流温度校准、跑学习循环、生成 Golden Image、导出量产烧录文件。适合谁上手做电池包设计的硬件工程师、做 BMS 固件的嵌入式工程师、产线测试和量产的工程人员还有一部分是做电池评测和方案预研的。如果你连 SMBus 和电量计的基本概念都还没建立建议先补一补再进来不然界面上几十个面板会看得人发懵。下面这篇是我这几年反复用 bqstudio 调 bq27 和 bq40 系列攒下来的东西尽量按实际操作的顺序讲不绕弯子。1. 先把工具链和硬件链路理清楚1.1 bqstudio 到底管什么、不管什么很多人第一次用 bqstudio 会有一个误解以为装上它就能直接跟芯片对话。实际上 bqstudio 只是一个上位机它自己不产生任何物理层的电气信号。PC 和芯片之间必须隔一个通信适配器由适配器把 USB 转成 SMBus、I2C 或者 HDQ 电平芯片才认。所以完整链路是PC 上的 bqstudio → USB 线 → 适配器 → 芯片的 SMBus/I2C 引脚。这条链路上任何一环出问题软件都会报设备未找到或者读到一堆 0xFF。先把边界说清楚。bqstudio 负责的是通信和参数层面的交互它不管你的电池是不是真的接上了不管你的充电器有没有在工作也不管芯片外围的采样电阻焊没焊对。我见过有人抱怨校准做不准最后发现是采样电阻的封装选错、实际阻值和原理图差了 5 倍。软件是把你的输入写到芯片里芯片再按自己的固件逻辑运行如果硬件本身有问题软件这边再怎么调都是白费。所以在打开 bqstudio 之前先确认三件事芯片供电正常、SMBus 上拉电阻在位、采样通路电压分压、电流采样电阻、温度 NTC的硬件参数和原理图一致。提示bqstudio 的每个面板都对应芯片手册里的一组寄存器或 Data Flash 地址界面上的参数名不一定和手册里的叫法完全一样。遇到对不上的用 Commands 面板直接发命令、用 Registers 面板直接读地址这是最靠得住的方式。另外一个常见误解是把 bqstudio 当成烧录器。它能生成量产用的烧录文件但真正在产线上把文件写进芯片靠的是编程器或者产测工装bqstudio 更多是生成配方的角色。想清楚这一点后面导出文件的环节就不会搞错。1.2 通信适配器怎么选适配器之间的差别适配器这块目前主流的就两个方向一个是在产的型号一个是早期型号。早期型号的问题是部分新版本的 bqstudio 已经不再支持尤其在较新的操作系统上驱动会出各种状况。所以如果条件允许直接用当前在产的适配器省掉大量驱动折腾的时间。适配器内部做的事情其实不复杂把 USB 的数据包翻译成 SMBus 时序再把芯片返回的数据打包回 USB。它同时还给 SMBus 提供上拉所以很多时候你板子上没有上拉电阻也能勉强通信但这属于侥幸正式调试还是建议板子上带上拉。选适配器的时候要关注支持的协议。SMBus 和 I2C 是最常见的HDQ 是早期单线协议只有部分老芯片用。如果你手上的芯片是 SMBus 接口的那基本随便一个适配器都行如果是 HDQ 的就得确认适配器支持。另外还要注意适配器的供电方式有的是从目标板取电有的是自带供电这个会影响你在目标板没上电时能不能做某些操作。适配器类型支持协议常见问题适用场景早期 USB 适配器SMBus / I2C / HDQ新系统驱动难装新版软件可能不支持老项目、老芯片维护在产 USB 适配器SMBus / I2C / HDQ基本无注意固件版本常规调试、新品开发板载 MCU 模拟视实现而定时序不稳容易丢包产线集成、自研工装注意不要用普通的 USB 转 I2C 模块去替代专用适配器。SMBus 的时序要求和普通 I2C 有差别超时、时钟拉伸这些细节处理不好读参数时会莫名丢字节排查起来非常痛苦。1.3 软件版本和芯片型号的匹配问题bqstudio 的版本更新挺频繁每个版本支持的芯片列表和默认参数模板都不一样。我遇到过一次很典型的情况用比较老的版本去连一颗新出的芯片软件能识别到设备但 Data Flash 面板一片空白读不出参数。换到新版本之后参数列表立刻就出来了。原因是新芯片的 Data Flash 映射在软件里是靠一个描述文件定义的老版本软件里压根没有这颗芯片的定义。所以选版本的逻辑是先确定芯片型号再去软件的支持列表里确认这个型号在哪个版本开始被支持。如果你做的是量产维护建议把某个验证过的版本固定下来不要每次都追最新。因为新版本有时候会调整参数的默认值或者单位换算方式你之前导出的 Golden Image 在新版本里打开可能会提示某些字段不匹配。还有一点是关于芯片固件版本。同一颗芯片可能有不同的固件 revisionData Flash 的某些参数地址会随固件变化。bqstudio 在读参数时会先读固件版本然后加载对应的映射。如果你发现参数读出来是乱的先看 Firmware Version 这一栏再对照手册确认这个版本的参数定义。软硬件版本对不上是新手最容易卡住的地方之一。2. 安装与首次连接的完整流程2.1 安装包获取与安装顺序安装包从官方渠道拿别去第三方站点下版本混杂而且可能被改过。安装之前先确认系统的运行库环境这类工具通常依赖 .NET 运行库缺少对应版本会在启动时报错。安装顺序上有讲究先装运行库再装 bqstudio 本体最后插适配器让它自动装驱动。如果顺序反了有时候驱动会绑定到不存在的设备实例上后面再插就不认了。安装过程中有一步容易被忽略就是安装路径里的中文和空格。有些版本的软件对路径比较敏感路径里带中文可能导致参数文件加载失败表现为界面能打开但某些面板是灰的。稳妥的做法是全部装在默认路径下别去自定义到桌面或者带中文的目录。安装完成后先别急着连板子单独打开一次软件看看能不能正常启动、能不能切到各个面板。这一步是为了排除软件本身的问题把软件问题和硬件问题分开后面排查能省一半时间。2.2 驱动与设备识别适配器插上之后去设备管理器里看有没有出现对应的设备。在产适配器一般是 HID 类设备不需要额外装驱动插上就能看到。如果显示成带黄色感叹号的未知设备说明驱动没对上这时候手动指定驱动目录安装。早期适配器麻烦一些可能要装专门的驱动包而且在新系统上未必有签名需要处理驱动签名的问题。判断适配器是否工作正常有个简单办法在 bqstudio 里看连接状态图标。软件启动后会去轮询适配器如果适配器正常但没接目标板状态会显示适配器已连接、目标设备未找到。如果连适配器都显示未连接那就是 USB 或者驱动层面的问题跟目标板无关。把这个层级分清楚排查方向就不会乱。提示如果系统里同时装过多个版本的驱动可能会出现适配器被识别成另一个设备的情况。这时候卸载所有相关驱动重新插拔一次让系统重新枚举通常能解决。2.3 首次上电识别芯片目标板上电的顺序也有讲究。一般建议先给适配器上电、软件开着再给目标板上电。原因是软件在启动时和连接时会去扫 SMBus 地址如果目标板还没上电扫描会找不到设备。有些芯片在上电瞬间会有一段初始化时间这段时间内通信可能不响应所以上电后等个一两秒再点连接。连接上之后软件会自动识别芯片型号。识别的依据是芯片的 Device Type 寄存器读出来的值和软件内置的型号表做匹配。如果匹配成功界面顶部会显示芯片型号和固件版本Data Flash 面板会加载对应的参数列表。如果匹配失败软件会提示未知设备但通常还是允许你手动选一个型号继续这种方式在读参数时可能地址对不上只适合应急。首次连上之后第一件事不是改参数是先把整份 Data Flash 读出来备份。点一下刷新或者读取把当前所有参数导出成一个文件存好。这一步是保命操作后面不管怎么改改坏了都能从这份原始备份恢复。我见过太多人手一抖把某个关键参数改错又没有备份最后只能找原厂要默认参数文件。3. 界面功能拆解与参数读写3.1 主要功能面板怎么用bqstudio 的面板挺多但常用的就那么几个。Dashboard 是仪表盘显示电压、电流、温度、SOC、剩余容量这些实时值用来快速判断芯片是不是在正常工作。Registers 面板显示所有寄存器的当前值可以手动刷新。Data Flash 面板是参数配置的主战场所有需要长期保存的配置都在这里。Commands 面板用来发子命令比如启动学习、复位、进入睡眠。Calibration 面板做校准。Golden Image 面板负责生成和导出。新手常犯的错是把 Dashboard 上的实时值和 Data Flash 里的配置值搞混。Dashboard 显示的是芯片运行时计算出来的结果你改 Data Flash 不会立刻反映到 Dashboard 上需要复位或者重新初始化。反过来Dashboard 上看到的 SOC 是芯片根据当前参数算出来的参数不对这个数就没意义。理解这一点调试的时候就不会被为什么改了没反应困扰。3.2 Data Flash 的读写、备份与导入Data Flash 是芯片里的一块非易失存储掉电不丢芯片每次上电会从这里加载配置。bqstudio 把这块区域按参数名做了映射你能看到 Design Capacity、Design Voltage、Taper Current、Terminate Voltage、QMAX、Ra Table 这些关键项。改参数的方式有两种直接在表格里双击修改或者从文件导入一整份配置。量产场景下用后者开发阶段用前者逐项调。修改参数时要注意单位。同一类参数在不同芯片上的单位可能不一样比如容量有的是 mAh 有的是 cWh电流有的是 mA 有的是 10mW。界面上一般会带单位标注但有些版本不显示需要你对照手册确认。我踩过的坑是把设计容量按 mAh 填进了一个按 cWh 计算的芯片结果 SOC 直接乱套。改任何参数之前先确认单位和取值范围。改完参数之后要点 Write 才能真正写进去只改表格不点写入参数还停留在软件里。写入完成后建议读回来核对一遍确认写进去的值和你想写的一致。有些参数写入后会触发芯片的重新初始化表现为通信短暂中断这是正常现象等几秒再操作。注意Ra Table 这类阻抗表参数在没做学习循环之前不要手动乱填。它不是随便填个值就能用的必须由学习循环根据实际电池特性生成手填的值会导致 SOC 计算严重偏离。3.3 寄存器与 Commands 面板Registers 面板适合做故障定位。当电池报出来的数据不对劲时去 Registers 面板逐项看重点看状态寄存器里的各个标志位。比如电压校准有效位、QMAX 更新使能位、阻抗更新禁止位这几个它们的组合能告诉你芯片当前处于什么状态、学习循环有没有真正启动。这些标志位的含义在每个芯片手册里都有说明对着看就行。Commands 面板用来发子命令。子命令是通过写一个特定的命令码到特定寄存器来触发的触发后芯片会执行一段内部逻辑。最常用的两个一个是使能电量计算法的命令通常在配置校准完成、准备开始学习之前发另一个是复位命令用来让芯片重新加载配置。发命令之后要观察状态位的变化确认命令真的生效了不能发完就不管。命令用途触发时机观察点使能电量计算法校准完成、准备学习前对应使能标志位置起复位参数写入后、状态异常时通信短暂中断后恢复进入睡眠低功耗测试电流明显下降恢复出厂参数调乱后各项参数回到默认发命令前建议先把当前状态截图或者记录下来发完之后对比这样能清楚看到命令带来的变化。我有一次连续发了两次复位中间没等状态稳定结果参数加载了一半就去做校准数据全错白忙一下午。4. 校准后面所有工作的地基4.1 电压校准怎么做才准电压校准是三项校准里最关键的一项也是最容易做歪的一项。原理很简单芯片测到的电芯电压经过内部分压之后变成一个 ADC 读数校准就是告诉芯片现在实际电压是多少让它把读数映射到真实值。操作上先用外部高精度万用表量出电芯两端的真实电压然后在 bqstudio 的校准界面填入这个值点校准。芯片会把当前的 ADC 读数和这个真实值绑定后续测量就按这个基准换算。听起来简单实际操作有两个坑。第一个是量电压的位置。你要量的必须是芯片采样引脚对应的那个节点而不是电池包输出端。这两个地方之间可能有保护管、可能有走线压降量错地方校准出来就偏。第二个是校准点的选择。单点校准只在校准点附近准如果电池工作电压范围很宽最好在两个点分别校准或者至少选一个接近实际工作电压的点来校。很多人习惯在高电压满充状态校但实际放电大部分时间在中段结果中段偏低。校准前要保证电池处于稳定状态没有大电流在流动。充电或者放电时导线压降会让采样点的电压和电池真实电压对不上这时候校出来的值是错的。稳妥做法是静置一段时间等电压稳定了再校。4.2 电流校准的三种偏移量电流校准比电压复杂因为它涉及好几个偏移量。常见的有电流采样偏移、板级偏移和库仑计偏移这几类。逻辑上是这样的即使没有电流流过采样电路也会因为运放失调、ADC 零点漂移产生一个小的假读数这个假读数就是偏移量。库仑计偏移是在库仑计层面修正这个零点板级偏移是在整个采样通路层面修正电流采样偏移更靠近前端。校准的顺序是先做零点偏移再做增益。零点校正时需要保证电流真正为零也就是电池既不充电也不放电负载断开。这时候读到的电流值应该接近零如果有明显的正偏或者负偏就做一次偏移校正把它拉到零。增益校正是用已知大小的电流通过采样电阻比较芯片读数和实际值算出增益系数。提示电流校准对硬件最敏感。采样电阻的精度、运放的失调电压、PCB 的走线对称性都会影响结果。如果校准后在大电流下依然偏差明显多半是采样电阻选型或者布局的问题软件救不回来。实测经验是小电流段的偏差通常比大电流段大因为偏移量在小信号下占的比例更高。如果你做的应用对轻载电流测量精度要求高校准的时候要特别关注低电流点的表现必要时多点校准。校准完成后用不同大小的电流各测一组把误差范围记下来后面调参数的时候心里有数。4.3 温度校准与内部温度传感器温度校准相对简单但也不能跳过。芯片一般有两个温度来源一个是内部温度传感器测的是芯片自身温度另一个是外部 NTC测的是电芯温度。内部传感器主要用于芯片自身的温度补偿外部 NTC 才是用来做温度保护和学习循环判断的。校准外部 NTC 的时候要让电芯和 NTC 都处于已知温度环境里。最方便的是室温静置量出实际温度填进去校准。如果你想在工作温度范围内都准可以用温箱取高低两个温度点分别校。要注意 NTC 的 B 值和分压电阻的匹配如果硬件上分压电阻选得不对温度曲线会整体偏移多点校准也救不回来。温度校准做完之后去看 Dashboard 上的温度读数和实际温度对比。偏差在合理范围内就算通过。温度这个量在学习循环里是参与判定的如果温度报错了学习循环可能因为温度不满足条件而中断所以别小看它。校准项校准前提常见问题影响电压静置、外部高精度表实测量错节点、校准点选取不当SOC 和电压保护判据电流零点电流真为零负载未断开、走线压降小电流精度、库仑计累积电流增益已知电流源采样电阻精度不足大电流精度温度已知环境温度分压电阻不匹配温度保护和算法判定校准这步做完建议把整个 Data Flash 再备份一次标注成已校准版本。因为后面学习循环会改 QMAX 和 Ra Table如果学不好要重来从已校准版本恢复比从头来快得多。5. 电量计学习循环实战5.1 学习循环的前置条件学习循环是电量计精度的核心它的作用是通过一次完整的充放电让芯片认识你实际用的这块电芯的真实容量和内阻特性。没做过学习的电量计报出来的 SOC 只能说是大概做过学习之后才能达到可用精度。但学习循环不是随便跑一下就行它有前置条件条件不满足跑多少次都是白跑。前置条件主要是这几项参数配置要正确设计容量、设计电压、终止电压、充电终止电流这些必须和实际电池匹配校准必须完成电压电流温度都要校过芯片要处于正常模式通过发命令使能电量计算法电池要处于未充满的状态因为学习循环的第一步是充电到满如果一开始就是满的第一步没法执行。另外电池的温度要在允许范围内太冷太热芯片都会拒绝进入学习状态。配置参数这块我特别想说一句设计容量的值不能随便填。它应该是电芯的实际容量通常取标称容量。填大了芯片会按大的容量去算学习出来的 QMAX 也会偏大填小了会限制 QMAX 的上限。如果你不确定实际容量可以先按电芯规格书的标称值填学习循环过程中 QMAX 会自己调整。5.2 完整学习流程和 QMAX/Ra 更新完整的学习循环大致是这样走的。先让电池处于部分放电状态然后发命令使能电量计算法。接着开始充电充到充电终止条件满足也就是电流降到终止电流以下。充完之后静置一段时间让电池电压稳定。然后开始放电放到终止电压。再静置一段时间。最后再充满一次让芯片完成阻抗表的更新。静置这一步很多人会偷懒省掉觉得放完电马上充电也一样。实际上静置是为了让电芯的松弛效应结束电压真正稳定下来芯片才能准确判断电池状态。静置时间不够芯片算出来的 QMAX 和 Ra 会偏。常见的做法是放电后静置几个小时具体时长可以看手册推荐的参考值。整个过程中芯片内部会更新两个关键数据QMAX 是电池的最大化学容量Ra Table 是不同 SOC 点上的内阻。这两个数据更新完成并且状态寄存器显示更新完成标志才算学习成功。更新是有门槛的芯片会判断当前条件是否满足更新条件比如电压是否校准有效、电流是否在允许范围、温度是否合适。注意学习循环期间不要中途断开通信或者断电。芯片在更新 Data Flash 的时候掉电可能导致 Ra Table 写了一半这块数据就损坏了只能重新学习。5.3 学习结果判定与失败排查判断学习成功与否看状态寄存器里的更新状态字段。这个字段的值从初始值开始随着 QMAX 和 Ra 的更新逐步变化当它变成指示全部更新完成的值时说明学习成功。具体数值不同芯片有差异以手册为准。我一般会把这个字段和学习前后的 QMAX 值都记下来QMAX 变化合理、状态字段到终值两个条件都满足才认为是成功了。失败的情况很常见我第一次做学习就失败了三次。总结下来失败原因就那么几类。第一类是参数不匹配设计容量填得不合适导致 QMAX 更新被拒绝。第二类是校准没做全芯片检测到电压校准标志没置起直接不进入更新流程。第三类是静置时间不够芯片还没识别到电压稳定就进入下一步。第四类是充放电终止条件没真正满足比如充电电流没降到终止阈值以下就断了芯片认为没充满。排查思路上先看状态位确认芯片当前认不认为自己在学习状态再看各项前置标志位逐项排除。如果状态位不对回到第 4 章的校准重新确认如果状态位对但更新没发生重点查充放电终止条件和静置时间。我建议在学习期间用日志或者定时截图把关键寄存器的变化记下来失败的时候往回翻比凭记忆靠谱。失败现象可能原因排查动作学习不启动参数不匹配、未使能算法核对设计参数、确认使能标志QMAX 不更新终止条件未满足、校准缺失检查充电终止电流、电压校准标志Ra 不更新静置时间不足、温度超范围延长静置、确认温度在范围内更新后 SOC 仍跳变电芯一致性差、参数设定偏差换电芯复测、复核容量和终止电压6. 配置导出与量产落地6.1 Golden Image 生成学习成功之后芯片里的 Data Flash 就是一块调好的配置这份配置被称为 Golden Image金标镜像。生成的方式是在 Golden Image 面板里先把完整 Data Flash 读一遍然后导出。导出的文件包含所有配置参数和 Ra Table相当于这块电池的配方。生成 Golden Image 的时候有几点要确认。第一读取必须是完整读取不能只读一部分有些版本的面板会有读取全部的选项用它。第二读完之后核对关键的 QMAX 和 Ra Table 是不是学习后的值别把没学习的版本导出去了。第三导出之后把文件命名规范好带上芯片型号、固件版本、电池型号、日期方便后续追溯。提示Golden Image 导出的文件在不同 bqstudio 版本之间可能不完全兼容。产线用的软件版本要和研发导出时保持一致否则烧录时可能报字段不匹配。6.2 各种烧录文件格式的区别导出的时候会看到好几种格式各有各的用途。常见的有用于编程器的记录格式、软件专用的烧录格式、以及可以重新导入的参数文件。记录格式是给产线编程器用的编程器直接把这个文件按地址写进芯片的存储区。软件专用格式是给 bqstudio 自己用的可以在软件里直接执行烧录动作。参数文件则是可以重新导入软件、在界面上查看和修改的格式。选哪种取决于你的产线怎么布置。如果产线用的是通用编程器那就用记录格式如果产线就是用 bqstudio 加适配器直接烧那就用软件专用格式方便。参数文件主要用于研发阶段备份和传递不适合直接上产线因为它依赖软件解析。文件格式类型主要用途使用场景注意事项记录格式编程器直接烧录产线批量需确认地址范围软件专用格式软件内烧录小批量、打样依赖软件版本参数文件备份、导入查看研发不适合直接量产不管用哪种格式烧录完都要做校验。烧录器一般有校验功能读回来和源文件比对。软件烧录的话烧完之后手动读一遍关键参数核对。这一步不能省产线上一旦出现批量烧错返工成本很高。6.3 量产烧录与产线注意点从研发转到产线有几个点要提前想清楚。第一是芯片的初始状态。产线上来的芯片可能是全新的也可能是拆机复用的全新芯片的 Data Flash 是默认值直接烧 Golden Image 覆盖就行复用芯片可能带着旧配置烧之前最好先做一次擦除或者恢复默认避免残留参数影响。第二是烧录时的供电状态芯片必须在正常供电下才能接受烧录供电不足会写失败。第三是烧录后的校验和功能测试。校验刚说过功能测试是指让芯片实际跑一下读一读电压电流确认它工作正常。有些产线只做烧录校验不做功能测试结果板子装到电池包里才发现芯片根本没启动返工更麻烦。建议在产线上加一个简单的功能测试环节读几个寄存器确认芯片活着。第四是版本管理。Golden Image 更新了要确保产线拿到的是最新版本。我见过产线用着几个月前的旧文件导致一批产品参数不一致查了很久才发现是文件版本的问题。文件最好放在统一的地方管理带上版本号和生效日期。7. 常见问题与排查实录7.1 连不上、掉线、识别不到的排查连接问题是最高频的。排查顺序建议从外到内先看适配器在系统里有没有被识别再看软件里适配器状态再看目标板供电最后看 SMBus 连线。很多人一上来就怀疑软件其实大部分问题在硬件层。适配器灯不亮、USB 线是坏的、SMBus 线序接反这些都比软件 bug 常见。掉线问题通常是接触不良或者供电不稳。SMBus 走线长、没有屏蔽、旁边有强干扰源都会导致通信偶发失败。表现为读参数读到一半卡住或者参数值出现明显的异常跳变。解决思路是缩短连线、加固地线、必要时降低通信速率。如果板子上 SMBus 和功率回路走在一起尽量在布线上分开。注意目标板由充电器或者大功率源供电时地线上的噪声容易干扰 SMBus。调试时如果要长时间通信建议用独立稳压源给板子供电排除干扰。读到的数据全是 0xFF 或者全 0x00一般是通信根本没建立不是参数问题。这种情况别去分析数据含义直接回头查连接。如果偶尔能读到正确值偶尔读到错值那是通信质量问题按上面说的排查干扰和接触。7.2 参数写入不生效参数改了但行为没变这个问题的原因有几层。第一层是写入动作没成功。改完表格要点写入写入后会有完成提示有些版本提示很轻容易被忽略。写入之后读回来核对一下这是最直接的确认方式。第二层是写进去了但没生效因为有些参数需要复位或者重新初始化才被加载。这种参数改完之后要发复位命令芯片重新读 Data Flash 才会应用新值。第三层是参数有互相约束。比如设计容量和终止电压之间有逻辑关系你只改了一个另一个不满足约束芯片可能拒绝应用或者自动修正。这种情况需要理解参数之间的关系不能孤立地改。第四层是参数被芯片固件锁定有些保护类参数在特定条件下不允许修改或者需要先解锁。遇到写不进去的先看手册里这个参数有没有写保护条件。7.3 学习循环反复失败学习循环失败几次是正常的反复失败就要系统排查了。我遇到过一种很隐蔽的情况电池包里有保护板放电到终止电压时保护板先动作切断了输出芯片检测到的电流直接变成零它以为放电结束条件满足了但实际上电芯电压还没到终止电压导致学习数据不可信。解决办法是把放电截止点设在保护板动作之前留出余量。另一种情况是电芯一致性差。多串电池里如果有一节电芯容量明显偏小它会先到终止电压整包的放电就被这一节限制住了学习出来的 QMAX 会偏小。这种情况软件层面解决不了得换电芯或者做分选。还有一种情况是环境温度波动大学习过程中温度超出允许范围更新被中断这种要给电池一个稳定的温度环境。反复失败的时候建议把每次学习的完整过程记录下来参数配置、充放电曲线、关键状态寄存器的变化、失败时的现象。对比几次记录往往能看出规律。比一次一次盲试高效得多。7.4 一份踩坑清单把上面散落的经验收拢一下列成一份清单方便开工前扫一眼。开工第一件事永远是备份原始 Data Flash没有备份不动手。改任何参数前确认单位容量和电流的单位最容易搞错。校准必须在静置、无电流状态下做量电压要量芯片采样节点。学习循环之前确认设计容量和实际电芯匹配别用拍脑袋的值。学习期间保证供电和通信稳定更新 Data Flash 时断电会损坏数据。Golden Image 导出后核对 QMAX 和 Ra 是否为学习后的值。产线文件做版本管理软件版本要和研发保持一致。读数据前先确认通信质量全 0xFF 和全 0x00 不代表参数含义。最后再分享一个我自己常用的小习惯每次调试之前把适配器、目标板、供电、连接线这四样拍一张照片存档并且记录下软件版本和芯片固件版本。看起来是件小事但当你隔了一个月再回来处理同一块板子或者要把项目交接给同事的时候这几张照片和版本记录能省掉大量当时是怎么连的的回忆时间。我现在的做法是每块调试板建一个文件夹里面放连接照片、Data Flash 备份、学习过程记录、最终的 Golden Image一个项目一套从来没出过找不着文件的情况。这套习惯比任何工具技巧都更值钱。
返回列表