行情
HOME
行情
正文内容
nand flash操作 Nand Flash操作原理及裸机程序分析——FLASH操作原理
发布时间 : 2024-10-06
作者 : 小编
访问数量 : 23
扫码分享至微信

Nand Flash操作原理及裸机程序分析——FLASH操作原理

来源:韦东山嵌入式专栏_ARM裸机加强版维基教程

作者:韦东山

本文字数:1056,阅读时长:10分钟

NAND_FLASH操作原理

NAND FLASH原理图NAND FLASH是一个存储芯片那么: 这样的操作很合理”读地址A的数据,把数据B写到地址A”

问1. 原理图上NAND FLASH和S3C2440之间只有数据线,怎么传输地址?

答1. 在DATA0~DATA7上既传输数据,又传输地址当ALE为高电平时传输的是地址,

那么在数据线上是不是只传输数据和只传输地址呢?

我们参考NAND FLASH的芯片手册可以知道,对NAND FLASH的操作还需要发出命令,下面有个NAND FLASH的命令表格

问2. 从NAND FLASH芯片手册可知,要操作NAND FLASH需要先发出命令怎么传入命令?

答2. 在DATA0~DATA7上既传输数据,又传输地址,也传输命令:

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

问3. 数据线既连接到NAND FLASH,也接到NOR FLASH,还接到SDRAM、DM9000等等那么怎么避免干扰?

答3. 这些设备,要访问时必须”选中”,没有选中的芯片不会工作,相当于没接一样。

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

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

问5. 怎么操作NAND FLASH呢?

答5. 根据NAND FLASH的芯片手册,一般的过程是:

发出命令

发出地址

发出数据/读数据

看上面的命令表格,不容易看,我们看一下读ID的时序图,

每个NAND FLASH都内嵌一些ID(譬如:厂家ID,设备ID),时序图从左往右看,纵向放是一列一列的看。

对于我们s3c2440来说,内部集成了一个NAND FLASH控制器,2440和外设连接的简易图,如下图所示

NAND FLASH控制器,帮我们简化了对NAND FLASH的操作,下面来分析一下不使用NAND FLASH控制器和使用NAND FLASH控制器对外设NAND FLASH的操作。

发命令:

发地址:

发数据:

读数据 :

用UBOOT来体验NAND FLASH的操作:

1.读ID

下图是读操作时序图

对于存储为256M的NAND FLASH,需要28条地址线,来表示这个地址值,根据原理图可以,只用8根地址线,所以需要4个周期的地址,为了兼容更大容量的NAND FLASH,要发出5个周期的地址:(如下图所示)

2.读数据

「新品首发」STM32MP157开发板火爆预售!首批仅300套

SPI-Flash是什么?使用注意事项及常见问题

一.概念:

SPI:serial peripheral interface

串行接口设备,spi flash 就是通过串行的接口进行操作的flash存储设备

flash按照内部存储结构不同,分为两种:nor flash和nand flash。这里spi flash 属于 nor flash!

spi flash 读写较慢,次数有限制,一般用于不经常更改的存储。

早期Norflash的接口是parallel的形式,即把数据线和地址线并排与IC的管脚连接。但是后来发现不同容量的Norflash不能硬件上兼容(数据线和地址线的数量不一样),并且封装比较大,占用了较大的PCB板位置,所以后来逐渐被SPI(串行接口)Norflash所取代。同时不同容量的SPI Norflash管脚也兼容封装也更小。,至于现在很多人说起NOR flash直接都以SPI flash来代称。

二、SPI FLASH读写介绍

对flash芯片的操作,一般包括对flash芯片的擦除,编程和读取,各大厂商的SPI flash芯片都大同小异,操作命令基本是没什么变化的,当我们拿到一款芯片,要特别注意芯片的容量,操作分区等。

其实,无论是对芯片的擦除,编程还是读取操作,我们大致可以按照以下的套路来:写命令---写地址---写(读)数据。正如以下的时序图一样清晰明了,我们先把片选信号拉低,再依次写指令,地址和数据,就可以对FLASH芯片进行操作。

掌握以上方法,就可以轻松操作SPI flash芯片了,当然,对时序这种底层的操作,还需要不断学习和积累,不论是用FPGA还是MCU,最终都是为了产生时序信号,只要静下来认真理解了它,一切问题就迎刃而解了。

三.注意事项

1.不同的SPI FLASH芯片可能会提供的擦除方式:扇区擦除(4KBytes),半块擦除(32KBytes),块擦除(64KBytes),片擦除。

2.不同的SPI FLASH芯片可能会提供的编程方式(也就是写数据):页编程(256Bytes),扇区编程(4KBytes)。

3.SPI FLASH如果擦除过,在往里面写0xFF这样的数据意义不大,因为它的特性就是擦除后数据就是0xFF。

4.写入flash时,只能把数据(bit)从1该为0。

