flash芯片

宏旺半导体科普SPI NAND Flash和SPI NOR Flash的区别

为君一笑 提交于 2020-03-27 19:01:14
我们在购买电子产品时,常常听到FLASH闪存这个词。但对于基础小白来说,可能常常搞不清楚SPI Flash、Nand Flash、Nor Flash等都是指什么,今天宏旺半导体就跟大家通俗易懂地讲解一下。 首先,我们了解一下Flash闪存本身,它则是一种非易失性存储,在没有电流供应的条件下也能够长久地保持数据,其存储特性相当于硬盘,这项特性正是闪存得以成为各类便携型数字设备的存储介质的基础。Flash按照内部存储结构的不同,可以分为两种:Nor Flash和Nand Flash。 宏旺半导体打个比方说,Nor Flash更像内存,有独立的地址线和数据线,但价格比较贵,容量比较小;而NAND型更像硬盘,地址线和数据线是共用的I/O线,类似硬盘的所有信息都通过一条硬盘线传送一般,而且NAND的成本较NOR来说很低,而容量却大很多。 因此,NOR型闪存比较适合频繁随机读写的场合,通常用于存储程序代码并直接在闪存内运行,手机就是使用NOR型闪存的大户,所以手机的“内存”容量通常不大;NAND型闪存主要用来存储资料,我们常用的闪存产品,如闪存盘、数码存储卡都是用NAND型闪存。 首先,SPI是指一种通信接口。那么严格的来说SPI Flash是一种使用SPI通信的Flash,即,可能指NOR也可能是NAND。但现在大部分情况默认下人们说的SPI Flash指的是SPI Nor Flash

Flash存储器行情

时间秒杀一切 提交于 2020-03-12 17:21:27
据多名从业者反映,目前存储芯片交货的几乎都是年前的订单,因为疫情影响没有新的订单需求。对于行业内的行情,业者多持看好的态度,相信今年的订单需求会随着疫情的好转慢慢转为强劲,下半年也可能出现供不应求的情况。 NAND Flash:因为SSD的缺货,导致大容量Nand Flash近期询盘增多,但是因为大容量Nand flash 单价高,流通度低很少会备货库存持续下降,供给也较为保守。 受5G需求刺激,加上各类产品搭载SSD比重与容量显著提升,终端都积极备货,均成为刺激Nand Flash需求增温的动能,今年NAND价格走势预计稳健向上,下半年也可能面临供给短缺情况。 由于缺货涨价的现象可能还会持续一段时间,建议有SSD相关需求的业者可以考虑适当备货。 Nor Flash:最近一段时间,Nor Flash各品牌在春节后均呈上涨趋势。 Micron方面,近期价格相对比较稳定,但相较其他品牌,价格还是比较高。 而Cypress,在春节过后Nor Flash呈上涨趋势,高容量型号涨幅明显。 Winbond从2019年Q4季度末开始,16M到如今的256M持续涨价,并且都是分货状态,价格变动较大,需要在到货之后确认分货价格。并且由于5G等项目,将进一步影响晶圆供应以及产能,整体来说后期趋势看涨。 来源: 51CTO 作者: 英尚微电子 链接: https://blog.51cto.com

STM32F407VET6擦除内部flash时报“cannot halt the core”无法进入debug模式的问题

谁说胖子不能爱 提交于 2020-03-10 09:37:43
首先仅写入: 发现可以进入debug,而且可以看到内存中确实已经写进去了 运行写入,然后擦除,发现无法进入debug,提示cannot halt the core 但是可以看到已经成功烧录了 这里验证一下写入之后,不写擦除函数,烧录过程是否会擦除数据。 首先打开写入,关闭擦除。 然后关闭写入,关闭擦除 可以看到,内存中依然有数据。所以烧录动作不会擦除所要操作的扇区。 把写入和擦除都关掉看看flash中现在是什么数据 此时可以进入debug 可以发现内存中什么数据也没有。 由于此时的烧录配置是仅擦除扇区,所以猜测应当是刚刚烧录进去的程序已经成功运行了,所以先写入数据之后,又将数据擦除了。下面可以做一个验证。 验证过程: a、首先仅写入数据 这时进入debug后确认flash中已经成功写入了数据。 b、然后关闭写入,打开擦除 这里由于之前发现不能进debug,所以直接进行烧录 c、最后关闭写入且关闭擦除,进debug看数据是否已经擦除 可以看到此时flash的该扇区中已经没有数据了。 由此我们可以得出结论,虽然适用擦除函数后无法进入debug模式,但是可以烧录,并且烧录后确实已经成功执行了擦除动作。由此可以看到影响进入debug模式的,确实是擦除函数。 为了进一步探究并解决该问题,将库函数搬运到测试程序中执行 首先注释掉后面的程序,发现可以进入debug 这里就发现了

nor flash之4字节地址模式

