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.

[参考译文] BQ27427EVM:StateOfCharge 错误()

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1215460/bq27427evm-misbehaving-stateofcharge

器件型号:BQ27427EVM
主题中讨论的其他器件:BQ27427BQSTUDIO、BQ27426

我正在评估连接到一个测试装置的 BQ27427 EVM、该测试装置用于对电池进行充电和放电。
当 Temperature()和 Voltage()命令按预期运行时, 报告的 StateOfCharge ()看起来错误:在电池充电时减小、在放电时升高 在某些时候它保持在99%或随机跳跃。
这样做的原因是什么?

通过调查,我发现 AverageCurrent ()在放电时显示一个正值,在放电时显示一个负值-这是设计上的吗? 这可能是 StateOfCharge ()错误行为的原因吗?
我对 EVM 上的接线进行了三重检查:
- BQ27427的 PACK-连接到锂聚合物电池的负极端子, PACK+连接到正极
- BQ27427的 Load+和 Charger+被连接到我们的电池测试装置的正极端子,负载-和充电器-到负
- J10连接我们的微控制器板的 I2C 接口(GND、SDA、SCL)

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

    请更改 CC Gain 参数的符号。 它必须是正的。

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

    感谢您提供的信息。 我仍在运行一个测试周期、但到目前为止它看起来确实很有希望:soc [%]现在在充电期间上升、电流为正。


    但是、我正在使用 bqStudio BQ27426G1对此进行测试(感觉遭到了黑客攻击、因为它不是我的芯片模型、但它有效)、并且此参数为 适用于 BQ27427的 TRM (SLUUCD5)中未记录

    由于我们要使用微控制器控制 bq27427、如何在固件中访问此参数? 子类 ID 和偏移是什么?
    假定此参数地址在将来不会更改(也称为"在生产中安全使用")是安全的吗?

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

    我们将发布具有 bq27427插件的 bqStudio 版本。 bq27427在同一器件上运行与 bq27426相同的固件、但使用内部检测电阻器除外、因此可以使用 bq27426插件(但我们当然会更新 bqStudio)。

    您可以通过以下过程更改 CC Gain 的符号(先决条件:解封量表:

    1.发送命令 SET_CFGUPDATE (子命令0x0013):将0x13 0x00写入 I2C 命令/寄存器0x00
    2. POLL Flags()直到 CFGUPMODE 位4被置位
    3.将0x69 0x00写入 I2C 命令/寄存器0x3E (这会选择子类校准)
    4.从寄存器0x45读取一个字节(这是 CC_GAIN 中用于在位7中保存符号的字节)
    5.从寄存器0x60读取一个字节(这是校验和)
    6.从步骤4中读取的字节翻转第7位、并将其写入寄存器0x45
    7。从步骤5中读取的字节中翻转第7位、并将其写入寄存器0x60
    8.发送命令 SOFT_RESET (子命令0x0042):将0x42 0x00写入 I2C 命令/寄存器0x00

    示例:

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

    好的、在 bqStudio 中尝试此操作是可行的! 感谢提供详细的指令和单独的 i2c 字节传输说明、它会提供很大帮助。

    由于我希望在固件中实现这一点并验证/观察 CC_GAIN 值、那么我该如何读取整个浮点值、而不仅仅是一个字节用于保存符号? 子类为0x69、但偏移量是多少? 如何解释字节以获得浮点值?

    我尝试在子类0x69、偏移量0x04处读取4个字节、并将它们解释为浮点、但结果没有意义。 我尝试反转字节顺序、但没有帮助。
    DataFlash @TRM 中没有其他(有文档记录的)四字节浮点数允许我自己计算。

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

    该电量监测计使用 Xemics 提供的非标准浮点格式。  https://www.ti.com/lit/an/slva148a/slva148a.pdf 附录 A 中记录了浮点格式转换。

    如果选择"Window"->"Preferences->Show Advanced Views"、您可以在 bqStudio 中找到所有参数的偏移信息。

    CC_GAIN 在类0x69中、块0、偏移4、4字节大端字节序中。  

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

    好的、我现在看到了。 非常感谢!