使用 EEPROM 的替代方案

电器工程 微控制器 eeprom 非易失性存储器
2022-01-26 18:43:42

据我了解,EEPROM 是计算机(在我的情况下是 AVR 微控制器)的一部分,它存储数据,即使在设备完全关闭时也会保留它。它允许将数据写入其中并从中读取。

我看到的问题是它的寿命是有限的,而且很短。换句话说,在我用完 EEPROM 之前,我只能读/写有限次数。

我正在寻找的是一种实现与 EEPROM 相同功能的方法,但外形尺寸较小。我想我可以使用 microSD 卡之类的东西,但我更喜欢不需要用户购买存储卡的解决方案。此外,我最多只需要几个字节的空间。假设 1 kB 非常非常保守。我会花费比需要更多的钱来容纳任何类型的存储卡。

那么我的选择是什么?是否有任何常见的 IC 解决方案可以让我实现这种数据存储/检索,而且寿命短且成本高?

4个回答

克服 EEPROM 的耐用性限制的方法是应用磨损均衡算法。基本上,对于您要存储的每条记录,您都会为其分配 N 倍的内存需求,并为 N 索引值分配相应的空间,然后使用推理来确定哪个是“当前记录”,哪个是要写入的下一条记录到。此 AVR App Note中对此进行了很好的描述

另一个潜在的解决方案是一些静态内存和电池。这具有有限的寿命,因为电池最终会耗尽,但它在写入周期中是无限的。如果您知道您的关闭时间将是一个很小的值,您也可以使用类似大型电容器的东西为其供电。如果设计得当,锂纽扣电池可以在这样的应用中使用很长时间。

还有一些部件将 RTC、nvram 和电池(以保持时钟运行)集成在一个部件中。它们的缺点是,如果内部电源发生故障,您将丢失整个部件(不仅仅是电池),但取决于您的产品应该持续多长时间,这可能不是问题。

是的,EEPROM 是一种非易失性存储器,即使没有任何电源也可以在很长一段时间内保存数据(实际时间取决于温度和其他条件)。

您可以考虑其他一些非易失性解决方案:

1) 内部闪存 - 现在大多数微控制器都有用于代码存储的闪存,有些还提供用于用户数据和日志记录的闪存。这也具有有限的写入周期,并且需要在将位从“1”更改为“0”之前进行块擦除(同时将数据存储在其他地方,然后重写它)。

2)内部 FRAM 存储器 - TI 的设备具有非易失性 FRAM 存储器,可以非常简单地访问(就像任何其他存储器位置一样。读取也像写入一样具有破坏性(尽管在您的情况下这可能无关紧要,因为周期数是 10 ^13 左右在 85 摄氏度)。

3) 外部闪存 - 您可以在外部添加内存以相当便宜地保存几兆位的数据。

根据您想要保存的速率(以及您是否可以很好地关闭),您可能能够增加可供您使用的有效周期数。

我不知道你的预算是多少,但你可能想看看MRAM,它像 DRAM 一样快,但像闪存一样非易失性。当然,这些比 EEPROM 芯片贵得多。

几年前我有一堆来自飞思卡尔的示例 IC,但从来没有机会使用它们,所以我真的不知道你最终是否会得到一个比必须连接 SD 卡更简单的电路投币口。