工具/软件:
我们使用 TI-MSP432E401Y。 我们注意到、当我们写入芯片的内部 EEPROM 时、有一些时间需要接近~5-7秒才能完成写入。 (这可以通过每200毫秒写入 EEPROM 来重现)
我们使用以下 TI-RTOS 调用来写入 EEPROM、
- EEPROMProgram()
写入 :TI-MSP432E401Y
TI-RTOS :6.81.01.
开发工作室 : CCS-12.6.0
这方面是否有任何已知问题?
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.
工具/软件:
我们使用 TI-MSP432E401Y。 我们注意到、当我们写入芯片的内部 EEPROM 时、有一些时间需要接近~5-7秒才能完成写入。 (这可以通过每200毫秒写入 EEPROM 来重现)
我们使用以下 TI-RTOS 调用来写入 EEPROM、
写入 :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 板中的行为相同。
您好、
[引述 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 可能会老化很多。