Nand Flash 是一个存储芯片

那么:这样的操作很理“ 读地址A的数据,把数据B写到地址A”

问1:原理图上的Nand Flash和SC2440之间只有数据线,怎么传输地址?

答:在Data0-Data7上既传输数据,又传输地址,当ALE为高电平时传输的是地址

问2:从Nand Flash芯片手册可知,要操作Nand Flash需要先发出命令,怎么传入命令。

答:在Data0-Data7既传输数据,又传输地址,也传输命令

当ALE为高电平时传输的是地址

当CLE为高电平时传输的是命令

当ALE和CLE为低电平时传输的是数据

问3:数据线既接到Nand Flash,也接到NOR Flash,还接到SDRAM等等,怎么避免干扰?

答:这些设备,要访问之前必须选中

没有选中的芯片不会工作,相当于没有接一样

问4:假设烧写Nand Flash,把命令、地址、数据发给它之后,Nand Flash肯定不可能瞬间完成烧写的,怎么判断烧写完成?

答:通过状态引脚RnB来判断:它为高电平表示就绪,它为低电平正忙。

怎么操作Nand Flash呢?

答:根据Nand Flash的芯片手册,一般的过程是:

发出命令

发出地址

读写数据

以上操作可以从时序图上得到

我们先看下nandflash的布线

有data0 到data7 八根数据线

nandflash是个存储芯片,那我提出请求:读地址a的数据,把数据b写到a地址上去

那么我们看原理图只看到data0-data7,没有看到地址引脚,那怎么把地址传给我们的开发板

复用,这几个引脚即传数据也传地址

怎么分别是数据还是地址呢,有个ALE信号,当ALE是高电平时,传输的是地址

但是它不仅只传输地址和数据,还传输命令,在nand flash芯片手册可知,要操作nandflash要先发出命令,只有八条数据线,怎么传输命令呢???

当CLE为高电平的时候传输的就是命令,当ALE和CLE都为低电平的时候传输的是数据。

这个data0 有的开发板不仅仅只接nandflash,还有的接norflash等等非常多的地方

数据线 地址线等即接到nandflash,也接到norflash,还接到sdram,DM9000等等。怎么避免干扰,比如说我访问nandflash的时候,norflash就不要给我提供数据

你就要相当与没接一样,怎么避免干扰呢???

就是通过这些设备要访问之前,必须选中,什么叫选中呢,他们都有片选信号,就要我们的片选引脚变为低电平选中,就是cs引脚,没有选中的芯片不会工作,相当于没接一样

假设烧写nandflash,把数据、命令、地址发给他之后,nandflash肯定是不可能瞬间完成的,怎么判断烧写完成,通过状态引脚RnB来判断,它为高电平表示完成就绪。为低电平表示正忙

we和re就是读写信号..

怎么操作nandflash

根据nandflash的芯片手册,一般过程是:发出命令,发出地址,读写数据。

nandflash的命令表格如下

我们往下看,拿个例子来看,读ID这个例子的时序图

每个nandflash都会内嵌ID,比如厂家ID啊等等。

时序图 横轴是时间,时序图怎么看呢 ,从左往右看。纵向方向就是一列一列 来看

然后可以看到发出命令 90,怎么知道的 ,在数据线上发出90这个值,怎么知道它是命令的,就是CLE是高电平。然后给它一个写脉冲。这个写信号的上升沿nandflash就会把数据存进来,它就知道了我是一个命令。

然后接着发出一个0地址,然后就可以读数据了

对于我们芯片来说里面集成了一个nandflash控制器,内部接线。它帮我们简化了这些操作,

nandflash  芯片(rus5pv210)

选中芯片

发命令的操作CLE变为高电平把命令值写到NFCMD寄存器里就可以了

在data0-data7输出命令值

提供一个写脉冲

选中芯片

发地址ALE输出高电平

在data0-data7输出地址值把地址写入NFADDR寄存器里就可以了

提供一个写脉冲

选中芯片

发数据ALE,CLE输出低电平

在data0-data7输出数据的值把地址写入NFDATA寄存器里就可以了

提供一个写脉冲

选中芯片

读数据发出一个读脉冲

读data0-data7的数据

我们可以用uboot体验nandflash的操作

1.读ID,时序图在上面

选中

发出0x90命令

发出地址0x00

读第一个数据会得到0xEC

读第二个数据得到device code

选中的话芯片手册的nand flash章节 可以知道

选为0为选中

发出命令就是把命令写到下面这个寄存器里面去

同理 地址和数据也是一样寄存器如下

但是在uboot里面怎么操作呢

uboot里面有命令可以读内存的

md.w 0xB0E0_0004 1 这命令表示读 0xb0e00004 读一次

mw.w 是写命令

md 内存显示 b是以字节为单位,w是以2字为单位,l是以四字节为单位

读ID命令流程如图

读出dc

我们验证一下  nandflash里面读ID下面就有这张图

结束读ID的命令 就是NFCMD 寄存器等于0xff 就是命令的reset

2.读数据

我们可以根据uboot的nand dump 0命令读取0地址的数据

我们来一下nandflash读操作的时序图

为什么中间有五个地址

看容量

读00数据命令如下

跟上面的输出是一样的