5.传统的EEPROM的特点就是可以随机访问和修改任何一个字节,可以往每个bit中写入0或1。而写入flash时,只能把数据(bit)从1该为0。但是传统的EEPROM容量因成本的缘故收到限制,绝少有超过有512K的。

6.Nor Flash容量相对小,成本高,基本没坏块,数据线和地址线分开,可以实现随机寻址,读取任何一个字节,擦除任然要按块来擦。NAND FLASH容量大,成本低,坏块经常出现,但可以标记坏块,使软件跳过,数据线和地址线复用,按块擦除按页读取。

四、项目实操中的问题

项目中需要用到SPI flash,在使用这个4MB 的SPI flash中出了三个问题让印象深刻,特记录下来以作提醒

问题1:我们知道SPI flash也分主从模式,一般master都是有MCU等器件担当的,而slave有SPI器件担任,笔者的这个小系统同样如此。

并且MCU是自带有SPI controler,接线方式依然是四线解法,SCK,CS,DO,DI,在看手册的过程因为自己的不注意,看到描述是“user can

decide the SPICS configuration in the master mode,if P_IO_Ctrl[10] set 1, the IOA[12] as GPIO function, if P_IO_Ctrl[10] set 0, the IOA[12] as SPICS hardware function” 我当时没有好好体会这句话的意思,简单的认为我在使用SPI flash之前就k肯定需要把P_IO_Ctrl[10]设置为 0, 其实这是错误的认识。

因为现在是通过MCU对slave SPI器件操作,首先肯定是需要MCU端来选中SPI器件,从master角度来讲,只需要一个GPIO信号线接到slave的CS端,同时输出低电平就相当了选中了这个slave了,之所以如此说法是因为这是从slave角度来说的,相当于MCU现在也作为一个slave,另一个MCU控制这个slave,则这时候SPI 初始化时就需要把 P_IO_Ctrl[10] set 0

问题2:需要一个烧录器向SPI flash中烧写内容,用的是西立特公司的superPro,但烧录步骤错误了,忘记了在编程之前必须要erase,

了解了一下,好像是和nor flash一样的介质,擦除会把所有bit置1,在编程的时候根据需要只可以把相应位置0.

问题3:在使用MCU上一个SPI 控制器接口接SPI flash时,没有交叉连接,即MCU 的DI应该接SPI 的DO,MCU 的DO应该接SPI 的DI。

相关问答

flash 组合快捷键是什么?

工具材料:Flash所有版本操作方法01【FLASH快捷键一】A箭头L套索H移动M放大镜I墨水瓶U油漆桶P铅笔B笔刷N直线T文字O...工具材料:...

flash 插入帧快捷键?

.选择桌面的flash软件鼠标右键单击打开2.我们需要选择新建一个项目3.选择菜单栏里的窗口调出时间轴命令4.我们可以在时间轴里按住快捷键F6进行插入关键...

nandflash 最快读写速度?

NAND闪存的最快读写速度取决于具体的技术和规格。目前,高性能NAND闪存的读取速度可以达到几百兆字节每秒(MB/s),而写入速度通常在几十到一百多兆字节每秒之间...

flash 类型怎么选择?

在选择Flash类型之前,需要考虑以下几个因素:1.存储容量:Flash存储器通常有不同的容量规格,从几MB到几TB不等。因此,你需要根据自己的需要来确定所需的存储...

路由器 flash 是哪个?

在计算机网络领域,"flash"一词通常用于指代路由器上的闪存存储器。闪存存储器在路由器中起到重要的作用,用于存储操作系统、配置文件、固件以及其他相关的软件...

exmc接口是什么?

EXMC是一个用来访问各种片外存储器、实现数据交换的独立模块。EXMC通过配置可以把内部的AMBA协议接口转换为各种类型的专用片外存储器通信协议接口。2.1主要...

NANDFlash 和NorFlash到底有什么区别?

1、存储架构不同NORFlash架构提供足够的地址线来映射整个存储器范围。这提供了随机访问和短读取时间的优势,这使其成为代码执行的理想选择。另一个优点是100...

ssd nand 区别?

SSD指的固态硬盘,固态硬盘上存储信息的方式是采用Flash芯片,Flash芯片主要分为NANDFlash和NorFlash。简单来说,SSD硬盘是一个由若干个NANDFlash或者NorFl...

8pin串行 flash 接法?

8pin串行flash通常使用SPI(串行外设接口)进行接法。SPI接口包括四个信号线:SCLK(时钟线)、MISO(主设备输入从设备输出线)、MOSI(主设备输出从设备输入线...8p...

嵌入式开发,请问学习嵌入式的时候,是否需要先学习别 - Deha...

成为一名嵌入式Linux开发工程师需要学习哪些知识?随着嵌入式行业的迅猛发展,嵌入式Linux凭借其系统发展的成熟度、市场应用的高份额也受到更多工程...

 索爱v800  2016中秋节晚会 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2024  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部