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:如何发出"New Batter"命令

Guru**** 2535750 points
Other Parts Discussed in Thread: BQ35100, BQSTUDIO

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1120881/bq35100-how-to-issue-the-new-battery-command

器件型号:BQ35100
主题中讨论的其他器件: BQSTUDIO

我有一个 BQ35100、我将在 EOS 模式下使用它。 除了启动新电池外、我还可以成功读取和配置器件。

我已在器件上强制执行 EOS 警报、并希望使用新电池(0xA613)清除并复位 BQ。 问题是、如果我发送此命令、然后读取电池警报寄存器(0x0B)、它仍然显示 EOS、并且未按预期清除。

我的当前程序:

1. GE 使能

2、等待 IntComp = 1

3.发送 新电池(0xA613)

4、读取 电池警报寄存器(0x0B)

5. GE 禁用

如果我将上述命令分开、每次手动触发一个、我就能够清除 EOS 警报。 如上所述、当我将序列放在一起时、警报不会被清除(读取0x19)。 我尝试了长达500ms 的延迟、但没有成功。 我不想尝试猜测延迟。

设置新电池的正确步骤是什么? 您是否有我可以用作参考的示例代码或脚本?

我认为我的代码运行正常、因为我能够启动和停止使用相同写入子命令函数的活动模式。

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

    您好 James、

    您可以将 BQStudio 通信用作参考、如果它正常工作、并且您的代码未正常工作、则驱动程序代码中可能会错过一些内容。 您可以使用逻辑分析仪与您的 MCU 实现进行比较。

    此致、

    Wyatt Keller

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

    您好、Wyatt、

    感谢您的建议。 我希望我不必对其进行逆向工程、但可能会面临这种方法。

    我希望有人可能是安倍,指出顺序上缺失的东西。 我认为我没有错过数据表中的任何内容、我的所有其他命令都按预期进行写入和读取。

     仿真 EOS 条件需要一些时间。 我的器件现在处于该状态。 我不希望仅仅进行实验、而是希望清楚地了解正确的程序。

    谢谢、
    James

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

    好的。 我认为我有一个合理的解决方案和理解、但这肯定没有记录在数据表或 TRM 中。

    为了找出问题、我所做的是在发出"新电池"命令后每隔100ms 对控制状态寄存器进行一次轮询。 我所看到的是令人惊讶的! 在新的电池命令之后、对于~1s (10次轮询)、状态寄存器是正常的(与发出命令之前相同)。 在第11次轮询中、我遇到 I2C 错误。 第12个问题是查看 INITCOMP=0! 在另外一个~500ms 后、INITCOMP 变为1。

    看起来芯片正在自行复位。 对于第一个~1、没有迹象表明发生了这种情况、那么 INITCOMP 在几百毫秒内变为0。 在 INITCOMP=1之后、我看到 EOS 条件被清除并且我现在可以禁用芯片。

    以下是我的新序列:

    1. GE 使能

    2、等待 IntComp = 1

    3.发送 新电池(0xA613)

    4.延迟1300ms

    5、 等待 IntComp = 1

    6、读取 电池警报寄存器(0x0B)

    7. GE 禁用

    在上面的步骤6中、寄存器现在显示 EOS 已被清除! 希望这能帮助其他人解决同样的问题。 如果发送命令后没有尝试直接禁用芯片、则某些人不会看到此问题。

    James

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

    TI 能否确认此解决方案是否正确? 如果是、应更新文档以包含此过程?

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

    您好 James、

    在新电池命令之后、监测计停止条件或任何复位之后。 无论监测计何时进行计算或初始化、您都应等待 INITCOMP 设置。 这是正确的流程。

    此致、

    Wyatt Keller

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

    您好、Wyatt。 感谢您的确认。

    发送 STOP 命令后、TRM 会指出您应该等待 G_DONE 生效、因此这是清零的、并按预期工作。 新电池命令的问题是、发出新电池命令后、似乎没有迹象表明器件"忙"一秒钟以上。 在这一1s 延迟之后、看起来器件会复位、然后您可以查找 INITCOMP。  

    不管怎样、我的过程听起来是正确的、只是想为他人突出显示它、因为文档中没有对它进行说明(至少我没有找到)。

    谢谢!