打印

w25x16 FLASH芯片调试心得

[复制链接]
1362|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
吃饱了不饿|  楼主 | 2014-7-17 14:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 吃饱了不饿 于 2014-7-17 19:18 编辑

   这两天在学习使用FLASH存储芯片,用的是华邦W25X16这款16Mbits存储器,作为初学者,我感觉到了和EEPROM存储存在的一些有趣的差别,分享一下。如果有新发现,会在此继续补充。虽然很基础,望勿喷;如有描述有误,也望不吝指正。

   X16共16Mbits的空间,是一个整体,并引入页page,扇区sector,块block的概念,256B为一页page,16页page为一扇区sector,16扇区为一块block.
1.在写入数据时,使用页编程指令(02h),但在写入数据前必须要用扇区擦除指令(20h)将要写入数据的目标页page进行擦除,使得每个字节变为0xFF,而后在这些字节上写入用户数据,也就是说,如果说某扇区擦除后,只需存储2个数据比如0x11,0x22,那么该页中剩余的254个字节值全是0xFF,而不是0x00;如果在上述0x11所在地址写入新数据0x33,则该地址上此时数据不是0x33,而是与先前值相与,0x11&0x33得到0x11,所以要重新写入数据0x33,必须擦除扇区使之全变为0xFF后,再写入新数据。

2.读出数据时,使用读数据指令(03h),向X16送入该指令后,再送入一内部地址比如Addr,之后X16芯片会将此地址Addr上的数据准备好,用主MCU的SPI接口读出即可,读出后,X16会自动将下一个地址Addr+1的数据准备好以供主MCU读出。由此,使用一个读数据指令即可使FLASH存储器连续送出连续存储的一块数据了。

相关帖子

沙发
zhaoyu2005| | 2014-7-17 17:18 | 只看该作者
在已经写过数据的地方再写数据,结果应该是之前的数据和新数据与的结果。Flash擦除可以将位从0改为1,普通写入数据只能将1变成0

使用特权

评论回复
板凳
吃饱了不饿|  楼主 | 2014-7-17 19:17 | 只看该作者
zhaoyu2005 发表于 2014-7-17 17:18
在已经写过数据的地方再写数据,结果应该是之前的数据和新数据与的结果。Flash擦除可以将位从0改为1,普通 ...

按你的说法试了一下,果然是旧值和新值相与,学习了:handshake

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

21

帖子

1

粉丝