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.

[参考译文] BQ40Z50:使用 bqSBB.dll 进行*。GG 更新

Guru**** 2493735 points
Other Parts Discussed in Thread: BQSTUDIO, EV2400

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1473989/bq40z50-using-the-bqsbb-dll-for-gg-update

器件型号:BQ40Z50
主题中讨论的其他器件:BQSTUDIOEV2400

工具与软件:

您好!

我又遇到这样的情况:我无法在不覆盖校准数据的情况下更新 PCB。 通常、我使用非常旧的 bqUpdater、对其进行设置、校准数据不会被覆盖。 有一些编程器、我们现在可以与其他 I2C 板配合使用、以更新或刷写多个不同的 bq 芯片。  我发现 bqTools SDK、它实际上非常适合我提取*。srec、编写 GG 文件、并使用新的*。srec 文件更新芯片。 我唯一缺少的是保留校准数据的位置。 现在、我在原始状态下提取 GG 文件、然后在更新后提取它。 我比较两个 gg 文件、并将校准数据复制到新文件中、我仍然需要通过 EV2300和 BQ Studio 手动编程到芯片中。

bqSBB.dll 中是否存在与 WriteGGFile ()反向工作的函数(该函数只读取*。gg 文件进行编程)?

提前感谢

Robert

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

    尊敬的 Robert:

    出于生产目的、我们通常建议取20个器件所生成校准值的平均值并将该值加载到.srec 中、然后将其拉取、使这些值包含在文件中。

    我将查看.dll 是否具有所请求的功能。

    此致、

    Anthony

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

    Anthony、您好!  

    我以前和现在都非常忙于为我的问题找到解决方案、以便将 gg 文件写入芯片、我想我在阅读您的答案时并没有很好地阐述我的问题。

    我的问题不是找一个通用的 calibrationvalue 放入到*。gg 文件中、而是将一个*。gg 文件编程到器件中。 bqUSB.dll 应该能够执行此操作、但我找不到类似"WriteGGFile ()"的函数来导出*。gg 文件。

    我研究了数据闪存的处理方式、知道所有数据闪存项目都有内部缓冲区、我不确定这是否就是 bqSBB.dll 中没有"ReadGGFile ()"函数的原因。 但该 dll 的说明指出,该 DLL 是 BQ Studio 中所有瘦站的基础。

    我希望这一澄清有助于理解我的问题

    此致、

    Robert

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

    尊敬的 Robert:

    我相信我们拥有有关如何针对数据闪存值使用闪存流格式执行此操作的资源。 更多有关这方面的信息、请参阅下面的电量计通信文档:

    https://www.ti.com/lit/pdf/slua801 

    此致、

    Anthony

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

    最后、由于截止日期、我无法完成我想做的事情、不得不使用 bqStudio 手动完成一些工作。

    如果我解释我做了什么、也许您能更好地理解我的要求。 我已经编写了一个使用 EV2300/EV2400方框和 bqSBB.dll 的 CLI 程序(在 C 语言中)、可以打开 TI 提供的正确的*。bqz 文件。 这是我对 BMS 的"更新"过程、我们无法再次校准、因为所有测试点都已密封。

    方案:

    • 检查第一个可用的 EVX 板并将其连接到该板。
    • 验证连接稳定性(读取一些 SBS 数据)。
    • 取消密封并设置完全访问模式(BMS 已密封)。
    • 读取数据存储器并写入original.gg文件。
    • original.srec在出现错误时导出文件(SREC 包含 BMS 在生产后的校准和配置数据)。
    • 为新电池刷写新的*。srec 文件(因此、必须使用新的 ChemID 等将数据闪存编程到芯片中。)
    • 再次读取数据存储器并写入第二个updated.gg文件。
    • updated_calibrated.gg使用updated.gg文件中的所有数据创建第三个文件、包含"校准数据、序列等"的行除外。 这些行取自original.gg文件。

    此时、必须手动启动 bqStudio、导入updated_calibrated.gg文件并将其写入芯片、然后重新启动。

    写入后、程序会检查校准数据是否仍然存在且正确。

    我知道我可以使用 bqSBB.dll 读取参数、以及使用 TI 提供的其他*。DLL 来执行一些高级操作。 但我想保持 TI 提供的框架。 因此、我需要一种方法来使用 bqsb.dll 对*。srec 进行编程、而不覆盖原始校准和串行化数据、或者我需要知道如何将我创建的*。gg 文件写入芯片。 我想不出为什么这个*。dll 不能做到这一点的原因。

    您对 FlashStream 的建议对我没有帮助、因为我无法简单地根据 my 创建一个update.srec不覆盖校准数据的 FlashStream 文件。

    我还在另一个线程中针对可能能够完成我所需任务的程序请求源代码、但由于 TI 不支持 EV2400电路板投入生产、并且 EV2300已不再可用、因此我被拒绝。 然而,我的情况不是生产,而是质量和服务。 我感到有点惊讶的是、我们有几十个 EV2300电路板仍在使用、但必须更换为第三方生产工具供应商、从外观上看、它只是一个占用空间更小的 EV2300电路板、带有固件锁和来自 TI DLL 的功能、以及来自它们的附加"包装库"。

    是否有路线图或资料概述了 TI 计划如何在不依赖第三方供应商和许可证的情况下、使用自己的芯片支持我所认为的"基本功能"(更新芯片、而不覆盖校准数据)?