【FLASH存储器系列十二】Nand Flash芯片使用指导之二

news/2024/5/3 22:28:30/文章来源:https://blog.csdn.net/highman110/article/details/128039906

      

目录

1.1 芯片指令集

1.2 READ PAGE(00h–30h)

1.3 READ PAGE CACHE SEQUENTIAL (31h)

1.4 READ PAGE CACHE RANDOM (00h-31h)

1.5 PROGRAM PAGE(80h-10h)

1.6 PROGRAM PAGE CACHE (80h-15h)

1.7 ERASE BLOCK (60h-D0h)


 

        上一篇分享了MT29F8G08AJADAWP芯片的功能特性,今天继续分享此芯片的相关操作指令。

1.1 芯片指令集

        芯片支持ONFI 1.0的相关指令,如下图所示。

        下面挑选几项常用指令进行分析。

1.2 READ PAGE(00h–30h)

        READ PAGE(00h–30h):读page命令将页面从NAND闪存阵列复制到其各自的缓存寄存器,并启用数据输出(注意没有经过数据寄存器)。当裸片(LUN)准备就绪(RDY=1,ARDY=1)时,才能接受读命令。要从NAND闪存阵列读取页面,先将00h命令写入命令寄存器,然后将n个地址周期写入地址寄存器,并以30h命令结束。当数据从存储阵列传输到缓存寄存器时,选定的裸片(LUN)将在tR内为busy状态(RDY=0,ARDY=0)。主机判断数据传输是否准备好有两种办法,一是通过监控R/B#,二是可以通过读状态命令(70h,78h)判断,当读到RDY = 1, ARDY= 1时,主机需要再发送READ MODE(00h)命令禁用状态输出并启用数据输出,当主机请求数据输出时,输出从指定的列地址开始。

        数据输出时RANDOM DATA READ (05h-E0h)命令可以被执行。

        当内部ECC使能时,在数据传输完成时要使用READ STATUS (70h)命令来判断是否发生了传输错误。

        当芯片有多个裸片(LUN)时,在执行die间交错操作之时,在在发出READ MODE(00h)命令之前,必须使用READ STATUS ENHANCED(78h)命令来选中其中一个die,以避免总线冲突。

       如下为读page操作时序图:

        如下为带内部ECC的读操作时序图

1.3 READ PAGE CACHE SEQUENTIAL (31h)

        READ PAGE CACHE SEQUENTIAL (31h):此命令在当前页从缓存寄存器输出时,将block内的下一页数据读取到数据寄存器中(注意这里有数据寄存器,数据寄存器和缓存寄存器不是一个东西)。当裸片(LUN)准备就绪(RDY=1,ARDY=1)时,该命令可以被接受。在读取页面缓存(31h,00h-31h)操作(RDY=1和ARDY=0)期间,该命令也可以被接受。

        将31h写入命令寄存器,发出此命令后,R/B#变为低电平,裸片(LUN)在tRCBSY时间内处于繁忙状态(RDY=0,ARDY=0)。tRCBSY之后,R/B#变为高,裸片(LUN)忙于缓存操作(RDY=1,ARDY=0),这表明缓存寄存器可用,并且指定的页正在从NAND闪存阵列复制到数据寄存器。此时,数据可以从缓存寄存器的列地址0开始输出。随机数据读取(05h-E0h)命令可以用于更改从缓存寄存器输出的数据的列地址。

        READ PAGE CACHE SEQUENTIAL(31h)命令可用于跨越block边界。如果在当前block的最后一页读入数据寄存器之后发出读取页缓存序列(31h)命令,则读取的下一页将是下一个逻辑block中的page。如果是跨die读取,则此命令无法实现,应使用READ PAGE CACHE LAST(3Fh)命令。

        如下为顺序读缓存页时序图:

1.4 READ PAGE CACHE RANDOM (00h-31h)

        READ PAGE CACHE RANDOM (00h-31h):此命令将指定的块中的页读入数据寄存器,同时从缓存寄存器输出前一页。当die(LUN)准备就绪(RDY=1,ARDY=1)时,该命令被接受。在读取页面缓存(31h,00h-31h)操作(RDY=1和ARDY=0)期间,它也可以被(LUN)接受。

        要发出此命令,需将00h写入命令寄存器,然后将n个地址周期写入地址寄存器,最后将31h写入指令寄存器。指定地址中的列地址将被忽略。裸片(LUN)地址必须与先前的READ PAGE(00h-30h)命令或先前的READPAGE CACHE RANDOM(00h-31h)命令(如果适用)匹配。

        发出此命令后,R/B#变为低电平,在tRCBSY时间段内,die(LUN)处于繁忙状态(RDY=0,ARDY=0)。tRCBSY之后,R/B#变为高,die(LUN)忙于缓存操作(RDY=1,ARDY=0),这表明缓存寄存器可用,并且指定的页正在从NAND闪存阵列复制到数据寄存器。此时,数据可以从缓存寄存器的列地址0开始输出。随机数据读取(05h-E0h)命令可以用于更改从缓存寄存器输出的数据的列地址。

        如下为随机读缓存页时序图:

