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.

[参考译文] BQ34Z100-G1:通过微控制器进行刷写

Guru**** 2616675 points

Other Parts Discussed in Thread: EV2400, BQSTUDIO

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/759865/bq34z100-g1-flashing-via-microcontroller

器件型号:BQ34Z100-G1
主题中讨论的其他器件:EV2400BQSTUDIO

我已经完成了通过微控制器刷写电量监测计的代码、但我发现它不是很可靠、i2c 通常会在刷写过程中失败部分、或者有时由于电量监测计向每个请求发送 NAK 而无法开始刷写。

当电量监测计处于 NAK 模式时(我假设是 ROM 模式)、它不能被刷写。 但是、BQ Studio 可以通过发送一系列字节来刷写电量监测计、从而以某种方式将电量监测计恢复到可编程状态。

我已记录此事务、如下所示


//离开 ROM 模式

2.681803500000000、I2C、Setup 写入[0x16]+ ACK
2.681895500000000、I2C、0x00 + ACK
2.682029500000000、I2C、0x0F + ACK
2.697807500000000、I2C、Setup 写入[0x16]+ ACK
2.697900000000000、I2C、0x64 + ACK
2.698034500000000、I2C、0x0F + ACK
2.698142500000000、I2C、0x00 + ACK


5.929884000000000、I2C、设置写入[0xAA]+ NAK
5.992867000000000、I2C、设置写入[0xAA]+ NAK
6.009887500000000、I2C、Setup Write to [0x34]+ NAK
6.070874000000000、I2C、设置写入[0x34]+ NAK
6.085886000000000、I2C、Setup 写入[0x10]+ NAK
6.148875000000000、I2C、设置写入[0x10]+ NAK
9.258963000000000、I2C、设置写入[0xAA]+ NAK

//然后每个响应 NAK、BQ Studio 发送以下魔术序列

宽:16 00 0D 00 00 00 00 00 00
宽:16 64 0D 00
C:16 66 00
C:16 04 01 08 00
C:16 64 09 00
宽:16 00 0D
宽:16 64 0D 00
C:16 66 00
C:16 04 01 08

//开始原始数据块,它开始闪烁而不会出现任何问题

宽:16 00 04 00 00 83度
W:16 64 65 01
C:16 66 00

我已经在论坛上搜索了解决方案以及这个序列实际执行的操作、但是找不到任何有用的信息、大多数询问 ROM 模式问题的线程似乎被锁定了、没有任何答案。

在 ROM 模式下如何使用此芯片时、要求提供一些文档是否太多?

提供的代码示例(slua801)未详细介绍错误恢复。

当发生错误时、您可以"砖型"芯片、要求更换表面贴装组件、这是难以置信的、任何可砖型都应该具有恢复模式!

谢谢

格伦。

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

    请增加发送命令之间的延迟-这将解决 NAK 问题。 此外、请按照此应用手册了解有关如何在 ROM 模式下使用微控制器对器件进行编程的信息:

    www.ti.com/.../slua801.pdf

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

    您好、Bryan、

    感谢您的回答、很遗憾您没有回答主要问题。 battery studio 发出的指令序列不在 bs.fs 文件中。 此序列似乎允许电量监测计在 Battery Studio 发送.bs.fs 文件的内容之前恢复到编程模式。

    该序列有什么作用? 我希望微控制器能够使电量监测计的闪存尽可能稳定(记住问题可能会导致芯片无法恢复、更换芯片需要大量的返工/成本)、而且有关闪存的信息非常有限、这让我无法做到。 slua801中的代码示例未指定对错误执行的操作。

    至于增加命令之间的延迟、很好、我可以这么做、但我在论坛上看到有人说.bq.fs 文件中指定的延迟是原来的10倍、同样、缺少任何适当的信息也是非常令人沮丧的。

    当其中一项比较检查失败时、恢复方法是什么?

    在某些情况下、会一个接一个地出现两个比较命令、即第1次比较通过而第2次比较失败时的恢复方法是什么。

    我已经阅读了 slua801、我在原始帖子中提到了它、但它没有所需的详细信息。

    谢谢

    格伦。

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

    见上文的答复

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

    器件地址在 ROM 模式和固件模式之间变化、其中 ROM 模式下为0x16、固件模式下为0xAA。

    文件流格式包括校验和和比较。 如果比较成功、可以确保已正确对监测计进行编程。 成功编程后、可以执行固件、监测计将在地址0xAA 进行通信。

    如果比较失败、请在失败比较之前重试命令序列、在上次成功比较后立即从命令开始。

    或者、如果监测计未能进入固件模式、闪存流写入过程可重新开始。

    请确保在每个停止和启动条件之间至少有66us 的延迟。

    根据经验、每秒不超过两个标准命令、但这是非常保守的、并且在使用包含所需延迟的闪存流文件(X 命令)时可以断开。

    有关时序和 filestream 格式的另一个更深入的培训、请访问:

    training.ti.com/gauge-programming-fundamentals

    最感兴趣的信息可能在35分钟后标记。

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

    您好、Bryan、

    感谢您提供的信息、这非常有用。

    我仍在尝试确定为什么 Battery Studio 软件可以恢复电量监测计、而电量监测计只需消耗微控制器能提供的所有电量。

    关于我在第一个帖子中突出显示的序列、是否有什么特别的?

    在 ROM 模式下是否有寄存器的任何文档?

    谢谢

    格伦。

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

    上面没有什么特别之处、只是 ROM 模式下的一系列命令以及固件模式下的器件地址。 如果器件处于固件模式、则在 ROM 模式下也不会响应地址、反之亦然。 当使用更多 SMBus 类型格式的 I2C 命令时、一些用户会遇到启动/停止排序问题。 使用逻辑分析仪确认您的命令镜像 bqStudio 和 EV2400的输出。 上述链接的培训详细介绍了命令和时序。

    在 ROM 模式下、没有任何超出器件数据表中给出的文档。 ROM 命令是专有的。

    上述讨论对器件的推出是否有帮助? 器件现在可以工作吗? 如果是、请标记为已解决、以便其他人在搜索论坛时更容易找到问题和解决方案。

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

    自我们上次沟通以来已经过去了两周。 上述讨论对器件的推出是否有帮助? 器件现在可以工作吗? 如果是、请标记为已解决、以便其他人在搜索论坛时更容易找到问题和解决方案。

    此致、
    Bryan Kahler