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.

[参考译文] MSP430F449:如何了解闪存程序上的"累积程序时间&quot。

Guru**** 2390755 points
Other Parts Discussed in Thread: MSP430F449

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/780840/msp430f449-how-to-understand-***-program-time-on-flash-program

器件型号:MSP430F449

大家好、TI 人、

我现在正在使用 MSP430F449进行 OTA 升级项目。 并被 以下概念混淆:累积编程时间累积.Mass 擦除时间。 需要您的帮助。 )

如果选择最快 的 fFTG=476KHz,则表示 Tftg=1/476KHz =0.0021ms

编程一个字节需要35 fFTG、大约0.0021x35=0.0735ms

  ,累积编程时间为10ms 使10ms/0.0735=136字节。

这是否意味着输入参数 LTength 不能大于136?

此外、如何了解累积.mass 擦除时间?  我对笔记2感到困惑。

B.R

Seafesse

void MSPBoot_MI_WriteBytes (uint16_t Flash_ADR、uint08_t* SRAM_ADR、
uint08_t LTength)
{
uint16_t I;
// fFTG = 476KHz (最大值)
FCTL2 = FWKEY + FSSEL_2 + FN0 + FN1 + FN2;
FCTL3 = FWKEY;
FCTL1 = FWKEY + WRT;
for (i=0;<Lenth;i++)     )
{
while (0 ==(FCTL3 & Wait));
*((uint08_t*) Flash_ADR)=* SRAM_ADR;
FLASH_ADR++;
SRAM_ADR++;
}
FCTL1 = FWKEY;
while (忙& FCTL3);
FCTL3 = FWKEY + LOCK;
} 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、SeaFesse、
    与闪存相关的操作擦除和写入闪存有两个主要方面。

    让我们从擦除和累积擦除时间开始。 一个被擦除的闪存单元被设定为逻辑1。 这意味着、如果之前设置为0、则需要再次为相应的电池充电。 现在、充电过程需要施加由内部电路生成的更高电压、但在任意短时间内仍然不会发生。 它就像对电容器充电、从而达到一定的电荷水平。
    因此、将其转换为闪存擦除操作意味着、必须在一定的最短时间内施加充电电压、以确保电池正确充电、被识别为1s 并保证充电的寿命、这意味着数据保持。

    现在写入闪存。 对于写入闪存、还需要施加更高的电压、但基本上需要将电池放电、这需要设置为0、并将需要保持为1的电池保持原样。 电压升高仍然会导致电池泄漏电流增大、这意味着即使是未放电的电池的容量/电荷也会降低。 为了保持指定的数据保留时间和电池信息、应力意味着不应违反累积编程时间。 累积时间表示在应用擦除之前的写入访问、从而恢复相应的单元格。 这就是为什么要能够在不违反累积编程时间的情况下写入一个完整的闪存块、就应该使用字访问而不是字节访问、因为写入一个字节的时间与写入一个字的时间相同、 但是、按逻辑写入块字只需要累积时间的一半。

    有关这方面的更多详细信息、请参阅用户指南"闪存存储器控制器"一章。

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

    尊敬的 Peter:
     哇~谢谢您生动的讲解、这对您有很大帮助。

    所以只有“块写入”才有累积编程时间的前提,我对吗?

    我在用户指南的字节/字程序上找不到字节(字)限制条件。

    因此、函数 MSPBoot_MI_WriteByte 在调用一次时可以写入任意多的字?

     

    B.R

    SeaFesse

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、SeaFesse、
    正确、对于字节和字写入、不会违反数据表参数。 仍请记住、由于编程电压引起的应力、会导致性能下降。 因此、尽可能短的写入越好。

    此致
    Peter