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.

[参考译文] TMS320F28388D:TMS320F28388D -如何将板载闪存用作 EEPROM?

Guru**** 2381260 points
Other Parts Discussed in Thread: TMS320F28044, TMS320F28388D, C2000WARE
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1375916/tms320f28388d-tms320f28388d---how-to-use-onboard-flash-memory-as-eeprom

器件型号:TMS320F28388D
主题中讨论的其他器件:TMS320F28044、、 C2000WARE

工具与软件:

我在 下面的文档中找到了一种将板载闪存用作 EEPROM 的方法。

用于第2代 C2000实时 MCU 的 EEPROM 仿真(修订版 A)

文档中提到、它仅支持以下 C2000器件。

第2代是指以下 C2000器件:TMS320F281x、TMS320F280x、TMS320F2823x、TMS320F2833x、TMS320F2802x、 TMS320F2803x、TMS320F2805x、TMS320F2806x 和 TMS320F28044。

1.是否不支持  TMS320F28388D 上的 EEPROM 仿真?

2.我们可以按照下面的文档进行 EEPROM 仿真吗? 这适用于不同的控制器。

我们在 GitHub - MathWorks/reference-examples-TIC2000上找到了文档"flash EEPROM Emulation from SimulinkRegistered–(F2837x)"

3.我们能否遵循 GitHub 中的"通过 SimulinkRegistered(F2837x)刷写 EEPROM 仿真- MathWorks/reference-examples-TIC2000在 TMS320F28388D 上进行 EEPROM 仿真"文档?

4.可以使用扇区12来进行 EEPROM 仿真吗?

在本文档(SimulinkRegistered–(F2837x)的闪存 EEPROM 仿真)中、提到了扇区13保留用于 EEPROM 仿真。 但是、数据表中未提及阻止将扇区12用于 EEPROM 仿真的限制。

5.您能否分享 TMS320F28388D 控制器的 EEPROM 仿真示例代码和 EEPROM 规格(页、块等)

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

    尊敬的 Vikram:

    请参阅 此文档 、了解第3代 C2000 MCU 上 EEPROM 仿真的说明。 截至目前、C2000Ware 中没有适用于 F2838x 的 EEPROM 仿真示例项目、但本文档介绍了其他第3代 C2000器件上的实现以及如何移植到另一个器件。  

    我不熟悉您所指的 GitHub 实施,但如果它实现了您所需的结果,那么您可以使用它作为参考。

    是的、您可以在闪存的扇区12中仿真 EEPROM。 我认为文档是为了说明扇区13保留供中的 EEPROM 仿真使用 解决方案  项目。

    此致、

    Skyler

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

    感谢您的快速响应。

    我已经阅读了您在上一个答案中分享的文档。 关于 EEPROM 仿真、我还有一些疑问。

    根据我的理解、可以通过两种不同的方法对 EEPROM 进行编程。

    1.页编程

    2. 64位编程

    要将3KB 的数据从 RAM 缓冲区写入 EEPROM (考虑该大小用于演示)、哪种编程方法更合适?

    1. 64位编程

    API - EEPROM_Program_64_Bits (4、Write_Buffer);

    我们如何使用上述 API 写入3KB 的数据?

    我可以使用 EEPROM_Program_64_Bits (<3KB SIZE>、Write_Buffer)吗?或者我是否需要在每个循环中写入4个字节并迭代循环、直到大小达到3KB?


    2.页编程

    API - EEPROM_Write (Write_Buffer);

    我是否需要根据一次性写入 EEPROM 的数据调整页面大小、以便将下一个数据存储在下一个页面上?

    确定页面大小的最佳方法是什么?  

    如果我认为某个页面大小的数据不适合某一页、会发生什么情况?

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

    尊敬的 Vikram:

    1.不可以、不能 在当前实现中使用 EEPROM_Program_64_Bits (<3KB SIZE>、Write_Buffer)。 64位编程模式一次只能对64位进行编程。 因此、您将必须在每个循环中写入4个字节、直到写入了3KB。

    2.如果数据未填充一页、则该页的其余部分将填充全1。 通常、您应该选择一个页面大小、该大小可以包含您希望每个页面表示的数据。 如果所有数据无法放入一个页面、具体行为将取决于您加载 Write_Buffer 的方式。  

    此致、

    Skyler