Eeprom以BL24C512为例:
页和扇区的概念有点类似。
BL24C512的基本参数:
(1)容量为512Kbits。总共64KB,分为512个页,一个页128Byte;
(2)最高通信速率为1MHz。
最小擦除单元为:EEPROM的最小擦除单元可以是字节也可以是扇区,取决于具体的EEPROM设备和其设计。BL24C512的最小擦除单元为字节。
支持读方式:单字节读、随机读、序列读功能、跨页读。
支持写方式:字节写、页写、部分页写。
写之前是否需要擦除:否。有些eeprom可能需要擦除。
Flash以SPI FLASH---GD5F4GM5UF为例:
GD5F4GMGUF的基本参数:
(1)容量为4Gbit。
1Gbit = 1024Mbit = 1024 * 1024 * 1Kbit = 1024 * 1024 * 128KByte = 134217728Byte。
4Gbit = 134217728Byte * 4 = 536870912Byte。
所以总共512MByte,分为2048个块,每个块64扇区,一个扇区4096Byte;
2048*64*4096 = 536870912Byte = 512MByte。
最小擦除单元为:1个块。
支持读方式:支持单字节读,但不支持跨页读。有些SPI Flash支持跨页读,例如W25Q128;有些不支持跨页读,例如本例子的GD5F4G。
支持写方式:支持单字节更新,但是按页操作,因为最小的操作管理单元是页,具体可以看我的另一篇文章简单阐述关于Spi Flash最小写入单元是页还是字节的看法-CSDN博客。
能否跨页写:不能。如果只想改变SPI FLASH的某个字节:
-
读取页面数据:首先,你需要读取包含要修改字节的整个页面的数据到一个缓冲区中。
-
修改缓冲区:在缓冲区中找到要修改的特定字节,然后对其进行修改。
-
擦除页面:在将修改后的数据写回之前,你需要将整个页面擦除。SPI Flash通常不能直接在已有数据的位置上写入新数据,而是需要先擦除整个页面。
-
写入新数据:擦除完成后,将修改后的缓冲区数据写回到SPI Flash中的相应页面。
写之前是否需要擦除:是。因为GD5F4GMGUF属于NAND闪存。
编程/擦除/读取速度
- 页面编程时间:480us典型值
- 块擦除时间:典型值为3ms
- 页面读取时间:最大120us(带有ECC)
I2C按页写和单字节写的优缺点和区别:I2C总线的EEPROM24C02按页操作_eeprom的单字节写入和页写入有何区别-CSDN博客