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.

[参考译文] TMS570LS3137闪存初始化/编程/擦除代码

Guru**** 2482105 points
Other Parts Discussed in Thread: HALCOGEN

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/715572/tms570ls3137-flash-initialize-program-erase-code

主题中讨论的其他器件:HALCOGEN

您好!

我们使用 HALCOGEN 工具生成初始化代码,该代码具有 setupFlash()函数。 现在、我们想使用寄存器进行编程和擦除、并参考以下文档来开发我们自己的代码:

SPNU499C

ZHCA544

spnu501h

以下是用于对闪存进行编程的算法:

1.使用组配置 FMAC 寄存器。

2.配置 FBSE 寄存器以选择组扇区。

3.使用 FSMWRENA 寄存器使能闪存写入。

4.配置 FSM_CMD 以清除状态。

5.将0x15值写入 FSM_EXECUTE 寄存器以执行闪存命令。

6.使用扇区地址对 FADDR 寄存器进行编程。

7.用 要写入的数据对 FWPWRITE 寄存器进行编程。

8.配置 FSM_CMD 进行编程。

9.将0x15值写入 FSM_EXECUTE 寄存器以执行闪存命令。

当执行上述程序时、我们将获得 fmstat 寄存器中设置的以下错误位:

INVDAT

恒压

SLOCK

出现这种情况的原因可能是什么、是否有任何文档为闪存初始化、编程和擦除捕捉了实际算法?

提前感谢。

谢谢、

Kalyan

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

    请使用闪存 API 库对片上闪存进行编程/擦除。

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

    您好、Sunil、

    感谢您确认使用闪存 API。
    但是、我们还有一些疑问。 您也能回答这些问题吗?
    1.根据 spna148.pdf 文档,我们尝试实现单字节程序,如下所示:

    Fapi_initializeFlashBanks (180);
    Fapi_setActiveFlashBank (Fapi_FlashBank1);

    然后执行 spna148.pdf 文档中提到的编程单字节中提到的步骤。

    我们在 fmstat 中看不到任何错误、其值为0x00、但数据未被编程。 您能否确认一下、除了文档中提到的步骤外、我们还需要添加其他步骤吗?

    2.我们能否获得有关如何初始化闪存而不是使用 FAPI 调用的算法详细信息?

    此致、
    M.Sreenivasan。