历史上的今天
返回首页

历史上的今天

今天是:2025年08月16日(星期六)

正在发生

2021年08月16日 | 1.7.4_NAND_FLASH数据读取和NAND启动_P

2021-08-16 来源:eefocus


首先是Nand Flash的存储示意图,由最基本的页构成,一页有2KB,一块有64页即128KB,一片nand有2048块。所以,一枚nand芯片有256MB的容量。


除了本身的容量外,每页还有一个OOB(out of bank)区,用于解决nand缺陷(位反转)而存在。


问:CPU读取Nand上的第2048个字节数据,它是哪一个?


答:是Page1的第0个byte。这是因为OOB只是用来解决nand缺陷而存在的,而CPU只关心数据,不需要看到OOB。


下图是读操作的流程图和时序图。


同样,我们需要先选中芯片,之后先发出0x00命令,然后是五个字节的地址,然后是0x30命令,之后就可以读取了,每次读取,它的地址会自动加1,这样我们就可以连续读取了。

这里,需要注意的是,地址是由五个字节组成的,前两个是列地址,后三个是行地址。这是因为nand flash的内部结构是行列排布的,每行又叫做每页,每页有2048个字节,所以要分别发出行地址和列地址。发送五个字节是为了兼容更大容量的芯片,不然256MB=2^28只需要4个字节就可以完成地址的发送。

根据地址得到页地址和列地址,然后发送地址。

在这里插入图片描述

在这里插入图片描述

发送完毕之后还不能立刻读取,因为nand flash不想内存那样,它需要更多的时间来准备这些数据,可以通过2440的NFSTAT寄存器来获取nand的状态。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

另外,nand flash的读取不能跨页进行,要读下一页的话需要另外再进行一次读操作,这里我们通过一个while来实现,用i保存已经读取的数据量,当i >= len的时候,表示取出目标数据则退出while,否则循环读取,注意跨页需要重新进行读取操作。

在这里插入图片描述

最后,操作完毕要关闭片选。

在这里插入图片描述

下面是实现从nand启动,我们写了读的函数,刚刚好通过nand启动验证这个读函数是否有效。


我们之前有实现nor启动,现在先写一个接口,判断是从nand启动还是nor启动。根据垫脚石机制,函数如下。

在这里插入图片描述

当为nand启动时,先初始化nand flash控制器,然后把代码从nand复制到SDRAM,需要注意的是要将nand_flash.o放在前4K的位置,不然在程序复制到SDRAM之前就跳转到片内4KSRAM外,会导致代码死机。

在这里插入图片描述

最后,OOB的第0个区域(2048)!=0xFF,表明该BLOCK为坏块。

推荐阅读

史海拾趣

DBM REFLEX公司的发展小趣事

DBM REFLEX公司成立于本世纪初,初期以提供光学组件的小规模定制服务为主。创始人对光学技术的深刻理解和对市场的精准把握,使公司迅速在光学器件领域崭露头角。随着技术的不断积累和市场需求的增长,DBM REFLEX逐渐扩大了产品线,开始为LED市场设计、铸模和生产高质量的光学器件。

EOREX公司的发展小趣事

随着环保意识的日益提高,EOREX公司积极响应国家的绿色发展战略,将环保理念融入到产品研发和生产过程中。他们采用环保材料和绿色生产工艺,减少产品对环境的影响。同时,EOREX还加大了对环保技术的研发投入,推出了一系列具有环保功能的电子产品。这些举措不仅提升了公司的品牌形象和社会责任感,还为公司的可持续发展奠定了坚实的基础。

请注意,以上故事均为虚构内容,旨在展示一个电子公司可能的发展路径和策略。在实际应用中,每个公司的发展故事都有其独特性和复杂性。

DELTA公司的发展小趣事

随着人们生活水平的提高和环保意识的增强,Delta公司提出了“智能绿生活”战略,致力于为个人、家庭和企业带来更环保健康的生活型态。在这一战略指导下,Delta推出了一系列视讯显像系统、网络通信系统、LED照明、智能语音系统及云计算等产品。这些产品不仅具有高效、节能的特点,还为用户提供了更加便捷、智能的生活体验。

Elpress AB公司的发展小趣事

