[文档下载]

使用Data Flash模拟EEPROM

[复制链接]
1556|4
手机看帖
扫描二维码
随时随地手机跟帖
捉虫天师|  楼主 | 2018-4-18 09:30 | 显示全部楼层 |阅读模式
EEPROM具有可byte write/byte read以及高达百万次可靠的擦写次数,通常被使用者用来存放 程序中会时常变更的非挥发性资料。对于单晶片产品,通常不具有内建的EEPROM能够提供给使 用者,而是基于Flash来存放使用者的资料。但是Flash的擦写次数无法与EEPROM比拟。
现在我们提出一个机制,能够组合两个page以上的Data Flash来模拟EEPROM使用,使用SRAM加 速读写资料的速度、能够达到百万次可靠的擦写次数、记录擦写循环次数,并且可以将资料量 分成数个较小的资料群以减少Data Flash page数量。
 使用 SRAM 加速读写资料速度
当进行资料写入的时候,会同步写入Data Flash和SRAM;一旦当前使用的Data Flash page已经 写满,就会使用下一个Data Flash page,并且能够直接将SRAM存放的资料存入,节省一般将资 料移入新的Data Flash page,需要搜寻全部Data Flash中已写入的资料的时间。
当需要读取资料的时候,可以直接由SRAM中读出资料,无须从Data Flash中寻找需要的资料, 能够节省搜寻过程的时间,Data Flash中的资料只用来初始化SRAM。

 达到百万次可靠的擦写次数
这样使用Data Flash模拟EEPROM的方法,能够使用byte write/byte read以及超过百万次可靠 的擦写次数。

 记录擦写循环次数
使用者可以由写入Counter的值了解Data Flash page的擦写循环次数。

 将资料量分成数个较小的资料群以减少 Data Flash page 数量
对于NuMicro® Cortex®-M0系列,如图 1-1所示,如果使用者需要存放的资料量增加,为了满足 要求的可靠擦写次数,需要的Data Flash page数量会大量增加。因此,我们建议使用者可以将 要存放的资料量分成数个较小的资料群,利用较少的Data Flash page数量就可以达到需要的可 靠擦写次数。

捉虫天师|  楼主 | 2018-4-18 09:30 | 显示全部楼层
AN_0012_Using_DataFlash_to_Emulate_as_EEPROM_SC_R.pdf (1020.21 KB)

使用特权

评论回复
捉虫天师|  楼主 | 2018-4-18 09:32 | 显示全部楼层
机制原理
在使用Data Flash模拟EEPROM时,使用者必须使用至少2个page以上的Data Flash,并且将每一 page的Data Flash,以每两个字节为单位划分成若干个区块,如图 2-1所示,以NuMicro® Cortex®-M0系列为例,每一个page的Data Flash大小为512字节。第一个区块记录目前擦写循环 次数的Counter值,其余存放资料的地址和值。同时SRAM也划分一个区块,用来记录存放的资 料。
当使用者要存放资料的时候,会将资料的地址和值依序写到第一个Data Flash page,并且将值 写入对应地址的SRAM。如果第一个Data Flash page的空间被写满时,会将目前已写入的有效资 料(非0xFF) 从SRAM整理到第二个Data Flash page,并清除第一个Data Flash page。
使用SRAM来存放资料,可以减少从Data Flash读取资料的时间;当Data Flash page写满要将资 料整理到下一个Data Flash page的时候,直接从SRAM读出资料,无须从Data Flash中寻找需要 的资料,能够节省搜寻Data Flash中有效资料的时间。
Counter值能夠帮助使用者了解,目前已经使用过的可擦写次数。使用者可以有效掌握剩余的可 靠擦写次数,推算产品的可用年限。

使用特权

评论回复
捉虫天师|  楼主 | 2018-4-18 09:32 | 显示全部楼层
写入资料
当使用者有资料写入的时候,首先比对是否已与SRAM中的资料相同。如果资料相同,则不需要 执行写入,略过写入资料步骤;如果资料不同,则需要更新资料。
资料写入时,会同时写入到Data Flash和SRAM,接着判断目前使用的Data Flash page是否已经 写满。如果还有未写入的空间,就指向下一个地址;如果Data Flash page已经写满,则将SRAM 中有效的资料(非0xFF)写入下一个调用的Data Flash page储存。
相对于一般需要搜寻整个Data Flash page的方式,直接从SRAM中写入有效资料,可以大幅缩 短,当目前Data Flash page已经写满,要调用下一个Data Flash page的时间。
如果目前使用的Data Flash page已经是可调用的最后一个Data Flash page,就将Counter增加 计数1,再将SRAM中有效的资料(非0xFF)写入第一个可调用的Data Flash page。
使用者可以读取Counter的值,了解目前已经使用过的可擦写次数。
完成资料写入后,清除已写满的Data Flash page。当有新的资料需要写入的时候,将写入新的 Data Flash page。

使用特权

评论回复
ylslib| | 2018-4-30 13:47 | 显示全部楼层
捉虫天师 发表于 2018-4-18 09:30
这个教程非常完美。

吸血分享,这是M051的 Data Flash模拟eeprom吗?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

174

主题

2992

帖子

7

粉丝