ZHCACJ7 april 2023 MSPM0G1105 , MSPM0G1106 , MSPM0G1107 , MSPM0G1505 , MSPM0G1506 , MSPM0G1507 , MSPM0G3105 , MSPM0G3106 , MSPM0G3107 , MSPM0G3505 , MSPM0G3506 , MSPM0G3507 , MSPM0L1105 , MSPM0L1106 , MSPM0L1303 , MSPM0L1304 , MSPM0L1305 , MSPM0L1306 , MSPM0L1343 , MSPM0L1344 , MSPM0L1345 , MSPM0L1346
本节介绍了 EEPROM 仿真解决方案在应用程序方面的特性,以及如何对其进行配置以满足应用程序需求。
eeprom_emulation_type_a.h. 中有三个用户可配置的参数。可根据应用程序的要求相应地配置这些参数。
存储器空间利用率
虽然标头在结构中占用 8 个字节的空间,但存储器空间的利用率取决于用户的应用程序。
建议在选择适当的记录大小之前评估应用程序所需的虚拟 EEPROM 大小。例如,如果要存储 40 字节的数据,建议选择 64 字节的记录大小。
耐写次数
闪存耐写次数通常为 10000 次,远低于实际 EEPROM。EEPROM 仿真的一个特性是它的耐写次数高于闪存。通过将闪存扇区划分为多条记录并逐一写入数据,闪存扇区无需在每次写入时擦除,只需在写满后擦除。此外,通过使用多个闪存扇区,等效耐写次数将进一步提高。
例如,如果使用了 2 个 1KB 扇区且记录大小为 128 字节,则等效耐写次数为 160000 次。如果使用了 3 个 1KB 扇区且记录大小为 128 字节,则等效耐写次数为 240000 次。如果使用了 2 个 1KB 扇区且记录大小为 64 字节,则等效耐写次数为 320000 次。
建议用户在选择要使用的适当扇区数之前计算应用程序所需的耐写次数。
对于三个可由用户配置的参数,建议的设计流程如下:
例如,有一个应用程序需要每 10 分钟更新一次 EEPROM 中的数据,数据大小为 40 字节,可确保提供 10 年连续服务。首先,记录大小可以是 64 字节。其次,应用程序所需的耐写次数为 525600 次(10 年 x 365 天 x 24 小时 x 6 次/小时)。需要 4 个扇区,等效耐写次数为 640000 次。
如果在 EEPROM_TypeA_writeData 或 EEPROM_TypeA_eraseLastSector 期间断电,则可能会损坏数据或标头。
为了检测损坏并从中恢复,实现了 EEPROM_TypeA_init。应在上电后立即调用该函数。EEPROM_TypeA_init 会检查所有记录的标头以确认 EEPROM 仿真的数据存储是否正确,并在必要时执行格式修复。
在 EEPROM 仿真的结构中,标头可显示相应记录的状态。一共有 4 种状态。上一节详细介绍了这四种状态之间的变化。