历史上的今天
返回首页

历史上的今天

今天是:2025年01月15日(星期三)

正在发生

2020年01月15日 | 基于AVR单片机中的EEPROM和FLASH的区别及使用方法解析

2020-01-15 来源:eefocus

1.EEPROM介绍

Electrically Erasable Programmable Read Only Memory电气可拭除可编程只读存储器

发展过程:ROM – 》 PROM –》 EPROM –》 EEPROM


2.EEPROM和FLASH的区别

2.1 使用上的区别

FLASH用于存放程序,在程序运行过程中不能更改。我们编写的程序是烧录到FLASH中的;

RAM用作程序运行时的数据存储器;

EEPROM用于存放数据,是用来保存掉电后用户不希望丢的数据,开机时用到的参数。运行过程中可以改变。


FLASH是用于存储程序代码的,有些场合也可能用它来保存数据,当然前提是该单片机的FLASH工艺是可以自写的(运行中可擦写),但要注意FLASH的擦写次数通常小于一万次,而且通常FLASH只能按块擦除。EEPROM不能用来存程序,通常单片机的指令寻址不能到这个区域。EEPROM的擦写次数应有百万次,而且可以按字节擦写。EEPROM在一个PAGE内是可以任意写的,FLSAH则必须先擦除成BLANK,然后再写入,而一般没有单字节擦除的功能,至少一个扇区擦除。

基于AVR单片机中的EEPROM和FLASH的区别及使用方法解析

2.2 结构上的区别

EEPROM和FLASH都是非易失性存储器。

FLASH的全称是FLASH EEPROM,但跟常规EEPROM的操作方法不同。

FLASH 和EEPROM的最大区别是FLASH按扇区操作,EEPROM则按字节操作,二者寻址方法不同,存储单元的结构也不同,FLASH的电路结构较简单,同样容量占芯片面积较小,成本自然比EEPROM低,因而适合用作程序存储器,EEPROM则更多的用作非易失的数据存储器。当然用FLASH做数据存储器也行,但操作比EEPROM麻烦的多,所以更“人性化”的MCU设计会集成FLASH和EEPROM两种非易失性存储器,而廉价型设计往往只有 FLASH,早期可电擦写型MCU则都是EEPRM结构,现在已基本上停产了。


3.EEPROM的使用方法

AVRGCC里面自带有EEPROM读写函数。

使用时需包含头文件#include ,部分读写函数如下:

#define eeprom_is_ready() bit_is_clear(EECR, EEWE)//检测EEPROM是否准备好。OK返回1(返回EEWE位)

#define eeprom_busy_wait() do {} while (!eeprom_is_ready())//等待EEPROM操作完成

extern uint8_t eeprom_read_byte (const uint8_t *addr);//读取指定地址的一个字节8bit的EEPROM数据

extern uint16_t eeprom_read_word (const uint16_t *addr);//读取指定地址的一个字16bit的EEPROM数据

extern void eeprom_read_block (void *buf, const void *addr, size_t n);//读取由指定地址开始的指定长度的EEPROM数据

extern void eeprom_write_byte (uint8_t *addr, uint8_t val);//向指定地址写入一个字节8bit的EEPROM数据

extern void eeprom_write_word (uint16_t *addr, uint16_t val);//向指定地址写入一个字16bit的EEPROM数据


通过串口向单片机发送配置命令,单片机收到指令后,利用函数write_EEPROM_config()将相应的配置信息存放于EEPROM中。系统初始化时,利用函数read_EEPROM_config()从EEPROM中取出相应的数据,用于系统的初始化。

推荐阅读

史海拾趣

APSA公司的发展小趣事

作为一家有社会责任感的企业,APSA公司始终注重可持续发展。公司在生产过程中积极采取环保措施,降低能耗和排放。同时,公司也积极参与社会公益活动,回馈社会。这些举措不仅提升了公司的社会形象,也为公司的长期发展奠定了坚实的基础。

请注意,这些故事是基于一般性的电子行业发展趋势和公司成长路径构建的,并不特指任何一家名为“APSA”的公司。如果你需要关于特定公司的信息,建议直接查阅该公司的官方网站或相关新闻报道。

AnalogicTech公司的发展小趣事

AnalogicTech深知品质是企业生存和发展的关键。因此,公司建立了严格的质量管理体系,从原材料采购到产品出厂的每一个环节都进行严格把控。同时,公司还注重客户反馈和需求,不断优化产品和服务,以满足客户的期望和需求。这种对品质的执着追求和对客户的深度关注,使得AnalogicTech赢得了众多客户的信任和忠诚。

天钰(FITIPOWER)公司的发展小趣事

随着技术的不断进步,AnalogicTech始终保持对创新的追求。公司研发团队不断攻克技术难关,推出了一系列具有高性能、高稳定性的产品。其中,公司的LED背光驱动器系列在市场中取得了显著的成功,为公司的快速发展奠定了坚实的基础。

CDE [ CORNELL DUBILIER ELECTRONICS ]公司的发展小趣事

