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.

[参考译文] MSP432P401R:闪存擦除多次写入

Guru**** 2533850 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/929351/msp432p401r-flash-erase-multiple-writes

器件型号:MSP432P401R

大家好、团队、

您能看看我从客户那里收到的以下问题吗?

"每次擦除操作、我可以向同一闪存地址写入多少次。  (擦除按扇区)

该闪存可写为 μ…

每次擦除时能否多次写入某个位置。  比如我能否写入一个字节8次还是一个字32x。

  • 擦除= 0xFF
  • 写入#1 = 0x7F
  • 写入#2 = 0x3F
  • …μ A
  • 写入#7 = 0x01
  • 写入#8 = 0x00

在多次写入“say byte”或“minimum write word size”的问题上,我们有一种特殊的算法,用于您的目的,将一个位从“1”打击为“0”。  因此,一个字节最多可被写入8次,一个字最多可被写入32次,以“吹扫”一个从“1”到“0”的位。  某些微控制器的闪存无法执行此操作,而某些微控制器的闪存则能够执行此操作。

 

您能不能确定这在该 CPU 上是否可行。

"

如果需要进一步澄清,请告诉我。

此致、

Jacob Butler

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

    您好、Jacob、

    这个问题的答案并不简单明了。 与在数据表中提供擦除间隔的最大累积编程时间的 MSP430器件不同、我在 MSP432数据表或 TRM 中找不到该类型的信息。 我确实在数据表的表5-47中找到了一个有趣的参数、尽管它称为 NMAX_PGM、这是完成程序运行所需的最大脉冲数。 这似乎因器件而异、因此该值存储在 TLV 数据中。

    无论如何、我想强调使用 DriverLib API 的重要性。 由于 MSP432上闪存控制器的复杂性、诸如擦除和程序之类的简单操作需要高度的软件开销和特殊配置。 MSP430的驱动程序库(在本文档中称为 DriverLib)提供了一组多功能函数、可充分利用闪存控制器的所有高级特性。 DriverLib API 提供了一个强大的前端、可极大地简化用户体验、并使程序员无需担心多脉冲编程、位掩蔽和动态更改闪存组读取模式等单调要求。 所有这些要求都在软件层中自动处理、并在经过封装和优化的库中提供给用户。

    如需了解更多详细    信息、请参阅《MSP432 MCU 上的闪存操作》应用手册和《MSP432驱动程序库 MSP432P4xx 用户指南》(特别是第8章)。

    此致、

    James