首页 > 代码库 > TQ210裸机编程(13)——NAND FLASH读写
TQ210裸机编程(13)——NAND FLASH读写
参考《韦东山毕业班视频》第1课第1.1节_自己写bootloader之编写第1阶段
参考《韦东山6410裸板视频》第7章nand flash实验
K9K8G08U0B : (1G + 32M) x 8bit
Data Register : (2K + 64) x 8bit
Page Program : (2K + 64)Byte
Block Erase : (128K + 4K)Byte
Page Read: (2K + 64)Byte
The K9K8G08U0B has a 8,448Mbit(8,858,370,048 bit) memory organized as 524,288 rows(pages) by 2,112x8 columns
The K9K8G08U0B is arranged in four 2Gb memory planes. Eachplane contains 2,048 blocks and 2,112 byte page registers.This allows it to perform simultaneous page program and block erase by selecting one page or block from each plane。
很多理论知识在韦东山老师的视频里有详细讲解,我这里只列出关键部分。
下面列出关键点:
1、对NFDATA寄存器的定义(参考S5PV210芯片手册4.3.1.1 8-bit NAND Flash Memory Interface)
#define NFDATA (*(volatile unsigned char *)0xB0E00010)
2、NFCONF寄存器中3个时间参数稍微比计算的值大些(大1就可以),否则会出现读写不稳定
3、下面几种操作流程中对于发送地址的周期数:有的是5个周期,有的是3个周期,有的是1个周期
擦除流程
(1)、片选
(2)、发命令0x60
(3)、发页地址(3个周期)
(4)、发命令0xD0
(5)、等待NAND空闲
(6)、取消片选编程(写数据)流程
(1)、片选
(2)、发命令0x80
(3)、发地址(页对齐,5个周期)
(4)、连续发送一页数据
(5)、发命令0x10
(6)、等待NAND空闲
(7)、取消片选
读数据流程
(1)、片选
(2)、发命令0x00
(3)、发地址(页对齐,5个周期)
(4)、发命令0x30
(5)、等待NAND空闲
(6)、连续读一页数据
(7)、取消片选读ID流程
(1)、片选
(2)、发命令0x90
(3)、发0地址(1个周期)
(4)、连续读5个字节的ID
(6)、取消片选所有裸机程序下载地址在我的QQ群共享里面:153530783
转载请注明来源:http://blog.csdn.net/zjhsucceed_329/
QQ:809205580
技术交流群:153530783
接下来就可以使用前面学到的知识移植u-boot了。