快讯
HOME
快讯
正文内容
nand改flash 镁光nandflash MT29F32G08+STM32通用IO口驱动,实现fatfs文件系统
发布时间 : 2024-10-06
作者 : 小编
访问数量 : 23
扫码分享至微信

镁光nandflash MT29F32G08+STM32通用IO口驱动,实现fatfs文件系统

真的挺久没有写文章了,一是太忙了,二是素材也少。

这不最近使用镁光的MT29F32G08型号的nandflash,使用STM32作为控制器,但是我所用的STM32是不带FMC的,我也是想偷懒站在前人的肩膀上,但是网上没有找到STM32通用IO口读写MT29F32G08的,SDN啥的上去看了一下,且不说例程能不能用,都要充值,要办会员,大家都懂的,所以只能自己写了(咱就不明白了,有些人总是拿着一些开源的东西,自己改吧改吧,扔到网站上赚米,真的是良心大大滴坏了)。

驱动用的是网上下载的一个通用驱动nand_MT29F_lld,FTL层移植的原子哥的,这里展示一下STM32通用IO口读写MT29F32G08以及fatfs和USB模拟U盘的一些关键程序。

图1STM32通用IO驱动MT29F32G08

图2 通用驱动nand_MT29F_lld

图3,移植原子哥的FTL层

图4,fatfs移植,修改user_diskio.c的读扇区函数

图5,fatfs移植,修改user_diskio.c的写扇区函数

图6,fatfs移植,修改user_diskio.c的IO控制函数

图7,USB模拟U盘,修改usbd_storage_if.c文件的读函数

图8,USB模拟U盘,修改usbd_storage_if.c文件的写函数

接下来就是用文件系统存储数据了,我这里数据量比较大,一秒钟15hz,每一条记录32字节,凑够1024字节写一次csv文件。每个文件最大写32M,写满就生成新的文件继续写,每次上电遍历目录写的文件总数,生成对应的文件名。好了,继续截图~~

上电先生成新的文件名,并打开文件。

图9,上电生成新的csv文件

使用两个buffer轮流写入数据,写满32M就关闭当前文件,并生成新的csv文件继续写,文件总数超过1500个就在不再继续写,差不多存满了。

图10 上电期间不停写入数据

检测到USB插入,就关闭当前正在写 的文件,卸载文件系统。可以把写好的文件拷贝出来。

图11 检测到USB插入

设备已经运行了一会了,看看目录下面的文件和内容吧~

图12 log显示USB已经插入

打开我的电脑

图13 正常识别U盘

看看目录

图14 目录下文件

看看文件内容

图15 文件内容

看到文件格式内容都对,符合设计需求。

到这里就结束了,但是,凡事总有个但是,我这个系统没有备用电源,所以当系统断电而我正好还在写文件的时候,这个文件就会被破坏,打不开,而当fatfs在更新目录表信息,发生断电的话,那就是文件系统损坏了,下一次上电只能重新格式化,从头开始了,以前保存的数据都会丢了。对于这个问题,我暂时还没想到解决办法(在没有备电的情况下)。如果有人有招,就提出来我试试吧。

图16 网络配图

NAND和NOR Flash 完全学习笔记(基础篇)

本文要点:1. NAND FLASH与NOR FLASH 的技术对比;2. 最详细的存储单元对比详解;3. NAND FLASH与NOR FLASH 的最新市场份额及应用;4. NAND FLASH与NOR FLASH 的基础原理分析。

目前,NOR FLASH和NAND FLASH是市场上主要的非易失性闪存技术,但是据我了解,还是有很多工程师分不清NAND FLASH与NOR FLASH。首先,来一个直观的图片。

然后,我从权威的网站上找到了最新的NAND FLASH收益以及市场份额表,根据最新的表单,我们可以知道谁是这个市场的老大,做的比较好一些,一方面让工程师时刻知道市场的动向,另一方面可以在之后的器件选型等方面提供重要的参考。

一般来说,快闪记忆体可分为两大规格,一个是NAND, 一个是NOR。简单来说,NAND一般以存储数据为主,晶片容量大,容量可以达到2Gb甚至更大,NAND的读取是以一次读取一块的形式来进行的,通常一次读取512个字节,采用这种技术的Flash比较廉价;NOR一般以存储程序代码为主,又称为Code Flash,所以可让微处理器直接读取,但晶片容量较低,主流容量512Mb,NOR采用内存的随机读取技术。如果利用闪存只是用来存储少量的代码,这是NOR Flash更合适一些。用户不能直接运行NAND Flash上的代码,因此很多使用NAND Flash的Demo Board除了使用NAND Flash以外,还加上一块小的NOR Flash来运行启动代码。通过下表我比较了几乎所有关于NAND FLASH以及NOR FLASH的全部重要特性。

然后,对于Flash三个重要概念的理解:

1. Flash属于非易失性存储设备,内部存储单元是MOSFET,里面有一个悬浮门(Floating Gate), 是存储数据的单元。与此对应的,易失性存储设备就是断电后,数据就丢失了,例如常用的内存,不论是之前的SDRAM,还是现在通用的DDR3以及DDR4,都是断电后,数据就没有了。

2. SLC和MLC的区别:NAND FLASH的内存单元可以分为两类,存储一位数据,也就是SLC(Single Level Cell); 对应的,存储多位数据的就是MLC(Multi Level Cell),比如两位,或者四位。

3. 大多数的写入操作需要先进行擦除操作。

到此,对于NAND FLASH以及NOR FLASH 我们有了一个基本的认识。我对知识的学习一个重要的方法是对比,通过图表的对比更能看出各自的差异化,从而达到加深知识的效果,因此我做了下图来比较目前还算所有存储器的最小单元结构图,便于学习与理解。

原理分析 要说明此原理,需要一些基本的量子物理学,我认为以下这种论述是比较适合理解的,也很有趣:经典物理学认为,物体越过势垒,有一定的阈值能量;所以,粒子能量小于此阈值能量的不能越过,能量大于此阈值能量的可以越过。举例来说,我们骑自行车过坡道,如果先用力骑,因此有一定初入能量,坡道不高的话,即使不蹬自行车也可以依靠惯性过去;但是,如果坡道很高,不蹬自行车,可能车到了一半,可能就退回来了。而量子力学则认为,即便是粒子能量小于阈值能量,同时很多粒子冲向势垒,虽然也有一部分粒子会反弹,但是还会有一些粒子可以越过去,好像有一个隧道,因此称为量子隧道。

对比二者的差异发现,宏观上的确定性在微观上常常就具有不确定性。因为隧穿几率极小,因此通常情况下,隧道效应并不影响经典的宏观效应,但是某些特殊条件下也会出现。当微电子器件进一步微型化是必须要考虑量子效应。NAND FLASH的擦写均是基于隧道效应,电流穿过浮置栅极与硅基层之间的绝缘层,对浮置栅极进行充电(写数据)或放电(擦除数据);另外,NOR FLASH擦除数据也是基于隧道效应(电流从浮置栅极到硅基层),但在写入数据时则是采用热电子注入方式(电流从浮置栅极到源极)。对于FLASH闪存单元来说,它是为三端器件,与场效应管有相同的名称:源极、漏极和栅极。栅极与硅衬底之间有二氧化硅绝缘层,用来保护浮置栅极中的电荷不会泄漏。采用这种结构,使得存储单元具有了电荷保持能力。举个栗子,就像是装进瓶子里的水,当你倒入水后,水位就一直保持在那里,除非你再次倒入或倒出,所以闪存具有记忆能力。

绝缘浮置栅极是NAND存储数据的核心

相关问答

如何编写 nandflash 驱动?

实际上与其他嵌入式系统一样。给没有操作系统的手机写驱动:查看datasheet,一点一点写吧;有操作系统的,先学习操作系统提供的API接口,再学习操作系统提供给...

nand flash 详解?

Nand-flash存储器是flash存储器的一种,其内部采用非线性宏单元模式,为固态大容量内存的实现提供了廉价有效的解决方案。Nand-flash存储器具有容量较大,改写速...

如何编写Linux下 NandFlash 驱动?

实现ubifs相对简单,框架都搭好了,根据nandflash控制器写mtd接口就好了。主要关注pagelayout,硬ECC能力是否与nand要求匹配,ECC最好有纠错比特数预警,以实...

norflash和 nandflash 的区别?

NANDflash和NORflash的区别一、NANDflash和NORflash的性能比较flash闪存是非易失存储器,可以对称为块的存储器单元块进行擦写和再编程。任何flash器件的....

NorFlash和 NandFlash 有哪些相同和不同?

NorFlash和NandFlash的相同点在于它们都是一种存储芯片,可以用于储存各种数据,如程序、图片、音乐等。不同点在于它们的结构不同,数据传输方式也不同。NorFlas...

norflash和 nandflash 区别?

NORFlash和NANDFlash都是闪存存储器,但它们之间有几个主要区别:1.结构不同:NORFlash是一种非易失性存储器,与计算机的内存使用相同的原理。它被用作...N...

UBOOT移植时,不同型号的 NANDFLASH 存储的起始地址怎么得到?

你只能通过NandFlash控制器访问NandFlash,即是只要知道Nand控制器的寄存器地址即可。NandFlash不是一个RamLike的器件。Uboot放入nand中,在nand的0地址开...

iphone现在开不了机了 出现以下英文[ NAND ]-FindFlashMediaAn...

你BIOS设置成默认U盘启动了,在bios里面改一下。有用(0)回复我也是的,怎么解决的有用(0)回复长按电源键15秒以上试试,不行将手机送售后处理有用(0)回复...

flash 类型怎么选择?

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

NANDflash 和NORflash的区别?

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

 广州北回归线公园  新养老保险 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2024  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

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

热线

188-0000-0000
专属服务热线

微信

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