1.5 PROGRAM PAGE(80h-10h)

        PROGRAM PAGE(80h-10h):此命令使主机能够向缓存寄存器输入数据,并将数据从缓存寄存器移动到选定die(LUN)阵列中的指定块和页地址。当裸片(LUN)准备就绪(RDY=1,ARDY=1)时,该命令可以被接受。当裸片(LUN)忙于编程页面缓存(80h-15h)操作(RDY=1,ARDY=0)时,它也可以被接受。

        要将页数据输入缓存寄存器并将其移动到指定块和页面地址的NAND阵列,需将80h写入命令寄存器。除非此命令前面有PROGRAM PAGE TWO-PLANE(80h-11h)命令,否则向命令寄存器发出80h将清除选定目标上的所有缓存寄存器内容。然后写入包含列地址和行地址的n个地址循环。随后是数据输入周期。串行数据从指定的列地址开始输入。在数据输入周期的任何时间,可以发出随机数据输入(85h)和内部数据输入程序(85h)命令。数据输入完成后,将10h写入命令寄存器。传输数据时,选定LUN将变忙(RDY=0,ARDY=0)tPROG的时间。

        为了确定数据传输的进度,主机可以监视目标的R/B#信号,也可以使用状态操作(70h、78h)。当裸片(LUN)就绪(RDY=1,ARDY=1)时,主机应检查FAIL位的状态。

        在具有多个裸片(LUN)的芯片中,在交错裸片(多LUN)操作期间和之后,必须使用READ STATUS ENHANCED(78h)命令仅选择一个裸片进行状态输出。使用READ STATUS(70h)命令可能会导致多个裸片(LUN)响应,从而导致总线争用。

        PROGRAM PAGE(80h-10h)命令为双平面编程操作的最终命令。前面是一个或多个PROGRAM PAGE TWO-PLANE(80h-11h)命令。数据从所有寻址平面的高速缓存寄存器传输到NAND阵列。主机应使用状态操作(70h、78h)检查操作状态。启用内部ECC时,阵列编程时间的持续时间为tPROG_ECC。在tPROG_ECC期间,当错误检测完成时,内部ECC生成奇偶校验位。

        如下为页编程时序图:

1.6 PROGRAM PAGE CACHE (80h-15h)

        PROGRAM PAGE CACHE (80h-15h):此命令下主机将输入数据到缓存寄存器,芯片将缓存寄存器的中的数据复制到数据寄存器,然后将数据寄存器的数据移动到选中的存储阵列page中。在数据复制到数据寄存器中后,缓存寄存器可以支持下一个PROGRAM PAGE(80h-10h)和PROGRAM PAGE CACHE (80h-15h)命令,当裸片(LUN)准备就绪(RDY=1,ARDY=1)时,它可以接受PROGRAM PAGE CACHE(80h-15h)命令。当PROGRAM PAGE CACHE(80h-15h)命令操作执行期间,裸片(LUN)也可以接受此命令(就是指数据复制到数据寄存器中后,可以再发此命令往缓存寄存器写数据,这个操作不受上一页数据从数据寄存器移动到存储阵列的影响)。

        要将数据输入到缓存寄存器并将其移动到指定块和页面地址的NAND阵列,需将80h写入命令寄存器。除非此命令前面有PROGRAM PAGE TWO-PLANE(80h-11h)命令,否则向命令寄存器发出80h将清除选定目标上的所有缓存寄存器内容。

        然后写入包含列地址和行地址的n个地址循环。随后是数据输入周期。数据将从指定的列地址开始输入。在数据输入周期的任何时间,可以发出随机数据输入(85h)和内部数据输入程序(85h)命令。当数据输入完成时(指的是输入到缓存寄存器完成,这段时间为tCBSY),此时将15h写入命令寄存器,在tCBSY这段时间内,所选LUN将处于繁忙状态(RDY=0,ARDY=0),以允许数据寄存器被上一个页缓存编程命令所用,将数据从缓存寄存器复制到数据寄存器,然后开始将数据寄存器内容移动到指定的页和块地址。

        如下为页缓存编程时序图:

1.7 ERASE BLOCK (60h-D0h)

        ERASE BLOCK (60h-D0h):此命令可以擦除指定的block。在die准备好(RDY = 1, ARDY = 1)时命令可以被接受。

        要擦除块,先将60h写入命令寄存器。然后写入包含行地址的三个地址周期,列地址忽略。最后将D0h写入命令寄存器。擦除块时,选定的裸片(LUN)将在tBERS时间段内处于忙(RDY=0,ARDY=0)状态。

        如下为块擦除时序图:

        指令太多就不一一列举了,大家可以到数据手册上进行查看,今天的分享就到这里,谢谢。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_225487.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Git版本控制工具使用

文章目录1. CICD系统构成和流程1.1 CICD来源及概念1.2 Git版本控制系统2. Git操作和使用git config (基本配置操作)git clone <repo URL\> (创建仓库|拷贝已有仓库)git branch (分支相关操作- 创建|查看|删除)git checkout (操作文件和分支)git add/commit (提交和修改-保…

估值破千亿,被资本疯抢的广汽埃安会是广汽的未来吗?

最近&#xff0c;广汽埃安在新能源市场上捷报频传&#xff0c;先是宣布完成了182.94亿元的A轮融资&#xff0c;成近年国内新能源整车最大的单笔私募融资。品牌估值更是达到了震撼人心的1032.39亿&#xff0c;基本等于广汽集团AH总市值&#xff0c;也远超港股小鹏、零跑汽车的市…

【C++】Cmake使用教程(看这一篇就够了)

文章目录引言一 环境搭建二 简单入门2.1 项目结构2.2 示例源码2.3 运行查看三 编译多个源文件3.1 在同一个目录下有多个源文件3.1.1 简单版本3.1.1.1 项目结构3.1.1.2 示例代码3.1.1.3 运行查看3.1.2 进阶版本3.1.2.1 项目结构3.1.2.2 示例源码3.1.2.3 运行查看3.2 在不同目录下…

[附源码]java毕业设计游戏战队考核系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

vue拖拽删除实现

拖拽删除 背景 自营上传图片&#xff0c;但是需要排序和删除功能&#xff0c;所以用到了h5的拖拽 源元素&#xff1a; 即被拖拽的元素。 目标元素&#xff1a; 即合法的可释放元素。 每个事件的事件主体都是两者之一。 拖拽事件 触发顺序及次数 被拖拽元素&#xff0c;事…

数据结构学习笔记(Ⅳ):串

目录 1 串 1.1 定义与基本操作 1.定义 2.基本操作 1.2 串的存储结构 1.顺序存储 2.链式存储 3.基于顺序存储实现基本操作 2 串的朴素模式匹配算法 2.1 朴素模式匹配算法 2.2 KMP算法 1.优化思路 2.计算next数组 2.3 KMP算法优化 1 串 1.1 定义与基本操作 1.定义…

机器学习笔记之高斯网络(二)高斯贝叶斯网络

机器学习笔记之高斯网络——高斯贝叶斯网络引言回顾高斯网络贝叶斯网络&#xff1a;因子分解高斯贝叶斯网络&#xff1a;因子分解引言 上一节介绍了高斯网络及其条件独立性&#xff0c;本节将介绍高斯贝叶斯网络。 回顾 高斯网络 高斯网络最核心的特点是&#xff1a;随机变…

【软件测试】作为测试人,因工作与开发吵了一架碰撞,该咋办......

目录&#xff1a;导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09;前言 测试与开发在工作中…

Redis数据库redisDb源码分析

写在前面 以下内容是基于Redis 6.2.6 版本整理总结 一、组织方式 Redis服务器将所有的数据库 都保存在src/server.h/redisServer结构中的db数组中。db数组的每个entry都是src/server.h/redisDb结构&#xff0c;每个redisDb结构代表一个数据库。Redis默认有16个数据库。 1.1…

Android App开发音量调节中实现拖动条和滑动条和音频管理器AudioManager讲解及实战(超详细 附源码和演示视频)

需要源码请点赞关注收藏后评论区留下QQ~~~ 一、拖动条和滑动条 拖动条SeekBar继承自进度条ProgressBar&#xff0c;它与进度条的不同之处在于&#xff0c;进度条只能在代码中修改进度值&#xff0c;不能由用户改变进度值&#xff0c;拖动条不仅可以在代码中修改进度值&#xf…

Greenplum数据库故障排查及修复

场景一&#xff1a;gp服务正常&#xff0c;存在部分segment实例丢失 1、异常现象 主节点切换gpadmin用户输入gpstate查看状态 如果红色框内有指向左边的箭头则说明存在部分segment实例丢失。 2、排查思路 首先查看主节点日志&#xff0c;重点关注发生segment丢失那段时间的…

Kafka开发环境搭建

kafka开发环境搭建一、安装Java环境1.1、下载Linux下的安装包1.2、解压缩安装包1.3、解压后的文件移到/usr/lib目录下1.4、配置java环境变量二、 Kafka的安装部署2.1、下载安装Kafka2.2、配置和启动zookeeper2.3、启动和停止Kafka后言一、安装Java环境 1.1、下载Linux下的安装…

【web前端开发】HTML知识点超详细总结

文章目录什么是网页常用的浏览器及内核VScode和WebStrom使用HTML常用标签文档类型<!DOCTYPE>网页语言lang字符集title标签标题标签段落和换行标签文本格式化标签div和span标签图像标签路径相对路径同一级路径上一级路径:下一级路径绝对路径链接标签超链接标签外部链接:内…

(DS90UB3702TRURRQ1) LT8640SHV-2低噪声降压稳压器QFN

LT8640/LT8640-1降压稳压器采用Silent Switcher架构&#xff0c;设计用于最大限度地降低EMI/EMC辐射并在高达3MHz的频率下提供高效率。由于具有2.5μA的超低静态电流&#xff08;当输出处于全面调节状态时&#xff09;&#xff0c;因此适用于要求在非常小负载电流条件下获得极高…

【Linux】(五)GateWay远程开发方式-实验室服务器使用GateWay远程开发

Jetbrains GateWay 方式系列文章一、服务器情况简介1.1服务器及用户1.2 cuda1.3 conda环境二、Jetbrains GateWay方式连接2.1 下载2.2 配置2.3 连接管理及附加说明2.3.1 关闭或退出2.3.2 重连附录公共数据集系列文章 &#xff08;一&#xff09;服务器初次配置及安装vncserver…

【CVPR 2022】QueryDet:加速高分辨率小目标检测

大连不负众望&#xff0c;疫情了&#xff0c;我们又封校了&#xff0c;可能初步封个5678天&#xff0c;微笑jpg 论文地址&#xff1a;https://arxiv.org/pdf/2103.09136.pdf 项目地址&#xff1a;https://github.com/ ChenhongyiYang/QueryDet-PyTorch 1. 简介 背景&#xf…

基于Netty的高性能RPC框架(分布式缓存、雪花算法、幂等性)

文章目录前言介绍1. 服务提供2. 安全策略3. 设计模式亮点1. 信息摘要算法的应用2. 心跳机制3. SPI 机制4. IO 异步非阻塞5. RNF 协议快速开始1.依赖1.1 直接引入1.2 maven引入2. 启动 Nacos3. 提供接口4. 启动服务5. 启动客户端5. 额外配置5.1 配置文件5.2 日志配置6. 场景应用…

电脑录屏快捷键是什么?win10自带屏幕录制在哪

​在使用电脑的过程中&#xff0c;我们难免会遇到使用电脑录屏功能。有时候可能是想录制网课&#xff0c;有时候可能是想录制游戏的精彩操作&#xff0c;有时候可能只是想录制会议内容。 电脑录屏能够将重要的画面内容进行录制&#xff0c;十分的方便。但也有很多的小伙伴不清…

傻白入门芯片设计,IP, MCM, SiP, SoC 和 Chiplet的区别(二)

一、IP&#xff1a; 早期的复制电路都是全定制&#xff0c;比如Intel的4004cpu&#xff0c;这种设计非常耗时。考虑到cpu的很多模块有相似的地方&#xff0c;能不能把这些东西模块化&#xff1f;于是就有了IP核的概念&#xff0c;Intelligent Property&#xff0c;即知识产权核…

EPICS -- asynRecord记录使用示例

这个示例演示了如何使用asynRecord记录 1、硬件准备工作 在这里准备了一个型号为NPort 5650-8-DT的Moxa串口服务器&#xff0c;用于一根交叉DB9双母头线缆连接设备上端口2和端口3&#xff0c;使之可以相互通信。 串口服务器配置如下&#xff1a; IP地址&#xff1a;192.168…