EEPROM 和SPI flash IC通常都是用于存储数据,外观一般也差不多 8脚的。
EEPROM 和SPI flash在应用和性能上有什么区别? 如何选择存储器件?
eeprom的容量一般以kb为单位,比如我们经常用到的arduino电子积木模块DS3231时钟模块,上面同时集成了一片AT24C32芯片。AT24C32芯片就是eeprom芯片,容量32Kbit(4KB)接口为iic。外置eeprom芯片一般是作为MCU芯片内部eeprom的补充,用于存储设置参数。
SPI Flash的容量就大很多了,常见的32Mbit(4MB),我们已经在ESP8266等模块上使用过了。容量更高的甚至可以达到256Mbit(32MB)。SPI Flash可以同时存储单片机固件和用户数据。
SPI Flash最大特点是必须按块(Block)擦除, 而EEPROM则可以一次只擦除一个字节;
SPI NOR Flash可以实现芯片内执行(XIP,eXecute In Place),这样应用程序可以直接在闪存内运行,不必再把代码读到系统 RAM 中。NOR 的传输效率很高,在 1~4MB 的小容量时具有很高的成本效益。
总的来说,对与用户来说,EEPROM 和FLASH 没有大的区别,只是EEPROM 是低端产品, 容量低,价格便宜,但是稳定性较FLASH 要好一些。
EEPROM大多是IIC的,速度慢一些
SPI接口的,速度快,容量也一般大于EEPROM的
SPI flash,顾名思义,是一种flash,flash也是rom的一种,可以说是eeprom广义上的一个分支,但它有一个与传统eeprom不同的地方,就是它只能一次性写和擦出一个块,而传统的eeprom只能一次一个字节,因此独立出这种存储rom器件,名曰flash。flash比eeprom的读写速度更快、同容量成本更低,也能做到更大的容量。
SPI flash也就是通过SPI协议访问的flash设备。而eeprom通常是通过iic总线访问的
存储体类型一般分EEPROM,NOR-FLASH,NAND-FLASH.
IIC或者SPI是通信接口。
EEPROM有IIC接口,也有SPI接口(比较少),可以直接写,写入寿命通常是 100万次。
NOR或者NAND一般都是spi接口或者并口。写入前必须先擦除,擦写寿命通常是10万次。
区分主要有下面的个角度
1. 通信联系的方式,比如SPI通信和I2C通信,不同的方式有不同的通信速度
2. 本身数据模块的写入模式,一般来说,EEPROM支持按字节擦除重写,而Flash的是按块擦除重写
3. 模块容量及单位成本,现在一般来说Flash模块的容量比EEPROM的大,单位成本低
EEPROM一般是I2C控制的,允许单字节擦写,数据保存比较稳定,缺点是容量小,价格高
SPI flash用SPI控制,一次要擦写一个块,数据有可能发生位翻转,容量大,便宜
FLASH 和EEPROM的最大区别是FLASH按扇区操作,EEPROM则按字节操作,二者寻址方法不同,存储单元的结构也不同,FLASH的电路结构较简单,同样容量占芯片面积较小,成本自然比EEPROM低,因而适合用作程序存储器,EEPROM则更多的用作非易失的数据存储器。
在芯片的内电路中,FLASH和EEPROM不仅电路不同,地址空间也不同,操作方法和指令自然也不同,不论冯诺伊曼结构还是哈佛结构都是这样。技术上,程序存储器和非易失数据存储器都可以只用FALSH结构或EEPROM结构,甚至可以用“变通”的技术手段在程序存储区模拟“数据存储区”,但就算如此,概念上二者依然不同,这是基本常识问题。