This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] BQ79606EVM-897:电池平衡故障排除

Guru**** 2498815 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1466066/bq79606evm-897-cell-balancing-troubleshooting

器件型号:BQ79606EVM-897

工具与软件:

您好!

  我一直在使用 BQ79606评估套件来为6节串联电池包实现电池平衡器。 一切都很顺利、除了我似乎在努力让 CB_DONE_THRESH 正常工作。 至于电芯 ADC、平衡计时器、时序控制等、其他一切似乎都能如数据表中所述正常工作。 但是、在我点击 CB_DONE_THRESH 时、我很难让单个电池停止平衡。 我已经确保设置该寄存器上的使能位以及此处所述的有效电压。

 

  我将使用类似如下的公式设置该值:CB_DONE_THRESHOLD = 0x40 +(byte)((DesiredCBDoneVoltage - 2.8f)/0.025f);其中 ox40设置了 CB_DONE 比较器的使能位、电压相关位以高于2.8V 的增量计算、如上图所示。 我觉得我已经按照了数据表中的所有指导进行了操作、但在电池达到阈值时、我无法让电池停止平衡。 均衡仅在  CB_CELLx_CTRL 计时器值到期后终止。
  非常感谢对这一问题的任何了解。 是否需要设置其他寄存器才能使此功能正常工作? 写入相关寄存器的顺序是否重要? 就像我始终在启用电芯均衡之前、但在设置 CB 计时器和占空比/时序控制之后设置 CB_DONE_THRESH 一样。 有关启用平衡时我写入的寄存器、请参阅代码示例。 当达到 CB_DONE_THRESH 时、此序列似乎实际上不会中止单个电芯平衡、仅在计时器到期时。 如果无法正常工作、我将考虑改用 UV 阈值。 任何帮助都很好。
谢谢!
James
启用电池平衡的示例代码:
 //配置电池 平衡
 WriteReg (0、CB_CONFIG、0x0E1、FRMWRT_ALL_NR); // 10分钟占空比、 故障停止、赔率然后偶数
 //配置电池平衡 计时器
 WriteReg (0、CB_CELL1_CTRL、0x3C、1、FRMWRT_ALL_NR); // 60分钟平衡计时器
 WriteReg (0、CB_CELL2_CTRL、0x3C、1、FRMWRT_ALL_NR); // 60分钟平衡计时器
 WriteReg (0、CB_CELL3_CTRL、0x3C、1、FRMWRT_ALL_NR); // 60分钟平衡计时器
 WriteReg (0、CB_CELL4_CTRL、0x3C、1、FRMWRT_ALL_NR); // 60分钟平衡计时器
 WriteReg (0、CB_CELL5_CTRL、0x3C、1、FRMWRT_ALL_NR); // 60分钟平衡计时器
 WriteReg (0、CB_CELL6_CTRL、0x3C、1、FRMWRT_ALL_NR); // 60分钟平衡计时器
 WriteReg (0、CB_DONE_THRESHOLD、CB_DONE_THRESHOLD、1、FRMWRT_ALL_NR);      // 0x40表示使能+(Vdone - 2.8)/0.025V 表示4.05V = 50 = 0x32、因此 SUM = 0x72
 WriteReg (0、CONTROL2、0x33、1、FRMWRT_ALL_NR);      //BAL_GO = 1、CELL_ADC_GO = 1、TSREF、AUX_ADC_GO = 1
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 James:

    您是否可以通过 DIAG_CTRL1[OVUV_MODE]运行 VCBDONE 比较器并监测 SYS_FAULT3[CB_VDONE[以确认 VCBDONE 正确跳闸?  

    此致、

    David Ray

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您的建议。 为了清楚起见、这是在没有将电池连接到平衡器的情况下完成的吗? 如果我正确理解了数据表、这是内置自检、将生成基准电压来定期跳闸 CB_DONE 比较器、我将查找 要开启的 SYS_FAULT3[CB_VDONE]位。 目前、我的评估套件由电池本身供电。 在本次测试中、我将使用24V 工作台电源为其供电。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 James:

    电池或工作台电源都可以工作。  

    此致、

    David Ray

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    因此、我认为这一定是软件错误 当我将平衡器评估套件连接到 battery management studio 并通过 GUI 手动启动非常类似的平衡过程时、它会起作用。 我可以让电芯在正确的 CB_DONE_THRESH 电压下终止平衡。 我的软件中的某些内容肯定不同。 我想知道、它与我在平衡例程设置中设置控制2的方式或者我在启动时在代码中写入的其他寄存器的方式是否相关。 当我从 Battery Management Studio 中的 Cell Balancing 选项卡进行写入时、我看不到 CONTROL2寄存器的设置(即使我知道它必须至少设置 BAL_GO 位、它也始终显示为0x0)、因此代码中的 CONTROL2值是我将设置为0x33的主要怀疑对象。 我想知道是否这是我的器件上的错误、我只应该设置 BAL_GO 位? 下面是在 CB_DONE_THRESH 工作时电池平衡屏幕的外观。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 James:

    我建议在设置寄存器后读取每个寄存器、以确保将正确的信息写入寄存器。 如果出现 CONTROL2问题、则可以尝试发送两个单独的写入命令、以确保在发送 BAL_GO 之前先发送正确的信息。

    此致、

    David Ray

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    于是、我更改了一些内容、以便与之前帖子中 Battery Manager Studio 中使用的配置完全一致。 我的软件现在的行为与 Studio GUI 平衡的行为相同。 我现在意识到、即使在 Studio GUI 中也会得到很差的结果。 出于某种原因、我可以读取"Monitoring"选项卡(电池1-6) 上的所有电芯电压、但当我尝试使用之前帖子中的"Balancing"选项卡配置启动平衡时、电池3-6会在其第一个占空比中立即终止平衡、即使 CB_DONE_THRESHOLD 远低于电池电压也是如此。 不过、它将正确地对电芯1和2进行平衡、并在达到 CB_DONE_THRESHOLD 电压时进行端接。 我的 GUI 设置中是否遗漏了全部6节电池的某些信息来进行适当平衡?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 James:

    我建议运行 VCBDONE BIST 以确认电芯3-6上的 IC 未损坏。

    此致、

    David Ray