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.

[参考译文] BQ35100:SOH 始终为0%

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1470048/bq35100-soh-is-always-0

器件型号:BQ35100

工具与软件:

您好!  

我已在 SOH 模式下对电量监测计进行编程。 它的工作非常出色、可根据相应命令的要求提供电压、温度、设计容量和 SOH。 但是、出于某种原因、我不知道它开始提供非常低的 SOH 值、而每次我运行它时、电压是2.7V (我使用的是 CR2450)、直到现在、对于每个电池、我都得到0%。 我尝试通过使用0x0041复位电量监测计来解决该问题、并在配置后将其置于 SEALED 模式(因此 CONTROL_STATUS 寄存器从0x4081变为0x6081)。 调试不给出任何结果、因为其他3个参数给出了正确的值。 我已经尝试将 Operation Config A 放入0x85和0xA5中、我得到了相同的设置。 我还没有执行校准、因为在没有校准的情况下它可以工作。

那么、电量监测计会发生什么情况而无法正常工作?

我读取所有参数的函数用 C 表示:

void gau_readings_get(uint16_t u16_voltage, uint8_t u8_SOH, uint16_t u16_temperature, uint16_t u16_capacity)
{
  u16_voltage = gau_volt_read();
  u16_temperature = gau_temp_read();
  u16_capacity = gau_cap_read();
  u8_SOH = gau_SOH_read();
  SYSTICK_DelayMs(1000);
}

函数 gau_soh_read()如下:

static uint8_t gau_SOH_read(void)
{
/*Reading variables*/
  uint8_t u8_SOH[1];

  GAUGE_EN_Clear();
  SYSTICK_DelayMs(10);
  GAUGE_EN_Set();
  SYSTICK_DelayMs(1000);

  SERCOM4_I2C_WriteRead((uint16_t) u8SlaveAddr,
u8SOHAddr, (uint32_t) 1,
&u8_SOH[0], (uint32_t) 1);

  while(SERCOM4_I2C_IsBusy());


  return u8_SOH[0];
}

提前感谢。

卡洛斯

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

    卡洛斯、您好!

    初始配置后、此问题开始出现多长时间?

    此致、

    Adrian

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

    您好、Adrian、

    由于我需要在调试模式下看到它、因此我每次运行它时都会设置电量监测计。 之后、它会显示一个值、通常接近100。 我退出调试模式并再次运行它、此时该值已减小8-10个点。 我执行该操作多次、最后我达到0。 我的假设是、调试模式就像重新编译代码、电量监测计的 DF 中的最大值最初应为100、现在取为"100"。 如果在退出调试模式之前该值为98、那么它将采取98、就像它为100一样、这样会降低该值。 不过、我不明白这是不是原因、电压在几乎保持不变的情况下下降得这么快。  

    此外、我一直在更换电池以查看发生了什么、我获得了什么值、最终、其中四个电池几乎充满电、其值为0。 但我决定进行重置、这并没有解决我的问题、因此我不知道要做什么才能大幅更改值。  

    我已经回答了您的问题吗?

    此致、

    卡洛斯

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

    卡洛斯、您好!

    是的、谢谢您的深入阐述。 让我和我的团队中的其他成员谈谈可能导致这种情况的原因。

    此致、

    Adrian

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

    您好、Adrian、

    谢谢。 当您知道某件事时、请告诉我。  

    此致、

    卡洛斯