小编Nab*_*bil的帖子

微控制器EEPROM耗损均衡是否有通用算法?

我正在开发一个Arduino库,它可以最大限度地延长AVR EEPROM的使用寿命.它需要您想要存储的变量数量,其余部分.这是我的尝试,在所有情况下都不起作用.

背景资料

Atmel表示,每个存储器单元的额定写入/擦除周期为100,000次.他们还提供了一份应用说明,介绍了如何进行磨损均衡.以下是应用笔记的摘要.

通过在两个存储器地址之间交替写入,我们可以将擦除/写入增加到200,000个周期.三个存储器地址为您提供300,000个擦除/写入周期,依此类推.要自动执行此过程,将使用状态缓冲区来跟踪下一次写入的位置.状态缓冲区的长度也必须与参数缓冲区的长度相同,因为也必须对其进行磨损均衡.由于我们无法存储下一个写入的索引,因此我们在状态缓冲区中增加相应的索引.

这是一个例子.

   <------------------- EEPROM -------------------->  
   0                                               N
   -------------------------------------------------
       Parameter Buffer    |     Status Buffer     |
   -------------------------------------------------

   Initial state.
   [ 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 ]

   First write is a 7. The corresponding position
   in the status buffer is changed to previous value + 1.
   Both buffers are circular.
   [ 7 | 0 | 0 | 0 | …
Run Code Online (Sandbox Code Playgroud)

avr arduino eeprom

10
推荐指数
1
解决办法
6998
查看次数

标签 统计

arduino ×1

avr ×1

eeprom ×1