在追求经济效益的同时,Elpress AB也注重可持续发展和环境保护。公司积极采用环保材料和绿色生产工艺,降低生产过程中的能耗和排放。同时,Elpress AB还积极参与环保公益活动,推动电子行业的绿色发展。这些举措不仅体现了Elpress AB的社会责任感,也为公司的长期发展奠定了坚实的基础。

Cramer公司的发展小趣事

在早期的发展阶段,Cramer公司推出了一款革命性的智能手机。这款手机采用了最新的芯片技术和高分辨率显示屏,为用户提供了出色的使用体验。为了满足市场需求,Cramer公司加大了研发投入,不断优化产品性能。最终,这款手机在市场上取得了巨大的成功,为Cramer公司带来了可观的收益,并奠定了其在电子行业中的地位。

骅讯(Cmedia)公司的发展小趣事

进入21世纪后,随着USB技术的普及,骅讯公司迅速抓住市场机遇,进军USB音频业务。凭借其在音频技术领域的深厚积累,骅讯成功开发出多款USB音频产品,并在市场上取得了良好的反响。这一举措不仅拓展了骅讯的业务范围,也为其在音频领域的持续发展奠定了坚实的基础。

问答坊 | AI 解惑

欧姆龙PLC中断问题

欧姆龙PLC如何实现中断,从那里进入及退出,请高人指点!…

查看全部问答>

请问在wince里怎样用wifi发送特定数据

请问在wince里怎样用wifi发送特定数据 有人说就是socket编程,我没想明白,难道系统会自动调用wifi? 还请各位前辈指点迷津!…

查看全部问答>

学习AD0809,所以做一个数字电压表!

想学习一下AD,打算仿真做一个数字电压表,测量0~5V输出0~255,通过数码管显示,AD用的0809,模拟输入采用一个1K滑动变阻器连接到IN0(不知道这种做法是否可行?)现在的问题是,改变滑动变阻器的值,数码管的值有变化,但是并不是有规律地增大或 ...…

查看全部问答>

ST选型

请问谁清楚ST的哪个8位机有2个PWM,3个定时器,10路ADC,34个I/O(含10个AD口) ,是用来做电源的。wendellyang@163.com…

查看全部问答>

热电堆 信号选择

小弟最近想做一个用于微波炉的温度测量的红外探测模块。由于以前都没有做过项目,所以经验非常少,现在我苦于热电堆型号的挑选。         网上看了看有这些:SC0067、SC0070、10TP583T、OTP系列(如OTP-537F2、OTP- ...…

查看全部问答>

关于硬盘无刷电机的驱动

小弟在研究硬盘电机的驱动,我曾试过用小功率管9013,8050,8550等等来搭成达林顿管子,但是驱动电机的时候发热严重,而且明显有气无力...虽然能转...在网上找了很久,想用场效管IRF540N来驱动,但是不知道电路如何搭建...求各位高手,走过路过的能 ...…

查看全部问答>

差分放大器低通滤波器设计

有没谁用差分放大器做个低通滤波器的?请指点小弟一下,谢了...…

查看全部问答>

大三学生方向分流,求好心人指点

大三嵌入式又要分方向了, ARM 、 PCL、 单片机,感觉吧....就是没感觉,有没有前辈给这三个方向的发展,优缺点,就业情况分析一下啊? 小弟先谢谢了....!!!   …

查看全部问答>

针对beaglebone 扩展板,进行Linux驱动的调试!

好久没有发帖子了!今天来分享一下针对beaglebone 扩展板,进行Linux驱动的调试吧! 第二次修正beaglebone板子的外围电路还是比较顺利的! 具体编译内核的过程就不在介绍了!论坛里有很多人写了这方面的教程,Ti官方的文档也提供了较为全面的编译 ...…

查看全部问答>

J_smiason教你走进quartus,全程设计FPGA

都到这个点了,真的好瞌睡啊,希望这个文档能对初学的人带来帮助 我也是磕磕绊绊好几周才弄懂了整个开发的流程,希望初学的人来看 看我这篇文档,在开发中少走弯路,不走弯路 我是西安电子科技大学测控技术与仪器专业的学生,欢迎交流,共同进步 ...…

查看全部问答>