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.

[参考译文] BQ40Z80:初始化期间闪存损坏

Guru**** 2455560 points
Other Parts Discussed in Thread: BQ40Z80

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1532292/bq40z80-flash-corruption-during-init

产品型号:BQ40Z80


工具/软件:

您好!

这个问题是这个问题的后续问题: https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1402001/bq40z80-bms-field-reject---no-access-to-memory---eeprom-erased/5414983?tisearch=e2e-sitesearch&keymatch=bq40z80%20frank#5414983

密封设备没有改善情况。

我们做了进一步的测试并发现了这一点

-设备保持在 init 约 2 秒(设置了 OperationStatus 的 init 位

-如果我们然后移除设备的电源(移除 PACK+),它将自行砖化

-当 bricked 时,我们在报告闪存内容的 SBS 命令的大多数响应中看到 0xFF(例如 0x20 ManufacturerName)

-当 bricked,它是不可能再解封设备(假设:所有密钥也都是 0xFF )

该器件具有极小配置、因为我们仅将其用作具有电芯平衡功能的普通锂离子保护器件。 所有高级功能(如 Gauging、Charging)均被禁用 (Mfg Status Init = 0x0010)。

该应用使用可移除平衡连接、该连接还为芯片提供 GND。 因此、由于我们无法保证无接触反弹插入、也无法确保芯片的电源电压稳定。  

我们还在现场出现故障、这表明可能存在更多的故障模式。

上面的结果表明、芯片在初始化期间(以及可能在运行期间)进行闪存写入、这会导致存储器损坏、并在“错误的时刻断电时损坏器件。

我们如何配置器件、使其在初始化和正常运行(活动,睡眠)期间不会向闪存写入任何数据?

我们能否获得更多关于它在哪种情况下写的内容的信息?

是否可以通过增加电源电容来缓解这种情况?

固件中是否有逻辑会停止闪存写入活动_Before_电源电压变得至关重要 (INIT 和 OPERATION)?

是否有禁止这些“后台“写入的闪存写入保护机制?

可能会加载到设备上的不同固件映像?

由于现场故障率很高(约为 5%)、因此非常感谢您提供的任何帮助。

此致、Frank

以下是器件配置的转储:

 0x00、0x00、0x00、0x00、0xAC、 0x0D、0x1E、0x44、0x00、0x04、 0x20、0x00、0x00、0x00、0x00、 0x96、// 4AC0
 0x00、0xAF、0x00、0xE4、0x77、 0x00、0x00、0x00、0x00、0x00、 0x00、0x00、0x00、0x00、0x00、 0x00、// 4AD0
 0x00、0x00、0x00、0x00、0x00、 0x00、0x16、0xEA、0x00、0xAC、 0x0D、0xD0、0x07、0x05、0x00、 0x00、// 4AE0
 0x0A、0x00、0x00、0x00、0x00、 0xD0、0x07、0x64、0x64、0x00、 0x00、0xDE、0x0A、0x6E、0x0C、 0x05、// 4AF0
 0x05、0x04、0x0A、0x14、0xA0、 0x05、0x1E、0x00、0x3C、0x0A、 0x00、0x3C、0xD0、0x00、0x00、 0x02、// 4B00
 0x00、0x04、0x64、0x00、0x10、 0x04、0x0A、0x00、0x14、0x28、 0x3C、0x50、0x5A、0x0A、0x00、 0x14、// 4B10
 0x28、0x3C、0x50、0x5A、0x2C 0x01、0xB0、0x01、0x0A、0x00、 0x81、0x00、0x31、0x00、0x03 0x0A、// 4B20
 0x00、0x1E、0x32、0x03、0x0A、 0x10、0x0B、0x3C、0x0C、0xB8、 0x0B、0x10、0x0E、0x02、0x03、 0x2D、// 4B30
 0xF2、0x87、0x33、0xB5、0xB6、 0x65、0x99、0x6A、0xF1、0x16、 0x24、0x47、0x3B、0xE7、0x20、 0xC1、// 4B40
 0x2A、0x73、0x1D、0x01、0xFA、 0x89、0x61、0x89、0x67、0x27、 0xDC、0xCD、0x4F、0xB5、0x42 0x13、// 4B50
 0x4A、0xD4、0x99、0x11、0xD7、 0xc4、0xA6、0x7D、0x46、0x30、 0x11、0xC0、0x18、0x40、0x38、 0x5A、// 4B60
 0x0A、0x00、0x00、0x00、0xB8 0x0B、0x1C、0x0C、0x00、0x05、 0x68、0x10、0x04、0x10、0x64、 0x5F、// 4B70
 0x80、0x0C、0xE4、0x0C、0x06 0x08、0x68、0x10、0x04、0x10、 0x64、0x5F、0x00、0x6F、0x01、 0x02、// 4B80
 0x02、0x02、0x02、0x03、0x50、 0x46、0x00、0x00、0x50、0x5F 0x3C、0x64、0x00、0xCE、0xD1 0xFF、// 4B90
 0x01、0x1A、0x00、0x07、0x03、 0x00、0x00、0x00、0x00、0x00、 0x00、0x00、0x00、0x00、0xE8、 0x03、// 4BA0
 0x96、0x00、0x64、0x00、0x14、 0x64、0x64、0x01、0x03、0x0C、 0x05、0xD0、0x07、0x02、0xD7、 0x3F、// 4BB0
 0x01、0x0C、0xC4、0x09、0x0A、 0x54、0x0B、0x00、0x00、0x02、 0x00、0x00、0x90、0x10、0x90、 0x10、// 4BC0
 0x90、0x10、0x90、0x10、0x90、 0x10、0x01、0xA0、0x0F、0xA0、 0x0F、0xA0、0x0F、0xA0、0x0F 0xA0、// 4BD0
 0x0F、0x00、0x0A、0x0F、0x40、 0x1F、0x05、0x00、0x00、0x00、 0xE8、0x03、0x0F、0x40、0xA2、 0x05、// 4BE0
 0xD0、0x8A、0x01、0x18、0xFC 0x0F、0x00、0x0A、0x0F、0x00、 0x0A、0x05、0x0F、0x00、0x0A、 0x05、// 4BF0
 0x0F、0x00、0x0A、0x05、0x0F 0x6E、0x0C、0x02、0x5A、0x0C、 0x04、0x0D、0x02、0xF0、0x0C、 0xCC、// 4C00
 0x0D、0x02、0x9A、0x0D、0xAC、 0x0A、0x02、0xC0、0x0A、0xE4、 0x09、0x02、0xf8、0x09、0x0A、 0xD0、// 4C10
 0x07、0x08、0x07、0x08、0x07 0x02、0x00、0xC4、0x09、0xD0 0x07、0xF0、0xD2、0x02、0x00、 0x2C、// 4C20
 0x01、0x02、0x00、0x5A、0x2C、 0x01、0x1E、0x0C、0xFE、0xF4、 0x01、0x02、0x64、0x00、0x02、 0x32、// 4C30
 0x00、0x02、0x0A、0x00、0x02、 0x00、0x00、0x00、0x00、0x98、 0x08、0x05、0x94、0x11、0x05 0x10、// 4C40
 0x27、0x05、0xF0、0xD8、0x05 0x36、0x0D、0x05、0x94、0x0E、 0x05、0xB8、0x08、0x05、0xC8、 0x00、// 4C50
 0xC8、0x00、0x96、0x00、0x02、 0x78、0x00、0x14、0x02、0xAC、 0x0D、0x0A、0x00、0xF4、0x01、 0x05、// 4C60
 0x64、0x00、0x74、0x0E、0x32、 0x00、0xC8、0x00、0x05、0x2C 0x01、0x90、0x01、0x02、0x00、 0x00、// 4C70
 0x02、0x05、0x00、0x05、0xFB、 0xFF、0x05、0x05、0x00、0x05 0x64、0x02、0x05、0x64、0x05 0x05、// 4C80
 0x00、0xAC、0x0A、0x24、0x0B 0x74、0x0B、0xA6、0x0B、0xD8、 0x0B、0xD2、0x0C、0x0A、0x00、 0xA0、// 4C90
 0x0F、0x84、0x00、0x60、0x01、 0x08、0x01、0x68、0x10、0xBC、 0x07、0xA4、0x0F、0xB0、0x0B 0x68、// 4CA0
 0x10、0xBC、0x07、0xA4、0x0F 0xB0、0x0B、0xA0、0x0F、0xF4、 0x03、0xBC、0x07、0xD8、0x05 0x04、// 4CB0
 0x10、0xCC、0x09、0x88、0x11、 0xC0、0x0D、0x58、0x00、0x2C、 0x00、0xE8、0x03、0xE8、0x03 0x10、// 4CC0
 0x0E、0xA0、0x0F、0x00、0x32、 0x4B、0x01、0x32、0x00、0x5F、 0x0A、0x00、0x0A、0x96、0x00、 0x50、// 4CD0
 0x28、0x00、0x14、0x5E、0x01、 0x3C、0x46、0x00、0x28、0xA0、 0x0C、0x68、0x10、0x2C、0x01、 0x19、// 4CE0
 0x00、0xB8、0x0B、0xFA、0x00、 0x40、0x00、0x4B、0x00、0x28、 0x01、0x01、0xC0、0x0D、0x68、 0x10、// 4CF0
 0x0C、0x03、0x01、0x1C、0x01、 0x06、0x03、0x70、0xFF、0x42、 0x53、0xFF、0x64、0x98、0x08、 0xFA、// 4D00
 0x64、0x00、0x32、0x00、0x0A、 0x00、0x01、0x3C、0x0A、0xFF、 0xFF、0xFF、0xFF、0xFF、0xFF、 0xFF、// 4D10

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

    您好、有任何更新吗? 客户非常不满意、我们需要尽快找到解决方案。 此致、Frank

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

    您好 Frank、

    此时的电压是多少、以及此时的有效更新电压参数? 如果电压低于有效更新电压、则器件不应允许数据闪存更新。

    如果可能、您还能否共享受影响器件之一的.srec 文件?

    此致、

    Anthony

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

    尊敬的 Anthony:

    我们仅在电源线处有小型电容器、BAT 处 220p、VCC 处 1n、电池组处 10n。 在 PBI 处为 2u2。 在处理接触弹跳时、电压会非常快速地下降。

    器件为砖型、解封密钥全部为 0xFF。 这意味着无法再访问存储器、因为无法解封。 我能够使用一字节的 SBS 命令来收集一些数据、其中大部分数据是 0xFF。 您可以在上面链接的原始帖子中看到我的结果。

    你写的是很有前途的。 您能否确认在开始闪存写入之前进行了电压检查? 如果是、那么更大的电容器是否有助于更好地维持写入周期? 这种写入周期有多长时间? 您是否有建议使用电容值? 它应该位于何处? 我假设、电池电源引线上的电容器会有所帮助?

    此致、Frank

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

    尊敬的 Anthony:

    此外、如果可能、您能回答我提出的任何其他问题吗? 尤其是、是否可以完全阻止器件写入闪存? 我们只是将其用作具有电压、电流和温度保护功能的正常 BMS。 没有充电或电量监测等奇特的东西、没有寿命、没有实际需要闪存写入的东西。 以下是问题:

    我们如何配置器件、使其在初始化和正常运行(活动,睡眠)期间不会向闪存写入任何数据?

    我们能否获得更多关于它在哪种情况下写的内容的信息?

    是否可以通过增加电源电容来缓解这种情况? >>在进行中、需要写入周期持续时间、电流消耗(或电容值)、并正确放置电容器。

    固件中是否有逻辑会停止闪存写入活动_Before_电源电压变得至关重要 (INIT 和 OPERATION)?

    是否有禁止这些“后台“写入的闪存写入保护机制?

    可能会加载到设备上的不同固件映像?

    此致、Frank

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

    尊敬的 Anthony:

    这种情况没有得到解决、我需要回答上面的问题。

    此致、Frank

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

    大家好!

    我们正在放弃这一结论、即无法阻止 BQ40Z80 从电源触点跳动中自行跳动。 我们在电池端子(在 BMS PCB 上)之间添加了一个 22u/35V/X5R 电容器、并创建了一个能够播放实际记录的接触行为的接触弹跳仿真器。 我们调节播放速度以覆盖各种场景。 该模拟器可以在播放几分钟后轻松地将 IC 砖化。 在现场、BMS 解决方案通过连接器 (JST XH) 连接到电池包、这是一种电动自行车应用、可能会产生微接触反弹。

    下面的屏幕截图以黄色显示了电池电压、以及通过 1k 串联电阻器的输入电流(来自 25V 工作台 PSU、其开关串联基于 MOSFET)。

    这将显示序列概览。 中间的左侧显示了正常工作模式:每 250ms 短唤醒一次、每秒唤醒更长一次。 中心右侧显示了颠簸的情况。

    下面显示了 IC 闪烁的缩放。 光标处于 1.7V((IC 的欠压截止频率)。 有一个尖峰包含多个抖动(下图中放大了该抖动)、然后是更长的通电时间。 我们认为、在反弹期间电源电压“波动“在 1.7V 左右这一事实令 IC 感到困惑、认为需要修复闪存内容。 IC 启动行为不同于正常行为、我们认为右侧的大电流尖峰(大约 3mA) 显示)显示了闪存擦除。 发生此事件后、IC 被刷新我们从仍可访问的闪存区域读取所有 0xFF、如上面的第一篇文章所述。 整个情况是可重复的。 我们无法避免接触反弹、尤其是在我们焊接连接的制造过程中。 将通过添加永久焊接连接而不是平衡器连接器来抑制现场的触点反弹。 但是,除非没有办法告诉 IC 不要在这里做什么,我们真的认为这是一个严重的设计缺陷。

    此致、Frank