S5PV210-arm裸机-nandflash与iNand
admin
2023-08-01 04:20:07
0





Nandflash:

K9F2G08 : K9F表示是三星的Nandflash系列的,2G表示大小为2Gbit(2G*8bit = 256MB),08表示有8位

数据线。

 

一次读写的最小单元是page(页),2kB+64bit 一次操作要操作2KB或者是2KB的整数倍

K9F2G08  页往上的单位是块,一块block等于64page 一页等于2KB,K9F2G08一共有2048个块。

所以它的大小是 2048*64*2KB = 256MB 一块等于64*2KB = 128KB。

block 是擦除nand的最小单位,page是读写的最小单位

nand的地址是精确到以字节为单位的,但是nand本身的单元一次读写是以页为单位的,所以在实际用时

往往我们编写程序时地址只能精确到页的地址。

nand芯片内部有存储颗粒,有接口电路,接口电路是将来和外接通信用,210SOC中内部外设了一个nand控制器接口,这个控制器接口就可以和nand中接口电路进行连接,实现时序上的操作。


不同型号的nand,页的大小,block块的大小,nand的总大小是不一样的。、

在K9F2G08这个nand芯片中,页是2KB,这2KB是带内数据,就是将来真正存储东西的空间,每一页中还有64

字节的带外数据,这64字节中放的是ECC的校验(错误校验码)和坏块标记,这64B在算nand的大小时我们是

不加上的。因为nand在读写的过程中,很有可能会出现位反转的错误,所以有了ECC,并且nand在使用的过程中,很有可能也会出现坏块的。所以也有坏块标记,当有坏块出现的时候,就会在这一个地方标记坏块,将来在访问这个地方的时候,就访问不了了,就会直接跳过这个区域。

nand的操作流程,要参考不同nand的数据手册,看命令码,操作时序,写数据,读数据等。根据这些去进行软件上编写操作。




坏块的检查:

先擦除nand中一块,因为擦除后里面的东西是FFH或者FFFFH(FFH是说明你的nand是8为数据

线的,FFFFH说明你的nand是16微数据线的),擦除后去一次读取里面的值看是否全为1.

如果全都是1则证明没有坏块,接着去擦除下一块,接着读取里面的值,以此类推依次去检查

,如果读出来的值中不是FFH或者FFFFH则说明有坏块,我们首先在进行擦除一次这个块,完了

在去读取一次,如果读出来的还不是FFH或者FFFFH则将这个区域进行一个标志,文件系统中

就会看见这个标记了,文件系统就可以让以后访问这个区域时直接跳过这个区域。

nand的操作: 这些操作在nand的数据手册中都有相关的时序

坏块检查操作:

写页操作:

擦除操作:

读页操作:

注意:在实际工作中,如果不是做生产nand的工作,你就不需要自己看着数据手册,自己把整个

nand的相关代码写出来,只需能把原厂给的代码,结合给的数据手册能对应上,大致能看懂,能

移植到自己的地方取用,并且将一些不好的,没有的代码给去掉即可。

现在大部分的SOC内部都有nand控制器,这个控制器回去帮助我们完成严格的时序要求

因此我们只需要根据数据手册中给的那些操作的顺序进行编写就行了,严格的时序nand控制器

已经为我们做好了。


inand在物理接线上和软件操作上几乎和SD卡一样。可以说inand就是芯片化了的SD卡

SD卡可以说是MMC卡的升级版,SD卡兼容MMC卡。但是MMC卡不兼容SD卡。



SD协议 支持的是SD卡,MMC协议支持的是MMC卡 eMMC协议支持的inand芯片等

SD卡向下兼容MMC卡

SD的工作:SD卡在每一个时刻都属于某一个状态,读状态,写状态,空闲状态等。SOC发送一条命令,如果命令和当前SD卡的状态相符合,SD卡就会有响应,执行相应的操作之后,根据结果切换到相应的状态,SD卡工作时是在不同的状态之间进行切换的。如果SOC发送的命令和SD卡的当前状态不符合,SD卡就会不响应,从这种特性

我们就可以根据SD卡的响应情况去判断SD卡等的型号。执行相应型号的初始化操作

SD卡代码的分析:

首先初始化和SOC SD卡控制器相连接的GPIO,210的GPIO连接到SOC SD卡控制器的引脚是

GPG0 将其引脚设置为SD卡的那个模式,上拉,驱动能力4X,

接着将SD卡控制器的时钟源的来源设置为从SLOCK_EPLL来(在CLK_SRC4寄存器中设置),SOCK_EPLL的源时钟我们设置为96M,相关参数根据数据手册中,官方给的参数去设置EPLL_CON寄存器。

在将SLOCK_EPLL的96MHZ的频率通过设置CLD_DIV寄存器进行2分频,48MHZ的频率作为SD卡控制的时钟。接着将SD卡控制器进行软复位。

接着在给SD卡一个时钟,通过SOC的SD卡控制器中的寄存器,我们设置一个400k的时钟先提供给SD卡,因为我们现在还不知道是什么版本的,不版本的SD卡,时钟是不一样的。

SD卡工作,需要时钟,可是自己本身没有时钟发生单元,所以需要SOC通过SD卡控制器给SD卡一个时钟。所以我们先给SD卡一个低频的时钟,这样我们就可以和SD卡进行通信了(之后的高频率时钟我们在通过代码去

进一步判断这个SD卡到底是什么版本的,根据相应的版本,在给这个SD卡一个对应的时钟。)



相关内容

热门资讯

特朗普怒叫“狠狠炸”!伊朗局势... 特朗普总统突然又对伊朗彻底撕破脸,其一连串喊话震惊了全世界。周三早上美军对伊朗发动空袭后,他当天在北...
李在明祝贺挪威队晋级,当场模仿... 综合韩联社等韩国媒体报道,韩国总统李在明8日在土耳其安卡拉出席北约峰会期间,同挪威首相斯特勒举行会晤...
韩国股市,正走向现实版“鱿鱼游... (文/观察者网 柳白)韩国股市,把韩国政府吓到了。就在韩国综合股价指数(KOSPI)年内第六次触发熔...
伊朗首次公开哈梅内伊官邸遇袭后... 7月8日,伊朗最高领袖的网站发布了一段视频,首次展示已故最高领袖阿里·哈梅内伊官邸被美以袭击后的画面...
特朗普威胁发动新的袭击后,伊朗... 7月8日,美国总统特朗普威胁要对伊朗发动新的袭击后,伊朗副外长卡齐姆·加里巴巴迪怒斥特朗普是“凶残的...
美中央司令部:超20艘美军舰艇... 当地时间7月8日,美军中央司令部在社交媒体发文称,目前有20多艘美国海军军舰正在中东各水域巡逻。美军...
伊朗称美军袭击造成8名军人死亡 总台记者8日自伊朗方面获悉,美军当天凌晨对伊朗南部部分地区发动袭击,造成伊朗军方8人死亡。据了解,死...
伊朗军方:若美国真的发动大规模... 美国对伊朗发动新一轮袭击,特朗普称美伊谅解备忘录失效,伊朗方面有何回应?凤凰卫视驻伊朗记者李睿从德黑...
河南社旗县近亿元高标准农田项目... 河南省社旗县地处南阳盆地东缘,有121万亩耕地,是全国产粮大县。2025年,这个常住人口约54万人口...
湖北鄂州一家3人被大风卷走身亡... 澎湃新闻记者 魏凡7月6日晚,湖北东部多地遭遇强对流天气袭击,部分乡镇出现龙卷风。鄂州名门世家小区6...