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 是专为此类应用程序设计的。尽管 MSPM0 MCU 没有内部 EEPROM,但 MSPM0 内部闪存支持 EEPROM 仿真。与使用外部串行 EEPROM 相比,使用内部闪存的 EEPROM 仿真可节省引脚用量和成本。
不同应用程序所需的存储结构不尽相同。本文中描述的 A 型解决方案适用于存储大“块”数据。如果应用程序需要存储少量“变量”数据,则可以参考 B 型解决方案。
EEPROM 与片上闪存的区别
EEPROM 可以多次擦除和写入存储器的单个字节,即使系统断电,已编程的位置也能长时间保留数据。
闪存的密度高于 EEPROM,因此可以在芯片上实现更大的存储器阵列(扇区)。闪存擦除/写入周期是通过对各个存储单元施加时控电压来执行的。在擦除时,每个单元(位)读取逻辑值 1。因此,每个闪存位置在擦除后的读数为 0xFFFF。通过编程可以将存储单元更改为逻辑 0。可以重写任何字,将位从逻辑 1 更改为逻辑 0;但反过来则不行。此外,闪存有一项限制是必须按区域擦除存储器。对于 MSPM0 MCU,擦除分辨率是大小为 1k 字节的“扇区”。
EEPROM 与闪存的一个主要区别是耐写次数。闪存耐写次数通常为 10000 次,远低于实际 EEPROM。EEPROM 仿真是一种基于闪存的软件,旨在提供可满足应用程序需求的等效耐写次数。它还会仿真 EEPROM 的行为,从而简化读写数据的操作。
典型的仿真方案涉及使用闪存的一部分并将其划分成多个区域。这些区域交替用于存储数据。由于闪存需要按块进行擦除,因此必须保留完整的闪存扇区用于 EEPROM 仿真。为了实现磨损均衡,至少使用两个扇区。