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.

[参考译文] TPS65988DJEVM:可以在闪存为空/擦除时使用 FLxx 命令通过 I2C (使用 EC)更新闪存固件

Guru**** 2581345 points
Other Parts Discussed in Thread: TPS65988DJEVM

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1413837/tps65988djevm-can-t-update-flash-fw-with-the-flxx-commands-over-i2c-using-an-ec-when-the-flash-is-empty-erased

器件型号:TPS65988DJEVM

工具与软件:

您好!

我有一个 TPS65988DJEVM、我正在使用 slvae21.pdf (和 slva783a.pdf)中所述的逻辑并使用基于 I2C 接口的 STM32进行闪存更新。

如果已使用之前的有效闪存映像对闪存进行编程(通过 SPI 使用应用程序自定义工具)、我可以使用 low region 二进制文件更新 EVM 上的闪存。 此部件正常工作。 我可以使用新的二进制文件更改闪存固件、而不会出现任何问题。

但是、如果我先擦除闪存(使用自定义工具)并尝试通过 I2C 再次从 EC 编程、我将在引导标志中设置 regionX.invalid 和 regionx 标志、但无法对闪存进行编程。 我还尝试使用完整闪存映像和/或尝试使用'FLrr 和 FLad'设置区域和指针地址、但发生了相同的事情。  

软件检查 region0和 region 1标志、不能 满足以下条件(如  slvae21a.pdf 文档的第8页所示)

if (0 == p_bootflags->region1)

...

否则为((1 == p_bootflags->region1)&&\
(1 == p_bootflags->region0)&&\
((0 == p_bootflags->region1crcfail)&&\
(0 == p_bootflags->region1flasherr)&&\
(0 == p_bootflags->region1invalid)))

是否可以在最初使用 FLxx 命令擦除闪存时对其进行编程、或者只能使用应用程序自定义工具(通过 SPI)进行编程?

或者我是否缺少一些空闪存更新步骤?

您能帮助说明一下吗?

谢谢你

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

    您好、ASIL:  

    感谢您联系我们!

    必须在器件首次上电时使用完整的闪存二进制文件对外部 SPI-Flash 进行编程、以便正确设置区域头。 您可以使用应用程序自定义工具生成完整闪存二进制文件。  

    如果您有其他问题/疑虑、敬请告知。  

    此致、  

    Aya Khedr