北京pk10开奖号码查询,pk10直播9号彩票网,北京pk10开奖直播号彩票网,北京赛车pk10直播9号彩票网,www.truly-organic.com pk10开奖

Baidu

北京pk10开奖号码查询9号彩票 万利彩票 熊猫彩票 98彩票 www.truly-organic.com博乐彩票 云鼎彩票 快赢彩票 快赢彩票 永利彩票 趣彩彩票 金巴黎彩票 广发彩票 葡京彩票 顺发彩票 鸿利彩票 聚富彩票 我赢彩票 大发彩票 财神汇彩票 苹果彩票 欢乐彩票 大唐彩票 盛兴彩票 智博彩票 环球彩票 金彩彩票 彩盈彩票 丰亿彩票 金沙彩票 www.truly-organic.com金福彩票 大运彩票 万彩会彩票 大乐购彩票 宏发彩票 八八彩票 金凤凰彩票 易发彩票 豪门会彩票 迪士尼彩票 众彩彩票 丰亿彩票 大世纪彩票 创元彩票 鑫彩网彩票 大无限彩票 利来彩票 华夏彩票 金砖彩票 大金彩票 千禧彩票 全迅彩票 菠萝彩票 大赢家彩票 华人彩票 通博彩票 万家彩票 盛世彩票 福布斯彩票 鼎盛彩票www.truly-organic.com 澳彩网彩票 东方彩票 新世佳彩票 皇冠彩票 港龙彩票 迅雷彩票 幸运飞艇开奖 幸运飞艇彩票 幸运飞艇官网 幸运飞艇技巧 幸运飞艇开户 幸运飞艇代理 幸运飞艇开奖记录幸运飞艇开奖直播 幸运飞艇开奖记录查询 www.truly-organic.com幸运飞艇投注平台 幸运飞艇计划软件 凤凰娱乐 500万彩票 E时彩 88彩票 J8彩票 5颗星彩票 W彩票网 M5彩票 天天彩票 彩客网彩票 好彩头彩票 彩票在线 www.truly-organic.com乐彩网彩票 GT彩票 投彩彩票 中华彩票 568彩票 快开彩票 18彩票 传奇彩票 网易彩票 幸运彩票 e乐彩 彩票控 状元彩票 拉菲彩票 999彩票 杏彩彩票 东方彩票 皇族彩票 qq彩票 金誉彩票 爱投彩票 人人彩票 爱购彩 众购彩票 盈彩娱乐 彩票王 非凡彩票 五洲尚合彩票 www.truly-organic.com快开彩票 彩盈线上娱乐 富利娱乐 传奇娱乐 全民彩票北京pk10开奖号码查询

新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > ADuCM3027/ADuCM3029 Flash EEPROM仿真

ADuCM3027/ADuCM3029 Flash EEPROM仿真

作者:时间:2017-06-08来源:电子产品世界

  简介

