前言
W25Q128 之类的Flash 很早之前就有接触,但是一直没有完整的使用,要么是测试一下硬件通了交给其他同事,要么是按照相似历程跑起来就没管。。。这次要从头到尾自己摸一遍。
从数据手册开始
最可靠的数据当然是来自数据手册,那我们的路线就是查阅数据手册,不明白的自行网络搜索脑补。
上面圈出的内容,谷歌翻译一下:
W25Q128JV 阵列被组织成 65,536 个可编程页面,每个页面 256 字节。 一次最多可以编程 256 个字节。 页可以以 16 个为一组进行擦除(4KB 扇区擦除), 128 组(32KB 块擦除)、256 组(64KB 块擦除)或整个芯片(芯片擦除)。 W25Q128JV 分别具有 4,096 个可擦除扇区和 256 个可擦除块。 4KB 的小扇区在需要数据和参数存储的应用程序中提供了更大的灵活性。
这里面设计到几个关键字
block :块
sector:扇区
page :页
byte :字节
bit:位
圈出来的内容翻译一下:
具有 4KB 扇区的灵活架构
– 统一扇区/块擦除(4K/32K/64K 字节)
– 每个可编程页面编程 1 到 256 字节
- 擦除/程序暂停和恢复
重点图
上面这张图是重点
W25Q128 共 256个块(0~255)
每个块对应16个扇区(0~15)
应用
- 读
最小单位 :字节
- 写
最小单位 :字节 ;一次最多写一页数据
- 擦除
最小单位:4KB,32KB,64KB 扇区 或者整个芯片