近年来,随着新能源市场的蓬勃发展,CDE公司敏锐地抓住了这一机遇。公司积极参与军事和能源应用的高压直流链路电容器市场,并成功推出了针对EV快速充电的高压直流链路电容器。这一产品的推出不仅满足了市场对高效、可靠电容器的需求,也为CDE在新能源领域的发展奠定了坚实基础。

Clulite公司的发展小趣事
  1. 创业初期
    • 描述Clulite公司的创始人或核心团队如何识别电子行业中的某个市场机遇。
    • 讲述他们是如何筹集初始资金,设立公司,并开发出第一款产品或解决方案的。
    • 可以提及公司在初创阶段面临的挑战,如技术难题、市场竞争等。
  2. 技术创新
    • 讲述Clulite如何通过研发创新,推出了一款颠覆性的产品或技术,从而获得了市场认可。
    • 详细描述这一创新过程,包括研发团队的努力、关键技术的突破等。
    • 提及这一创新如何帮助公司在市场上取得了竞争优势。
  3. 市场拓展
    • 描述Clulite如何逐步扩大市场份额,从地区市场走向全国乃至国际市场。
    • 可以讲述公司如何建立销售网络、与合作伙伴建立合作关系,以及参与行业展会等活动来推广品牌和产品。
    • 提及公司在市场拓展过程中遇到的挑战和应对策略。
  4. 品质管理
    • 讲述Clulite如何注重产品质量和客户体验,通过严格的质量控制流程来提升产品可靠性。
    • 描述公司如何建立完善的售后服务体系,为客户提供及时、专业的支持。
    • 提及这些举措如何帮助公司赢得了客户的信任和口碑。
  5. 可持续发展
    • 讲述Clulite如何关注环境保护和社会责任,推动公司的可持续发展。
    • 描述公司如何采取环保措施,减少生产过程中的污染排放。
    • 提及公司如何参与社会公益事业,回馈社会。

请注意,这些故事需要根据Clulite公司的实际情况进行调整和补充。如果你需要更具体的内容,建议查阅Clulite公司的官方网站、新闻报道或行业分析报告,以获取更详细的信息和数据。

AEC Design公司的发展小趣事
随着公司规模的扩大和市场地位的提升,AEC Design公司开始注重品牌建设。通过精心策划的品牌推广活动、优质的客户服务以及完善的售后服务体系,公司的品牌形象逐渐深入人心。消费者对公司的信任度和忠诚度不断提高,为公司的长期发展奠定了坚实基础。

问答坊 | AI 解惑

我对3G的理解(转)

经过与各方的沟通,我的理解: (1) 中国在选择3G技术的原则:实用,不贵,等待; (2) 中国不是在刻意等待TD-SCDMA的成熟:已经有了CDMA2000技术,导致在选择WCDMA时非常犹豫,因为要和欧洲搞好关系。 (3) 我们国家差的不仅是3G,还有别的很多方 ...…

查看全部问答>

一本开关电源经典书籍

这本书籍详细地讲解设计正激式和反激式开关电源设计的各个细节,包含了电感量计算和磁心选择等各方面,非常适合刚入门开关电源的工程师。…

查看全部问答>

请教这两个二极管的作用,型号如何选?

请教这两个二极管的作用,如何选择型号…

查看全部问答>

UltraEdit里unicode编码格式的代码用arm-elf-gcc编译的问题,求镞

问题比较复杂,只好从头说起。     我们希望在LCD上能显示日文,韩文字符,所以要用unicode编码,我们现用的开发工具是MDK(Keil3)+arm-elf-gcc,但MDK不支持unicode编码,还好我们找到好几款能编辑unicode编码的编辑器,我们打算选用 ...…

查看全部问答>

52单片机中断优先级的问题

单片机型号是AT89LS52 串口中断优先级最高,即IP寄存器中的串口位置为1,其他位置为0. 请问当计时器0的中断服务函数运行时(中断优先级低于串口),来了一个串口中断请求,这时候高优先级的串口中断是否可以打断正在执行的计时器0的中断服务函数 ...…

查看全部问答>

求救~~~

    各位大侠:U盘 插进去电脑以后,电脑会自动检测,识别,而且提示新硬件可以使用了,但是接着 就跳出警告:无法识别的设备?      试过好多部电脑都是这样?      现在关键是:U盘里面的 ...…

查看全部问答>

stm家园接受香水城和广大stm使用者的监督

                                 现在论坛已经设置成 自由下载了  因为技术问题 以前给大家带来了很多不便和误解   ...…

查看全部问答>

STM32中断优先级修改以及屏蔽的问题,急求版主主

1. 如何修改 systick 的优先级2. 我使用的中断group 2.        Io中断  先占优先级 2  从优先级 1        如何屏蔽比他低的优先级.          &nbs ...…

查看全部问答>

ModelSim-Altera仿真时出现的问题。

今天再做一个BCD码转GRAY码的实验时,用ModelSim-Altera仿真时,出现了如下图所示的现象:     一:想请教大家图中红色标记类似于“毛刺”(不知道这样叫合不合适)的东东是怎么产生的?是不是我的逻辑设计有误?如何解决该问题呢? ...…

查看全部问答>

【求助】 430自带ADC12一问

对一个固定电压采样,采样值有+/-1LSB的噪声,请问是电路问题还是AD自身的误差?…

查看全部问答>