本小妞迷上赌 提交于 2020-03-08 16:49:51
背景 容量低于 16M bytes 的 nor,一般使用 3 字节地址模式,即命令格式是 cmd + addr[2] + addr[1] + addr[0] + ... 使用超过 16M bytes 的 nor flash,则需要了解 4 字节地址模式, 即命令格式是 cmd + addr[3] + addr[2] + addr[1] + addr[0] + ... 原因 为什么呢, 因为用 3 个字节表示地址,则其范围是 0x000000 - 0xffffff = 0 - 16M ,超过 16M 的地址就无法表示了,那自然就得上 4 字节了。 驱动修改 新的 uboot, kernel 驱动中都是支持的,配置下就可以了,如配置上 SPI_NOR_4B_OPCODES 。 如果在用的 nor 驱动没有支持,那可以自行根据 datasheet,在初始化的时候判断下容量,加个切换到 4 字节地址模式的操作,后续的读写命令等,也改用 4 字节地址。 注意事项 需要注意的是,一些芯片的 boot rom 无法支持 4 字节地址模式,只会用 3 字节地址模式跟 nor 通信。 所以切换到 4 字节地址模式后会导致直接重启无法正常启动。需要彻底掉电后重新上电,让 nor 因为重新上电默认回到 3 字节地址模式,才能正常启动。 一种处理方式是,在 reboot 的流程中,增加软件退出 4

sd nand与nandflash的区分

吃可爱长大的小学妹 提交于 2020-03-05 21:08:59
大家知道目前主流的存储芯片大致可以分为NOR Flash和NAND Flash。容量需要大一点的话,就会用采用NAND Flash。 但用NAND Flash会有哪些问题呢? 第一,NAND Flash有坏块,要使用NAND Flash,就必须要进行坏块管理,还需要做EDC/ECC,如果需要使用寿命长,还需要做平均读写,垃圾回收等处理。 第二,不同品牌之间的NAND Flash,由于Page,Block大小不同,时序不同等。都需要工程师重新调试驱动。 第三,如果新项目换了新的主控,也需要重新写NAND Flash驱动。 除了上面提到的问题,现在的市场需求变化很快,为了实现新的卖点和功能,产品开发时间都很紧张。开发应用层软件,已经消耗了工程师的大量时间,但为了使用NAND Flash,还需要耗费额外的时间,来编写NAND Flash的底层驱动。 另外随着物联网的兴起,MCU的应用越来越广,MCU就要面对如何管理NAND Flash的问题了。我们知道MCU为了功耗,牺牲了很多性能,如果让MCU直接管理NAND Flash的话,复杂的驱动软件就会大量占用MCU的处理器资源,MCU没法干别的了。 最后物联网产品越来越小型化,对元器件的尺寸要求也是越来越高。 综合以上的情况,大家都在想,是否有一种品质稳定可靠,尺寸又小,简单易用,还不用写驱动的NAND Flash产品呢? SD

常用u-boot命令详解(全) .

三世轮回 提交于 2020-02-29 04:10:54
U-boot发展到现在,他的命令行模式已经非常接近Linux下的shell了,命令行模式模式下支持 “Tab”键的命令补全和命令的历史记录功能 。而且如果你输入的命令的前几个字符和别的命令不重复,那么你就只需要打这几个字符即可,比如我想看这个U-boot的版本号,命令就是“ version”,但是在所有的命令中没有其他任何一个的命令是由“v”开头的,所以只需要输入“v”即可。 [ u - boot@MINI2440 ] # version U - Boot 2009 . 11 ( 4月 04 2010 - 12 : 09 : 25 ) [ u - boot@MINI2440 ] # v U - Boot 2009 . 11 ( 4月 04 2010 - 12 : 09 : 25 ) [ u - boot@MINI2440 ] # base Base Address : 0x00000000 [ u - boot@MINI2440 ] # ba Base Address : 0x00000000 由于U-boot支持的命令实在太多,一个一个细讲不现实,也没有必要。所以下面我挑一些烧写和引导常用命令介绍一下,其他的命令大家就举一反三,或者“help”吧! (1)获取帮助 命令:help 或 ? 功能:查看当前U-boot版本中支持的所有命令。 [ u - boot@MINI2440 ]

uboot研读笔记 | 05 - 移植uboot 2012.04到JZ2440(支持Nand Flash读写)

别来无恙 提交于 2020-02-28 03:51:09
在支持Nand Flash操作之前,首先要对Nand Flash的读写方法有一定的了解,参考文章: S3C2440-裸机篇-10 | 使用S3C2440操作Nand Flash 1. 去除nand flash屏蔽 在之前初步移植uboot时,发现开启nand flash之后编译不通过,所以屏蔽了nand flash的使用,在单板配置文件 include/configs/smdk2440.h 中开启: 然后编译,改正编译错误。 2. 定位编译出错问题所在 首先来修复第一个问题: 查看s3c2410_nand.c文件的72行: 这个指针有问题的话,就是nand这个结构体变量的定义问题,找到nand变量的定义: struct s3c2410_nand * nand = s3c2410_get_base_nand ( ) ; 接下来问题就变为 struct s3c2410_nand 这个结构体定义有问题,继续寻找该定义,果然,在文件 arch/arm/include/asm/arch-s3c24x0/s3c24x0.h 中,我们定义的是CONFIG_S3C2440,所以有struct s3c2440_nand的定义,没有struct s3c2410_nand的定义: 3. 修复编译错误 — 添加s3c2440_nand.c文件 3.1. 添加文件到工程中 这里涉及到将所有定义全部改变

