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.

[参考译文] BQ27441-G1:电量监测计是否损坏?

Guru**** 2553450 points
Other Parts Discussed in Thread: BQ27441-G1, BQSTUDIO

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/744937/bq27441-g1-can-fuel-gauges-be-corrupted

器件型号:BQ27441-G1
主题中讨论的其他器件: BQSTUDIO

您好!

我最初使用 Arduino 上的 SparkFun 电池保姆对该部件进行了评估、 后来我将 BQ27441-G1设计为新产品、它一直运行得很好。  直到我在设计中添加了 I2C EEPROM 并实施/测试了相关代码。  我的电量监测计现在返回的值不正确、如下所示...

Voutel=8mV、SoC=100%C、电流=0mA、fullcap=513mAh、容量=1mAh、 功率= 0mW、运行状况= 90%

显然、它失去了测量电池电位的能力、因此也失去了电流。  我仍然可以获得数据这一事实表明、通信是正常的。

是否可能存在会导致此错误的 I2C 违规或写入错误、从而损坏内部寄存器?  通电和断电(取出锂离子电池)无效。

如果是、是否有标准函数可以将寄存器恢复为默认值?

欢迎提出任何建议。

感谢阅读- AJ

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

    你好、AJ

    如果移除 i2c EEPROM、是否能够从监测计中读取正确的数据? EEPROM 器件的地址是什么?

    您可能会遇到总线冲突。 将监测计隔离为通信线路上的唯一器件、然后连接到 bqstudio 以查看您是否能够正确通信。

    谢谢

    Onyx

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

    感谢您的回复 Onyx。

    我尚未将 EEPROM 从板上提出,因为我已经确定了总线和通信的范围,它们看起来是正常工作的。 我在同一 I2C 总线上还有一个加速计、该加速计仍然起作用、EEPROM (地址0x50)功能正常。 我的配置单元对独立代码执行了一些非常简单的写入/读取、没有问题。

    如果我运行的代码的早期版本不包含任何 EEPROM 函数,则 FG 仍然返回错误值,因此它似乎已经记住了一些内容,因为我无法想象它已损坏。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您能否更换 IC 并查看您是否遇到了相同的问题?
    谢谢
    Onyx
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Onyx、

    由于芯片的物理格式为 VSON、因此无法用手工替换。  我还有几个板做了同样的事情、因此它不是一个隔离式故障。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的、在这种情况下、您能否隔离通信线路并将监测计连接到 bqstudio、以便记录数据并发送 bqstudio 屏幕的快照?

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

    您好、Onyx、

    该库为我们提供了以下值...

    opConfig()= 0x25D8

    0x2000 1 BIE

    0x0000 0 BI_pu_EN

    0x0000 0 GPIOPOL

    0x0000 0睡眠

    0x0010 1 RMFCC

    0x0000 0 BATLOWEN

    0x0000 0温度

     

    flags()= 0x0088

    0x0000 0 OT

    0x0000 0 UT

    0x0000 0 FC

    0x0000 0通道

    0x0080 1 OCVTAKEN

    0x0000 0 ITPOR      监测计复位或功率损耗。

    0x0000 0 CFGUPMODE

    0x0008 1 BAT_DET

    0x0000 0 SOC1

    0x0000 0 SOCF

    0x0000 0 DSG

     

    STATUS()= 0x0008

    0x0000 0 SHUTDOWNEN

    0x0000 0 WDRESET

    0x0000 0 SS

    0x0000 0 CALMODE

    0x0000 0 CCA

    0x0000 0 BCA

    0x0000 0 Qmax_up

    0x0000 0 RES_UP

    0x0000 0 INITCOMP

    0x0000 0休眠

    0x0000 0睡眠

    0x0008 1 LDMD

    0x0000 0 RUP_DIS

    0x0000 0 VOK

    正如我之前提到的、我们确实得到了阀值、但它们不正确。

    谢谢 Andy