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.

[参考译文] MSP432E401Y:内部 EEPROM 需要更多时间来完成写入操作

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1509055/msp432e401y-internal-eeprom-takes-more-time-to-finish-write-operation

器件型号:MSP432E401Y

工具/软件:

我们使用 TI-MSP432E401Y。 我们注意到、当我们写入芯片的内部 EEPROM 时、有一些时间需要接近~5-7秒才能完成写入。  (这可以通过每200毫秒写入 EEPROM 来重现)

我们使用以下 TI-RTOS 调用来写入 EEPROM、

  • EEPROMProgram()

写入 :TI-MSP432E401Y

TI-RTOS :6.81.01.

开发工作室 : CCS-12.6.0

这方面是否有任何已知问题?

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

    您好、

     我有几个问题。

     首先、请回顾 EEPROM 的特性、了解对一个字进行编程并擦除一个块所需的时间。 编程时间将取决于是否需要复制缓冲区。 在最坏的情况下、最多可能需要1.8秒。 请参阅下面的。 对于擦除时序、它取决于自新鲜值以来 EEPROM 受到多少次/周期的影响。  

     在看到5-7秒的编程时间之前、您测试过这款特定芯片多长时间? 换言之、当您从原始芯片开始时、还是在芯片上进行大量 EEPROM 编程后问题逐渐出现、您会看到这种情况吗? 您说您尝试每200ms 重复对 EEPROM 进行一次编程。 我不知道您使用该设备玩了多长时间。 假设您已经让器件一周每200ms 编程一次 EEPROM。 这可以转化为300万个编程周期。 您可能已用尽写入/擦除周期的数量。  

     是否总是需要5-7秒、或者有时编程所需的时间更短?

     您有其他设备要测试吗? 您是在仅一个芯片还是多个芯片上看到问题? 我想知道这是否是一次性问题。

     如果您尝试下面的裸机代码、是否能重复同样的问题?  

    uint32_t ui32EEPROMInit;
    uint32_t pui32Data[2];
    uint32_t pui32Read[2];
    //
    // Enable the EEPROM module.
    //
    SysCtlPeripheralEnable(SYSCTL_PERIPH_EEPROM0);
    //
    // Wait for the EEPROM module to be ready.
    //
    while(!SysCtlPeripheralReady(SYSCTL_PERIPH_EEPROM0))
    {
    }
    //
    // Wait for the EEPROM Initialization to complete
    //
    ui32EEPROMInit = EEPROMInit();
    //
    // Check if the EEPROM Initialization returned an error
    // and inform the application
    //
    if(ui32EEPROMInit != EEPROM_INIT_OK)
    {
    while(1)
    {
    }
    }
    //
    // Program some data into the EEPROM at address 0x400.
    //
    pui32Data[0] = 0x12345678;
    pui32Data[1] = 0x56789abc;
    EEPROMProgram(pui32Data, 0x400, sizeof(pui32Data));
    //
    // Read it back.
    //
    EEPROMRead(pui32Read, 0x400, sizeof(pui32Read));

      

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

    您好 Charles、 感谢您的答复、并为延迟提供了借口。

    我们几乎每天向 EEPROM 写入不到10个条目。 这200毫秒写入操作仅用于测试目的。

    我们还有其他单位。 在这些单元中、当我们定期写入时、一次(在8次中)需要接近5秒才能完成 写入。 剩余时间、它的完成写入操作会快速完成

    我们 尝试了您的代码。 事实上、我们的代码也只使用直接 EEPROM 调用。 问题即将出现。

    请注意、仅在 EEPROM 写入期间、而不是在 EEPROM 读取期间观察到延迟。

    谢谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    当我们定期进行写入时、完成一次(共8次)需要将近5秒的时间 

    5S 确实是很多。 但是、我没有理论来解释它。 您拥有哪个芯片版本? 可以显示器件标识。  

    您的 EEPROM 操作是否曾因断电或任何类型的复位事件而中断? 此器件上有几个与 EErpom 相关的勘误表。 我不知道、这些勘误条件是否在某个时候受到器件的影响、从而导致您在后续看到您正在查看的内容、但仍然可以正常工作但需要很长时间才能完成。   

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

    尊敬的 Charles:

    芯片上的标记:32APQNWG4 MSP432E401YTREVB

    我们提供了评估板、其中我们尝试了 EEPROM 连续写入。  

    起初是快的。 在经过3-4天的连续写入(200ms)后、我们看到的行为与 Office 板中的行为相同。

    评估板: www.ti.com/.../MSP-EXP432E401Y

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

    您好、

    [引述 userid="652943" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1509055/msp432e401y-internal-eeprom-takes-more-time-to-finish-write-operation/5851286 #5851286"]

    起初是快的。 在经过3-4天的连续写入(200ms)后、我们看到的行为与 Office 板中的行为相同。

    [/报价]

    正如我在之前的答复中提到的、器件在反复经历写擦除周期后可能会老化。 如果您每200ms 写入一次、那么在4天内、您就会将 EEPROM 置于估计的1728万 个写入周期中。  尽管数据表指出至少有50万个写入周期、但 由于重复写入 操作、EEPROM 可能会老化很多。