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.

[参考译文] BQ76952:主机电芯平衡故障

Guru**** 2455560 points


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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1396786/bq76952-host-cell-balancing-failure

器件型号:BQ76952

工具与软件:

请任何专家向我指出正确的方向。 我 正在测试我的设计以确定

是否主机可以在正常模式下启动平衡。  我的器件处于正常模式、DSG (放电)

关断以确保 在此测试阶段不会消耗外部电流。 在调试模式下、

我可以读取  TS1和 TS3的温度、它们都很好。 但是、平衡不起作用

 尽管均衡 CB 位在警报状态下置位、但均衡计时器不会递增。

 

我在发送前后捕获了警报状态寄存器值的变化

启动平衡的命令如下所示:

(1763)二进制为(11011100011)

(1024)二进制数是(10000000000)

(1771)二进制表示为(11011101011)

之后

(1643)、以二进制表示是(11001101011)

(5871)二进制表示为(1011011011111)

(5743)、以二进制表示为(1011001101111)

警报5871特别有趣:它们是否会阻碍平衡。 电池组电压低于 SHUTDOWN。  

  • 位15:0
  • 位14:1 - 安全状态 A 位被置位(SSA)
  • 位13:0
  • 位12:1 - 触发安全警报(MSK_SFALERT)
  • 位11:1 - 触发永久失效警报(MSK_PFALERT)
  • 位10:0
  • 位9:1 - 初始化完成(INITCOMP)
  • 位8:1 - 可能是完全扫描完成(FULLSCAN)
  • 位7:0
  • 位6:1 - CHG FET 关断(XCHG)
  • 位5:1 - DSG FET 关断(XDSG)
  • 位4:1 - 电池组电压低于关断模式(SHUTV)
  • 位3:1 - 驱动 FUSE 引脚(FUSE)
  • 位2:1 - 电芯平衡运行(CB)
  • 位1:1 - 电压 ADC 扫描完成(ADSCAN)
  • 位0:1 - 器件从睡眠模式唤醒(WAKE)  

下面是我的平衡电路、是否有任何潜在的错误。

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

    您好、Frankline:

    我注意到您将电池6与电池9短接、将电池5与电池8短接。 您能解释一下为什么选择这样做吗?  

    此致、
    Alexis

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

    您好、Alexis

    它设计为支持6节或9节电池。 短路可确保 VCC15和16之间连接电芯  

    或者根据数据表选择任一配置。  跳线用于选择所需的配置、如下所示。

    目前使用6节电池。

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

    您好、Frankline:

    您能‘从您显示的"之前/之后"结果中获得的确切命令/步骤吗? 我想‘以下潜在信息:为什么寄存器在"‘之前"状态下改变2次、以及为什么在"之后"状态下多次改变。

    此致、

    Alexis

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

    Alex、您好!

    为了进行测试、我使用提供的示例代码。

    静息并配置设备后、我将执行以下操作:

    CommandSubcommands (BQ769x2_RESET);//重置 BQ769x2寄存器
    delayUS(60000);
    BQ769x2_Init ();//配置所有 BQ769x2寄存器设置
    delayUS(12000);
    CommandSubcommands (RESET_PASSQ);
    Alarm = BQ769x2_ReadAlarmStatus ();
    CommandSubcommands (sleep_disable);
    delayUS(60000 ); delayUS(60000 ); delayUS(60000 ); delayUS(60000 );
    BQ769x2_ReadAlarmStatus ();

    电感

    子命令(CB_ACTIVE_CELLS、0x0001、W2);
    子命令(CB_ACTIVE_CELLS、0x0000、R);

    while (1){

    DirectCommands (SafetyStatusA、0x00、R);
    DirectCommands (SafetyStatusB、0x00、R);
    DirectCommands (SafetyStatusC、0x00、R);
    DirectCommands (SafetyAlertA、0x00、R);
    DirectCommands (SafetyAlertB、0x00、R);
    DirectCommands (SafetyAlertC、0x00、R);

    子命令(CBSTATUS1、0x00、R);
    子命令(CBSTATUS2、0x00、R);
    子命令(CBSTATUS3、0x00、R);

    BQ769x2_ReadAllVoltages ();
    BQ769x2_ReadAlarmStatus ();
    DirectCommands (FETStatus、0x00、R);

    AlarmBits = BQ769x2_ReadAlarmStatus ();
    if (AlarmBits & 0x80){//检查 FULLSCAN 是否完整。 如果设置、则可以使用新的测量
    BQ769x2_ReadAllVoltages ();
    Pack_Current = BQ769x2_ReadCurrent ();
    temperature[0]= BQ769x2_ReadTemperature (TS1Temperature);
    temperature[1]= BQ769x2_ReadTemperature (TS3Temperature);
    DirectCommands (AlarmStatus、0x0080、W);//清除 FULLSCAN 位
    Alarm = BQ769x2_ReadAlarmStatus ();

    }

    if (AlarmBits & 0xC000){// if Safety Status 位正在 AlarmStatus 寄存器中显示
    BQ769x2_ReadSafetyStatus ();//读取 Safety Status 寄存器以查找触发了哪些保护
    if (ProtectionsTriggered & 1){
    HAL_GPIO_WritePin (B蜂 鸣器_GPIO_Port、蜂鸣器引脚、1);
    HAL_DELAY (100);
    }
    DirectCommands (AlarmStatus、0xF800、W);//清除安全状态报警位。
    CommandSubcommands (DSG_PDSG_OFF);
    Alarm = BQ769x2_ReadAlarmStatus ();
    HAL_GPIO_WritePin (B蜂 鸣器_GPIO_Port、蜂鸣器引脚、0);
    }
    设计


    if (ProtectionsTriggered & 1){
    BQ769x2_ReadSafetyStatus ();
    如果(! (ProtectionsTriggered & 1))

    //HAL_GPIO_WritePin (GPIOA、LD2_Pin、GPIO_PIN_RESET);
    }


    }//如果安全状态已清除、则关闭 LED、这意味着保护条件不再存在
    }
    }

    此致

    Franklin

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

    您好、Franklin:

    您共享的代码似乎没有问题。 我注意到了 Safety Status A 位 。 您能否检查触发了哪些保护?

    此致、
    Alexis

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

    您好、Alexis、

    感谢您的反馈。 我的错误是使用分压器电路来模拟可能会触发的电池输入

    均衡启动时的过压保护(PERMANNET FAIL)。  

    现在使用实际电池、并使用1K 电阻器将栅极电阻器(100 Ω)替换为平衡 MOSFET。 示波器已连接  

    到 VCO 显示其读取脉冲且平衡电阻器预热。 如果我正确理解、这就是平衡过程中的预期行为。

    触发的报警: WAKE、ADSCAN、CB、FUSE、SHUTV、 XDSG、FULLSCAN、INITCOMP、INITSTART

    FUSE 仍然通过 WID XDSG 置位。 是正常的行为。

    此致

    Franklin

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

    您好、Franklin:

    我很高兴这似乎有所帮助。 表12-18警报状态寄存器字段说明 BQ76952技术参考手册中、可以帮助了解所有触发的警报位意味着什么、这也可能有助于进行调试。 XDSG 可以由于各种原因(正常或不打算)触发、但是、看起来您的 SHUTV 引脚也被触发、这意味着电池组电压低于最小设定阈值。 这将导致器件进入 SHUTDOWN 模式。 如果您想了解关断模式如何工作以及如何避免关断模式的更多详细信息、此 BQ76952关断模式常见问题解答 应该很有用。

    此致、

    Alexis