具有高耐用性的 EEPROM

电器工程 嵌入式 记忆 内存 eeprom
2022-02-04 18:17:23

我目前正在开发一个嵌入式项目,其中我有一个计数器,它将一直处于活动状态。如果电源下降,那么我还必须存储最后一个计数器状态并在下次启动时将其加载回来。所以我打算使用 EEPROM,我将在其中不断写入我的计数器值。但我在某处读到 EEPROM 的读/写耐久性约为 100,000 次,我将每 24 小时更新该计数器可能 120,000 次。所以我正在寻找替代方案来完成这项任务。请给我你做同样的建议。

4个回答

另一种解决方案可能是使用具有非易失性 FRAM 的微控制器。FRAM 不像 EEPROM 那样受到写入周期的限制。

TI 的一些 MSP430 产品可与 FRAM 一起使用,以下是与您描述的应用类似的链接:

带有 FRAM 的 MSP430 在电源故障时保存状态

这是关于 FRAM 的维基百科文章:FRAM

我在当前项目中遇到了这个问题。

我处理它的方法是将计数器的实时值保存在 RAM 中。我添加了一些硬件,以便微控制器可以检测到原始输入电源电压低。如果是这样,它会停止它正在做的事情,将实时计数器值保存在 EEPROM 中,然后等待观察原始电源电压。如果它回升,有一些滞后,那么微基本上会重新启动。否则,如果电源继续下降,微最终将停止。在下一次重启时,计数器值从 EEPROM 中加载,然后再次在 RAM 中实时使用,直到下一次断电。

将一个小值写入 EEPROM 不需要很长时间。您现有的电源系统很可能有足够的能量存储,您可以检测到电压变低,并且在微控制器的电源低于操作或 EEPROM 写入阈值之前仍有足够的保证运行时间。

在我的例子中,唯一的附加硬件是一个肖特基二极管,以防止直流电源在下降过程中从本地储存器中吸取电荷,以及两个电阻作为分压器,以便微控制器可以读取原始输入电压。剩下的就是固件。

重要的是要注意,您应该观察输入端的电压,无论最终电源为微控制器供电,而不是直接观察微控制器的电源电压。等到后者走低时,可能为时已晚。希望有一个电压范围低于一切正常运行时的最坏情况,并且高于微型电源为保证微型稳压器电压所需的电压范围。在我的例子中,微控制器的电源是一个从 48 V 供电的降压稳压器,因此有很大的范围低于正常值,但微控制器仍然可以可靠地运行。

老老老办法,CMOS计数器+锂电池或Ram+锂电池。

存储元件的电源在可用时来自正常电源,在不可用时来自电池。

许多处于睡眠状态的现代微型计算机将在非常低的电流供应下保持其状态。因此,您可以将此技术与断电检测一起使用以进入睡眠状态,然后在主电源关闭时使用电池在睡眠期间保持状态。

Microchip 有一系列 I 2 C“EERAM”部件,可以将数据存储在 SRAM 中,然后在断电时将其写入 EEPROM(使用存储在电容器中的能量),并在电源恢复时加载。这似乎非常适合您的应用程序。

这些部件的一个典型例子是47L04