本文引用地址:/article/201706/360262.htm

  非易失性数据存储器是许多嵌入式系统的必备元件。诸如自举配置、校准常数和网络相关信息之类的数据,一般存储在电子可擦除可编程只读存储器()上。采用存储这种数据的好处是可以重写或更新器件上的单个字节,而不会影响其他位置中的内容。

  /ADuCM3029是集成闪存的超低功耗微控制器单元(MCU)。若在集成闪存上仿真EEPROM,则设计中可省去EEPROM,从而降低BOM成本。同时,软件复杂性也会降低。

  背景

  闪存通常由页阵列组成。中的一页为2 kB。写入数据之前必须擦除页面内容。擦除操作适用于整个页面,而读或写操作可针对单一可寻址位置(字节或字)执行。

  对单一可寻址位置执行读或写操作有如下挑战:

  ● 字节宽数据的读和写操作。

  ● 应能擦除或更新任意位置的数据,同时其他位置的数据保持不变,因为闪存擦除是对整页进行的。

  本应用笔记说明利用/ADuCM3029器件和内置闪存仿真EEPROM的软件,如图1所示。

  Figure 1. ADuCM3027/ADuCM3029 Internal Flash and EEPROM System Overview

  图1.ADuCM3027/ADuCM3029内置闪存和EEPROM系统概览

  图2.ADuCM3027/ADuCM3029 Flash EEPROM仿真软件结构

  工作原理

  EEPROM仿真需要闪存的一个专用部分。多数EEPROM可以在一个写命令中更新一个字节。然而,只要在两次写操作之间执行擦除序列,闪存器件便能写入多个字节并相应地更新数据。为了在闪存中仿真可读写字节的EEPROM,必须执行读取、更改、写入序列,这与EEPROM操作相似。

  本部分介绍的程序使用两个闪存页面(可扩展到两个以上的页面),然后将其划分为多个扇区并用标签加以识别。这种扇区标签提供关于当前正在处理的扇区的信息,以及写入该扇区的数据字节数。注意,每个扇区的最后一个位置保留用于扇区标签,其大小与闪存数据总线的大小相同。扇区大小和一个闪存页面中的扇区数取决于仿真的EEPROM大小。

  EEPROM

  EEPROM写入和读取函数涉及到应用程序代码输入的处理,如EEPROM数据和地址信息等。EEPROM应用程序编程接口(API)负责根据闪存接口的要求处理和提供数据与地址信息。

  写入EEPROM

  图3显示了EEPROM写操作流程图。EEPROM写操作的步骤如下:

  1. 利用find_current_sector()函数调用找到当前扇区。此搜索基于扇区标签和对应的扇区标签值;返回值为当前扇区起始地址(其为闪存中的一个物理位置)。

  2. 借助当前扇区起始地址将EEPROM地址转换为闪存地址。由于ADuCM3027/ADuCM3029闪存具有64位宽数据总线,仿真EEPROM具有8位数据总线,所以软件利用EEPROM地址确定所需的移位次数。

  3. 在所获得的闪存地址处读取数据;如果此数据等于0xFF,则屏蔽这些位以创建最低有效位(LSB)和最高有效位(MSB) 32位数据包,并对EEPROM数据执行左移位操作以形成待写入闪存的64位宽数据集。

  4. 调用write_flash()函数,对闪存控制器执行写命令。此函数的输入参数为闪存地址及LSB和MSB数据包。

  5. 对闪存成功执行写操作之后,调用update_tag()函数以更新当前扇区的扇区标签。

  如果所获得的闪存地址中已存在数据,则数据读取函数不返回0xFF。这种情况下,通过调用move2nextsector()函数将所获得闪存地址之前或之后的数据移入下一或相邻扇区。将已转换为LSB和MSB数据包的EEPROM数据写入下一扇区上的新闪存地址。这样,每次对EEPROM的一个已写位置执行写操作时,该数据就被移动到下一扇区,其位置中包含修改后的数据。

  如果新扇区位于下一页,则调用erase_flash(page_number)函数执行闪存页面擦除命令,在数据移动之后擦除前一页。所有地址寄存器均通过move2nextpage()函数更新。

  关于write_eeprom(uint16_t addr_eeprom, uint8_t data_eeprom)函数的详细信息,请参阅表1。

  读取EEPROM

  图4显示了EEPROM读操作流程图。EEPROM读操作的步骤如下:

  1. 调用read_eerprom(addr)函数以读取地址位置处存储的EEPROM值。

  2. 在应用程序代码发出的EEPROM读请求中,软件首先确定当前扇区,其中包含最新数据。利用EEPROM地址和当前扇区起始地址获得闪存地址。

  3. 利用所获得的闪存地址调用read_flash()函数以执行读命令。

  4. 处理从闪存地址接收到的64位宽数据;然后屏蔽、右移此地址的各位,并将其提供给应用程序代码。

  关于read_eeprom(uint16_t addr_eeprom)函数的详细信息,请参阅表2。

  图3.EEPROM写操作

  图4.EEPROM读操作

  擦除EEPROM

  图5显示了EEPROM擦除操作流程图。EEPROM擦除操作的步骤如下:

  1. 调用erase_eeprom()函数以擦除闪存中分配的整个EEPROM空间。

  图5.EEPROM擦除操作

  闪存中专门用于EEPROM仿真的所有页面均被擦除。因此,在应用程序代码中使用此操作时务必小心。

  关于erase_eeprom()函数的详细信息,请参阅表3。

  闪存

  ADuCM3027/ADuCM3029处理器包含128 kB和256 kB嵌入式闪存,可通过闪存控制器加以访问。嵌入式闪存具有72位宽数据总线,每次访问提供两个32位字的数据和一个对应的8位纠错码(ECC)字节。闪存组织成页面形式,每页2 kB,另有256字节保留用于ECC。

  闪存写入

  擦除闪存时,各位置1;写入数据(编程)时,选择性地将相关位清0。没有写操作能将任何位从0置1。因此,一般写访问必须前置一个擦除操作。

  锁眼写操作是一种间接写操作,其中用户代码将目标地址和数据值写入存储器映射寄存器,然后命令闪存控制器在后台执行写操作。闪存控制器仅支持通过锁眼写操作对闪存进行写访问。对写访问的这种约束使得闪存控制器能够保证写操作作为原子式双字(64位)操作正确执行。

  利用EEPROM数据创建的LSB和MSB数据包提供给锁眼数据寄存器。写命令置位后,闪存控制器启动对给定闪存地址的64位双字写操作。

  注意:不支持字(32位)、半字(16位)和字节(8位)写操作。

  关于write_flash(uint32_t addr, uint32_t lower_data, uint32_t upper_data)函数的详细信息,请参阅表4。

  闪存读取

  只有经过原子式初始化过程之后,才能读取闪存。读取闪存的结果是返回64位双字。

  闪存地址信息提供给闪存控制器,后者返回读取的数据。此数据由EEPROM接口进一步处理以实现EEPROM值。

  关于read_flash(uint32_t addr)函数的详细信息,请参阅表6。

  闪存擦除

  若在写入EEPROM期间有页面变更,则调用erase_flash(page)函数以对前一页执行页面擦除命令。擦除页面之前会发生数据移动,如上文所述。

  关于erase_flash(uint8_t PAGE)函数的详细信息,请参阅表5。

  限制

  在实际EEPROM中,若更新一个位置,只会计数一个擦除周期,然后对该特定地址执行写操作,而其他位置保持不变。

  在这个仿真EEPROM中,更新一个位置会引起数据从当前扇区移动到下一扇区,这会消耗数目为EEPROM大小的写周期。因此,每次更新一个位置时,数据便移动到下一扇区;如果该扇区位于下一页,则会发生页面擦除操作。这种行为会减少闪存的有效使用期限。

  为了克服这些限制,

  ● 选择用于仿真的EEPROM大小时应小心。小EEPROM可减少数据移动期间的写周期数,间接增加闪存的使用期限。

  ● 避免不必要的EEPROM写操作。这样可以增加闪存的有效使用期限。例如,系统仅在电源故障序列期间才需要执行写操作。正常工作期间可利用RAM缓冲器存储数据。注意,软件可处理一些对仿真EEPROM的不必要的写操作。例如,若要写入的数据为0xFF,且该特定位置的当前数据为0xFF,则不对闪存执行写操作。

  结语

  本应用笔记旨在利用ADuCM3027/ADuCM3029比对EEPROM和闪存的差异。仿真EEPROM与实际EEPROM相似,并且消除了与硅面积、输入/输出总线资源、制造成本等相关的问题。

  本应用笔记为用户提供了一个较大仿真EEPROM(64字节至1024字节)。仿真EEPROM的大小与闪存使用期限是一对矛盾,建议用户选择适当的大小以增强硬件效率。除了这种方法之外,软件也能处理一些对ADuCM3027/ADuCM3029闪存的不必要的写操作,从而有效增加使用期限。