nor flash 与 nand flash 区别

自闭症网瘾萝莉.ら 提交于 2020-02-26 21:11:17
转载:http://blog.csdn.net/shuaishuai80/article/details/6202205 介绍的很详细 Flash编程原理都是只能将1写为0,而不能将0写成1.所以在Flash编程之前,必须将对应的块擦除,而擦除的过程就是将所有位都写为1的过程,块内的所有字节变为0xFF . 因此可以说,编程是将相应位写0的过程,而擦除是将相应位写1的过程,两者的执行过程完全相反 . (1) 闪存芯片读写的基本单位不同 应用程序对NorFlash芯片操作以“字”为基本单位.为了方便对大容量NorFlash闪存的管理,通常将NOR闪存分成大小为128KB或64KB的逻辑块,有时块内还分扇区.读写时需要同时指定逻辑块号和块内偏移.应用程序对NandFlash芯片操作是以“块”为基本单位.NAND闪存的块比较小,一般是8KB,然后每块又分成页,页大小一般是512字节.要修改NandFlash芯片中一个字节,必须重写整个数据块. (2) NorFlash闪存是随机存储介质,用于数据量较小的场合;NandFlash闪存是连续存储介质,适合存放大的数据. (3) 由于NorFlash地址线和数据线分开,所以NorFlash芯片可以像SDRAM一样连在数据线上.NOR芯片的使用类似于通常内存芯片,传输效率高,可执行程序可以在芯片内执行(XI P, eXecute In Place

NOR型flash与NAND型flash的区别

喜欢而已 提交于 2020-02-26 20:50:09
不同点: 1) 闪存芯片读写的基本单位不同 应用程序对NOR芯片操作以“字”为基本单位。为了方便对大容量NOR闪存的管理,通常将NOR闪存分成大小为128KB或者64KB的逻辑块,有时候块内还分成扇区。读写时需要同时指定逻辑块号和块内偏移。应用程序对NAND芯片操作是以“块”为基本单位。NAND闪存的块比较小,一般是8KB,然后每块又分成页,页的大小一般是512字节。要修改NAND芯片中一个字节,必须重写整个数据块。 2)NOR闪存是随机存储介质,用于数据量较小的场合;NAND闪存是连续存储介质,适合存放大的数据。 3) 由于NOR地址线和数据线分开,所以NOR芯片可以像SRAM一样连在数据线上。NOR芯片的使用也类似于通常的内存芯片,它的传输效率很高,可执行程序可以在芯片内执行( XI P, eXecute In Place),这样应用程序可以直接在flash闪存内运行,不必再把代码 读到系统RAM中。由于NOR的这个特点,嵌入式系统中经常将NOR芯片做启动芯片使用。而NAND共用地址和数据总线,需要额外联结一些控制的输入输出,所以直接将NAND芯片做启动芯片比较难。 4) N AN D闪存芯片因为共用地址和数据总线的原因,不允许对一个字节甚至一个块进行的数据清空,只能对一个固定大小的区域进行清零操作;而NOR芯片可以对字进行操作。所以在处理小数据量的I

NOR型flash与NAND型flash的区别

 ̄綄美尐妖づ 提交于 2020-02-26 20:44:01
1) 闪存芯片读写的基本单位不同 应用程序对NOR芯片操作以“字”为基本单位。为了方便对大容量NOR闪存的管理,通常将NOR闪存分成大小为128KB或者64KB的逻辑块,有时候块内还分成扇区。读写时需要同时指定逻辑块号和块内偏移。应用程序对NAND芯片操作是以“块”为基本单位。NAND闪存的块比较小,一般是8KB,然后每块又分成页,页的大小一般是512字节。要修改NAND芯片中一个字节,必须重写整个数据块。 2)NOR闪存是随机存储介质,用于数据量较小的场合;NAND闪存是连续存储介质,适合存放大的数据。 3) 由于NOR地址线和数据线分开,所以NOR芯片可以像SRAM一样连在数据线上。NOR芯片的使用也类似于通常的内存芯片,它的传输效率很高,可执行程序可以在芯片内执行( XI P, eXecute In Place),这样应用程序可以直接在flash闪存内运行,不必再把代码 读到系统RAM中。由于NOR的这个特点,嵌入式系统中经常将NOR芯片做启动芯片使用。而NAND共用地址和数据总线,需要额外联结一些控制的输入输出,所以直接将NAND芯片做启动芯片比较难。 4) N AN D闪存芯片因为共用地址和数据总线的原因,不允许对一个字节甚至一个块进行的数据清空,只能对一个固定大小的区域进行清零操作;而NOR芯片可以对字进行操作。所以在处理小数据量的I