linux系统下操作nandflash指令,Linux驱动之Nand Flash原理及硬件操作相关推荐

  1. linux 内核 scsi底层驱动程序,Linux系统下基于SCST的SCSI_Target驱动设计.doc

    Linux系统下基于SCST的SCSI target驱动设计 摘要 随着信息数字化的深入发展,数据存储的需求日益增长.存储虚拟化带给我们最直接的益处就是,提高存储利用率,降低成本,简化存储管理,而基于 ...

  2. linux系统下的ps指令详解

    文章目录 一.引言 二.初探ps指令 三.第二部分:进程信息解读 四.第三部分:进程过滤与排序 五.第四部分:实例应用与总结 一.引言 在Linux系统中,有许多命令可以帮助我们监控和管理系统中正在运 ...

  3. linux系统下王者荣耀,在Linux下可用Wine安装和运行腾讯手游助手、王者荣耀电脑版...

    在Linux操作系统下可用Wine安装和运行腾讯手游助手.王者荣耀电脑版.exe文件,它们是Windows下的软件,在Linux中借助Wine就可以使用腾讯手游助手和王者荣耀电脑版了,已亲测有效. 说 ...

  4. linux系统下安装游戏,在Linux系统下安装GameHub来管理所有游戏

    本文将介绍在Linux操作系统下安装GameHub,并且使用它来管理所有游戏,包括使用GameHub安装游戏. 简介 GameHub是一个统一的游戏库,允许在GNU/Linux系统上查看.安装.运行和 ...

  5. linux系统下查看cpu功耗,Linux系统下查看CPU信息

    Linux系统下查看CPU信息 查看CPU信息(型号): # cat /proc/cpuinfo| grep name | cut -f2 -d: | uniq -c 8 Intel(R) Xeon( ...

  6. linux系统下io的过程,Linux系统基础知识:IO调度

    Linux系统基础知识:IO调度 IO调度发生在Linux内核的IO调度层.这个层次是针对Linux的整体IO层次体系来说的.从read()或者write()系统调用的角度来说,Linux整体IO体系 ...

  7. linux系统下删除vsftp用户,Linux下VsFTP和ProFTP用户管理高级技巧 之一

    Linux下VsFTP和ProFTP用户管理高级技巧 FTP服务时互联网上比较古老的一种应用,至今Interner应用面非常广泛,但令管理员头痛不已的是其用户管理,既多且杂,如何解决这一问题呢?使用M ...

  8. linux系统下添加中文字体,linux添加中文字体

    Linux系统添加中文字体 从windows系统的字体目录(一般为C:\WINDOWS\Fonts)下拷贝字体文件, 比如:simsun.ttc,到linux目录下,如/usr/share/fonts ...

  9. linux系统下监控录像软件,Linux系统资源监控-Linux系统资源监控工具(LinuxSysMonitor)下载-西西软件下载...

    Linux系统资源监控工具(LinuxSysMonitor),吾爱大神原创制作的一个Linux系统资源监控工具,整合了多套命令系统,用户需要在JDK环境下调用该工具才能顺利运行,可以查看磁盘速度,CP ...

最新文章

  1. java编程题有难度的_算法与编程面试题 不喜勿喷 难度指数:*****...
  2. java正则表达式 分词_[Java]使用正则表达式实现分词
  3. angularJS前端分页插件
  4. 软件测试 接口测试 入门Jmeter 接口关联 提取器 断言 与fiddler配合使用 使Jmeter录制和创建脚本 操作数据库 持续集成测试
  5. 第一章计算机视觉引论
  6. Android提取分区镜像命令,Android取证:使用ADB和DD对文件系统做镜像
  7. 高速CAN收发器TJA1043的状态机
  8. 中国“脑计划”研究正在悄然布局
  9. Burp Suite设置浏览器代理
  10. 五轴转台哪家质量比较好?
  11. 用JAVA awt实现Image Asset Studio生成圆形或圆角矩形图片功能
  12. iOS 项目源码大全 github 国内外大神
  13. 免费的思维导图软件哪个好?这篇文章告诉你
  14. html短信验证代码是什么意思,如何让验证码显示出来 在手机找到短信选项并进入...
  15. php鼠标悬停显示图片,HTML CSS 实现鼠标悬停时图片拉近效果
  16. 3ds max 2012 VRay 2.0-效果图设计与制作-VRay运动模糊设置
  17. 计算机网络中和通信相关,计算机网络和通信基础知识
  18. 王者营地显示主宰进攻服务器,王者荣耀必备知识点 暴君主宰及野区兵线刷新时间...
  19. Outlook 2016 pst/ost邮件数据文件迁移实现(默认存储路径修改)
  20. Kiwi,BDD行为测试框架--iOS攻城狮进阶必备技能

热门文章

  1. C语言输出国际象棋的棋盘
  2. Android常用RGB值以及中英文名称
  3. ps快速去掉图中的字
  4. webpack-图片配置
  5. 【Milvus的以图搜图】
  6. GPU用GT1030与I3-8100之速度对比
  7. 网络小说写作套路_关于网络写作的6个常见问题,已回答
  8. android 静音与振动
  9. python 解决问题的集合-No JSON object could be decoded
  10. NB-IoT下行链路简单实现