关键词: ADuCM3027 EEPROM

评论

技术专区

关闭
pk10开奖记录 pk10开奖直播www.truly-organic.com pk10直播 pk10官网 pk10开奖 pk10论坛 pk10技巧 pk10助赢软件 pk10杀号 pk10杀号软件 pk10冠亚军玩法 pk10冠军玩法 pk10玩法攻略www.truly-organic.com pk10玩法规则 pk10中奖规则 pk10定位胆玩法 pk10彩赔率多少 pk10走势 pk10开户 pk10开奖记录百度9号彩票网 pk10开奖号码查询 pk10开奖直播 pk10计划群www.truly-organic.com pk10玩法 pk10网站 pk10玩法介绍 pk10后二 pk10改单 pk10开奖直播百度9号彩票网 pk10qq群 pk10稳赚 pk10分析软件 pk10群 pk10平台网址 pk10赚钱 pk10综合走势图www.truly-organic.com pk10遗漏 pk10人工计划 pk10投注技巧 pk10直播百度9号彩票网 pk10开奖时间 pk10评测 pk10平台评测网 pk10网站制作 pk10现场开奖 pk10官方开奖www.truly-organic.com pk10地址 北京赛车pk10开奖记录 北京赛车pk10开奖直播 北京赛车pk10直播 北京赛车pk10官网 pk10官网百度9号彩票网 北京赛车pk10开奖 北京赛车pk10论坛 北京赛车pk10技巧 北京pk10玩法规则 北京赛车pk10助赢软件 北京赛车pk10杀号 北京赛车pk10杀号软件 北京赛车pk10冠亚军玩法 北京赛车pk10冠军玩法www.truly-organic.com 北京赛车pk10玩法攻略 北京赛车pk10中奖规则 pk10开奖百度9号彩票网 pk10论坛百度9号彩票网 北京赛车pk10定位胆玩法 北京赛车pk10彩赔率多少 北京赛车pk10走势 北京赛车pk10开户 北京赛车pk10开奖号码查询 北京赛车pk10开奖直播 北京赛车pk10计划群 北京赛车pk10玩法 北京赛车pk10网站www.truly-organic.com pk10技巧百度9号彩票网 pk10助赢软件百度9号彩票网 pk10杀号百度9号彩票网 pk10杀号软件百度9号彩票网 北京赛车pk10玩法介绍 北京赛车pk10后二 北京赛车pk10改单 北京赛车pk10qq群 北京赛车pk10稳赚 北京赛车pk10分析软件 北京赛车pk10群 北京赛车pk10平台网址 pk10玩法规则百度9号彩票网www.truly-organic.com pk10中奖规则百度9号彩票网 pk10定位胆玩法百度9号彩票网 北京赛车pk10赚钱 北京赛车pk10综合走势图 北京赛车pk10遗漏 北京赛车pk10人工计划 北京赛车pk10投注技巧 北京赛车pk10开奖时间 北京赛车pk10评测 北京赛车pk10平台评测网 北京赛车pk10网站制作 pk10走势百度9号彩票网 北京赛车pk10现场开奖www.truly-organic.com 北京赛车pk10官方开奖 北京赛车pk10地址 北京pk10开奖记录 北京pk10开奖直播 北京pk10直播 北京pk10官网 北京pk10开奖 北京pk10论坛 北京pk10技巧 北京pk10玩法规则 北京pk10助赢软件 北京pk10杀号 北京pk10杀号软件 pk10开户百度9号彩票网www.truly-organic.com 北京pk10冠亚军玩法 北京pk10冠军玩法 北京pk10玩法攻略 北京pk10中奖规则 北京pk10定位胆玩法 pk10冠军玩法百度9号彩票网 北京pk10彩赔率多少 北京pk10走势 北京pk10开户 北京pk10开奖号码查询 北京pk10开奖直播 pk10彩赔率多少百度9号彩票网 北京pk10计划群 北京pk10玩法 北京pk10网站www.truly-organic.com 北京pk10玩法介绍 北京pk10后二 北京pk10改单 北京pk10qq群 北京pk10稳赚 北京pk10分析软件 北京pk10群 北京pk10平台网址 北京pk10赚钱 pk10冠亚军玩法百度9号彩票网 pk10玩法攻略百度9号彩票网 北京pk10综合走势图 北京pk10遗漏 北京pk10人工计划 北京pk10投注技巧 北京pk10开奖时间 北京pk10评测www.truly-organic.com 北京pk10平台评测网 北京pk10网站制作 北京pk10现场开奖 北京pk10官方开奖 北京pk10地址 北京赛车pk拾开奖记录 北京赛车pk拾开奖直播 北京赛车pk拾直播 北京赛车pk拾官网 北京赛车pk拾开奖 北京赛车pk拾论坛 北京赛车pk拾技巧 北京pk10玩法规则 北京赛车pk拾助赢软件 北京赛车pk拾杀号www.truly-organic.com 北京赛车pk拾杀号软件 北京赛车pk拾冠亚军玩法 北京赛车pk拾冠军玩法 北京赛车pk拾玩法攻略 北京赛车pk拾中奖规则 北京赛车pk拾定位胆玩法 北京赛车pk拾彩赔率多少 北京赛车pk拾走势 北京赛车pk拾开户 北京赛车pk拾开奖号码查询 北京赛车pk拾开奖直播 北京赛车pk拾计划群 北京赛车pk拾玩法 北京赛车pk拾网站 北京赛车pk拾玩法介绍www.truly-organic.com 北京赛车pk拾后二 北京赛车pk拾改单 北京赛车pk拾qq群 北京赛车pk拾稳赚 北京赛车pk拾分析软件 北京赛车pk拾群 北京赛车pk拾平台网址 北京赛车pk拾赚钱 北京赛车pk拾综合走势图 北京赛车pk拾遗漏 北京赛车pk拾人工计划 北京赛车pk拾投注技巧 北京赛车pk拾开奖时间 北京赛车pk拾评测 北京赛车pk拾平台评测网www.truly-organic.com 北京赛车pk拾网站制作 北京赛车pk拾现场开奖 北京赛车pk拾官方开奖 北京赛车pk拾地址