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.

[参考译文] BQ76952:OTP 编程 OTP 写入检查错误

Guru**** 2439560 points
Other Parts Discussed in Thread: BQ76952

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1445065/bq76952-otp-programming-otp-write-check-error

器件型号:BQ76952

工具与软件:

我正在定制电路板上使用 BQ76952、默认情况下启用了 SPI 和3.3V LDO。 我已经使用一个 MCU (由外部电源供电的3.3V 电压)来配置 RAM 中的寄存器。 我从未对 OTP 进行编程、现在需要对其进行编程。

我已向 BAT 引脚提供了11V。 我已配置所需的寄存器进入 CONFIG_UPDATE 模式、然后退出。

我 再次进入 CONFIG 模式以进行 OTP 编程并读取电池状态(0x12)。 Battery Status 返回2309 (DEC)= 0b 0000 1001 0000 0101。

这意味着 IC 位于中

1.) 配置更新模式

2.) 完全访问模式

3.) OTPB 寄存器清零

4.) 已触发安全故障。 (我尚未连接任何电芯输入)

接下来、当我发送子命令0x00A0 (OTP_WR_CHECK)时、我会得到0xFF。  

为什么会出现此错误? 我缺少什么吗? 请协助。

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

    您好!

    今天(11月29日)是美国假期。 该团队将在周一回到办公室、然后返回给您。

    感谢您的耐心。

    此致、

    Max Verboncoeur

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

    你好、Mrinal、

    感谢您的耐心。  

    似乎您遵循了正确的步骤来写入 OTP、如所示 第3.1节在生产中写入 OTP 的建议步骤 摘自 BQ769x2校准和 OTP 编程指南

    通常、使用子命令后返回0xFF 意味着子命令尚未完成操作、您需要在写入子命令后添加至少2ms 的等待时间。  但是、在您的情况下、尤其是对于 OTP、您也会触发安全故障。 您是否想检查触发了哪个故障?

    该线程: BQ76952:AFE 以0xFF 响应 OTP_WR_CHECK()、 如果您遇到同样的问题、可能值得关注。

    如果您还在系统中使用 SUV 永久失效以及保险丝、则 可以使用之前的论坛链接。

    此致、
    Alexis

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

    我会遇到 UV 和 OV 故障。 (Safety Status A 0x03 = 0x0C)这些是正常的、因为我没有将任何电芯连接到 IC 输入、并且所有电芯输入引脚都悬空。 读数从105mV 到600mV 不等、其中一个单元格显示的读数范围为65510。 电池索引65510不是固定的、当我为 IC 供电时、有时会变化。
    我已经尝试更改等待时间、但没有任何效果。

    通过共享的链路、我了解到如果存在故障、则不会对 OTP 进行编程。

    为了克服该问题、我需要进入 CONFIG_UPDATE_MODE、设置所需的值、发送 OTP 写入命令、然后在退出 CONFIG_UPDATE_MODE 之前禁用故障保护、这只会在 RAM 中禁用保护。 退出 CONFIG_UPDATE_MODE 时、我假设实际上根据发送 OTP 写入命令之前设置的值对 OTP 进行编程。 当 IC 重新启动时、会从已启用保护的 OTP 重新加载值。

    是这样吗?

    PS:我正在使用读取子命令例程从0x00A0读取数据。

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

    问题在于对0x00A0命令读取缓冲区之前的延迟。

    之前、我尝试过延迟高达5ms。  将其设置为6ms 或更高的值可工作。

    总之、UV 和 OV 故障在 OTP 编程中被忽略。 禁用保护可能是为了实现永久性故障。