小知识大作用:U盘的芯片,为什么会有坏块?
坏块的种类:
第一种是出厂时就有的坏块,也就是,你买到的新的,还没用过的Nand Flash,就可能包含了坏块。此类出厂时就有的坏块,被称作factory (masked) bad block 或initial bad/invalid block,在出厂之前,就会做对应的标记,标为坏块。
第二种是在使用过程中产生的坏块,由于使用过程时间长了,在擦块除的时候,出错了,说明此块坏了,也要在程序运行过程中,发现,并且标记成坏块的。具体标记的位置,和上面一样。这类块叫做worn-out bad block。即用坏了的块。
坏块标记:
NAND Flash坏块标记的位置三种情况:每个块的第1页、第1页和第2页、最后1页。对于小页(512Bytes大小),坏块标记是在OOB区域的第6个字节。对于大页(如2K大小),坏块标记是在OOB区域的第1个字节。如果坏块标记字节是0xff,则说明这个块是好块,否则就是坏块。
坏块管理:
在linux系统中会使用坏块表(BBT)对坏块进行管理。在加载NAND驱动时,如果你没有加入参数主动要求跳过坏块扫描,那么系统都会扫描坏块,并建立BBT。使用中可以通过BBT来查询某个块是否是坏块。使用过程中如果发现坏块,也需要更新BBT。坏块表有两种存放方式:
第一种是存放在内存中,这就要求在每次系统上电后都要重新扫描一次NAND Flash,建立bbt。缺点是使系统启动速度变慢,优点是不需要占用NAND Flash空间。
第二种是存放在NAND Flash中,这种方式就不需要在系统上电后重新扫描NAND Flash,只需要去读取就可以了。
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 里的视频文件右...H3C路由器FLASH空间不够的问题7033浏览6回答MACBOOKair装了flash后打不开部分在线视频3.4万浏览6回答网页flash游戏偶尔卡顿,和哪块硬件关系比较大?....
我用FLASHFXP下载FTP时,出现了几个文件失败,怎么把失败的文件再下载下来,帮帮忙,很急?FLASHFXP会有个日志记录的,标注了下载失败的文件,你查看后再登录到FTP然后重新下载就好了。最弱智的办法就是重新下载一次,会提示是否覆盖文件,你就点击,全...
在 flash 怎么打数学符号,比如说根号或者其他的特殊符号?那要看你使用什么输入法,一般输入法键盘上都有符号标志点开,选择特殊符号或者数字符号就有也可以自己安装搜狗输入法,直接拼音输入sheshidu,就会出现℃的选项...
adobe flash player安装失败 今天不小心用电脑管家 把一些插...flash,可能是您已经完成了该程序的更新,所以无法再次进行更新!如果您仍有疑问,请私信我您的联系方式,我会尽快对您的问题进行跟进!有用(0)回复dongxinyings...
oppoa2pro手机壳手机充电线上有什么标志?原装充电数据线上刻有“OPPO”文字标记。此外,OPPO自研的闪充技术通常会在数据线上印有“VOOC”字母标志,这是OPPOFlashCharge(闪充)技术的名称。充电线的...
为什么MCafee不让装 flash ?McAfee并不直接限制或禁止安装Flash。然而,FlashPlayer是一项存在安全漏洞的技术,已经被许多互联网安全专家和浏览器供应商标记为高风险软件。因此,许多安全...
qspi协议?QSPI是一种专用的通信接口,连接单、双或四(条数据线)SPIFlash存储介质。该接口可以在以下三种模式下工作:①间接模式:使用QSPI寄存器执行全部操作...
长江存储发展史?长江存储是中国领先的半导体存储芯片设计和制造企业,成立于2003年。公司在成立初期主要从事DRAM芯片的设计和制造,随着技术的不断发展,逐渐涉足NANDFlash、eM...
photoshop和photoshopelements的区别?PhotoshopElements5.0拥有可完美改变黑白照片曝光的工具AdjustColorCurves,有简单修正照片歪斜的功能。如果你不是图像处理的专业人士,但又希望制作出...
今天想看一些游戏视频 不过发现看不了,整个播放部分是白色,左...3条回答:【推荐答案】单个视频看不了,可能是资源问题,FLASH插件下载或更新下。...huang8520642单个视频看不了,可能是资源问题,FLASH插件下载或更新下。如果只...