nandflash原理及硬件操作
我们先看下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数据命令如下
跟上面的输出是一样的
nandflash原理及硬件操作相关推荐
- linux系统下操作nandflash指令,Linux驱动之Nand Flash原理及硬件操作
Nand Flash 是一个存储芯片 那么:这样的操作很理" 读地址A的数据,把数据B写到地址A" 问1:原理图上的Nand Flash和SC2440之间只有数据线,怎么传输地址? ...
- Nandflash原理W29N02GVS1AA
1:开发环境 芯片:NUC977 控制器:FMI flash芯片:W29N02GVS1AA 2:Nandflash原理 2.1 命名含义 2.2 引脚含义 CE :chip Enable 片选信号 低 ...
- 嵌入式开发板硬件操作入门学习0——电路图概念 硬件接口的四大类
电路图概念 术语: sch:schematic,原理图 PCB:Printed Circuit Board,印刷电路板 footprint:脚印.足迹,表示元件在电路板上的外形 component:元 ...
- kmeans算法原理以及实践操作
原文:http://www.cnblogs.com/dudumiaomiao/p/5839905.html kmeans算法原理以及实践操作(多种k值确定以及如何选取初始点方法) kmeans一般在数 ...
- [RabbitMQ]RabbitMQ原理与相关操作(一)
2019独角兽企业重金招聘Python工程师标准>>> RabbitMQ原理与相关操作(一) 小编是菜鸟一枚,最近想试试MQ相关的技术,所以自己看了下RabbitMQ官网,试着写下自 ...
- 关于C语言的指针、链表的原理和各类操作
今天课上我们老师为我们讲述了c语言的指针.链表的原理以及各类操作. 一.指针 1.指针 指针是一个存储计算机内存地址的变量.从指针指向的内存读取数据称作指针的取值.指针可以指向某些具体类型的变量地址, ...
- 可见光通信 调制解调技术 家庭机器人 可见光通信应用 原理及硬件方案
可见光通信原理及硬件方案 可见光通信基本原理在正常照明前提下,将信息调制到LED灯发出的可见光中,接收端利用光电检测器(PD)将可见光并转换为电信号,并从中解调出相应的调制信息. 基于可见光通信,太速 ...
- 【我所认知的BIOS】—Advanced Configuration and Power Interface原理(硬件部分)
[我所认知的BIOS]->Advanced Configuration and Power Interface原理(硬件部分) LightSeed 2/24/2014 ACPI是一个内容很丰富的 ...
- Eth08-EthCtrlConfig:以太网控制器的硬件操作的timeout值配置
文章目录 1 EthCtrlConfig:以太网控制器的硬件操作的timeout值配置 传送门 ==>> AutoSAR入门和实战系列总目录 1 EthCtrlConfig:以太网控制器的 ...
最新文章
- Ubuntu 14.04上使用CMake编译MXNet源码操作步骤(C++)
- floyd算法_最短路径的算法:Floyd算法
- NSString类详解
- python代码规范 自动优化工具Black
- BZOJ 1009: [HNOI2008]GT考试(kmp+dp+矩阵优化)
- VC++编译zlib
- 计算机应用基础dos,计算机应用基础2(带答案)
- shell调用python函数 参数 返回_Python之系统shell交互(subprocess)
- 【pytorch】torch 查看GPU
- matlab 形态学 颗粒_数字图像处理Matlab-形态学图像处理(附代码)
- Android 一直往文件写数据_( 十 ) 小众但好用:通过 Google drive 备份与同步 Keepass 数据库...
- wmode解决flash透明及层深问题
- C#编写简易的学生成绩查询
- hp t410微型计算机使用,HP 发表新款 t410 AIO Smart Zero 精简型电脑,仅需网络线即可作为电源驱动使用...
- 既是手机直播投屏工具又是安卓模拟器?游戏主播和手游玩家都来了解一下
- pdf2cad v12
- AIMD吞吐量公式的推导
- 大会没看够?2021 Google 开发者大会总结看这里
- 想提高团队技术,来试试这个套路!
- P4 程序设计语法学习
热门文章
- 招商银行信用卡中心一面
- 有个这样的程序猿男友你是否愿意嫁给他呢?
- SpringBoot 项目文件上传过大报错不返回解决方案
- 浏览器返回数据量过大报‘failed to load response data: Request content was evicted from inspector cache’
- 戴尔win10开机后,在桌面点右键一直转圈,但任务栏又能正常点击
- unity 摄像头跟着鼠标移动_unity第三视角移动,摄像机跟随
- Linux主机安全配置
- 图片文档扫描矫正处理(手机扫描仪),OCR识别,图片修改库整合
- mtkgpio中断控制器_MT2523芯片参考手册
- 电脑显示wifi连接但是不能上网(dns无法连接)