Nand flash
原理图上有data0-data7 共8个引角
容量为256M*8bit ,所以地址位应该有28位,原理图上只有data0-data7,所以需要发出多次地址信号
1命令、地址、数据复用
2地址多次发出
Nand flash与内存不同,不能直接读写,要先发出命令,再发出地址,再读写数据
CLE 为高电平 data0-data7传输的是命令
ALE 为高电平 data0-data7传输的是地址
CLE和ALE两者都为低电平时,data0-data7传输的为数据
nWE=0,为低电平时,表示写
Nand flash 读取信息
查看K9F2G08U0A数据手册:
Function 1st Cycle 2nd Cycle Acceptable Command during Busy
Read 00h 30h
查看6410芯片手册
1初始化nandflash控制器:时间参数/使能片选引角
Nand flash / s3c6410
nCE nCS2_NAND(Xm0CSn2/GPO0)
2 命令/地址/读数据
发送命令:把命令写到NFCMMD寄存器
发送地址:把地址写到NFADDR寄存器
发送数据: 把数据写到NFDATA寄存器
读数据: 读NFDATA寄存器
Openjtag 操作nand flash
1读id:
(1) 初始化:
查看芯片手册
MEM_SYS_CFG 0x7E00_F120 R/W Configure memory subsystem 0x0000_0080
Xm0CSn[2]
----1- SROMC CS2
----0-OneNANDC CS0
---- 0- NFCON CS0
设置MEM_SYS_CFG=0,让Xm0CSn[2]用作nand flash的片选信号
Mdw 0x7E00F120
//memmory write word
Mww 0x7E00F120 0
查看芯片手册
NFCONF 0x70200000 R/W NAND Flash Configuration register 0xX000100X
设置时间参数
Mww 0x70200000 0x8000777e
(2) 发送使能信号
查看芯片手册
NFCONT 0x70200004 R/W NAND Flash control register 0x000100C6
Soft Lock [16] Soft Lock configuration
0: Disable lock 1: Enable lock
Reg_nCE0 [1] NAND Flash Memory Xm0CSn2 signal control
0: Force Xm0CSn2 to low(Enable chip select)
1: Force Xm0CSn2 to High(Disable chip select)
Note: This value is only valid while MODE bit is 1
MODE [0] NAND Flash controller operating mode
0: NAND Flash Controller Disable (Don’t work)
1: NAND Flash Controller Enable
NFCONT(0x70200004) [0] = 1 /* 使能nand flash控制器 */
NFCONT(0x70200004) [1] = 0 /* 让xm0csn[2]输出0 */
NFCONT(0x70200004) [16] = 0 /* soft lock */
mdw 0x70200004 /* 0x100c6 */
mww 0x70200004 0xc5
(3) 发送读id命令
查看芯片手册:
NFCMMD 0x70200008 R/W NAND Flash command set register 0x00
查看K9F2G08U0A数据手册:
Read ID 90h -
//复位
Mwb 0x70200008 0xff
//把0x90写到NFCMMD( 0x70200008)
Mwb 0x70200008 0x90
(4) 发出地址0
NFADDR 0x7020000C R/W NAND Flash address set register 0x0000XX00
//把把0写到NFADDR()
Mwb 0x7020000C 0
(5) 读数据
NFDATA 0x70200010 R/W NAND Flash data register 0xXXXX
Mdb 0x70200010
2 读数据
(1). 初始化
mww 0x7E00F120 0 /* 把xm0csn[2]配置为nand flash的片选信号 */
mww 0x70200000 0x8000777e /* 设置时间参数 */
(2) 发出片选信号
mww 0x70200004 0xc5
(3) 发出复位信号
mwb 0x70200008 0xff
(4) 发出读命令
mwb 0x70200008 0
(5)发出地址
mwb 0x7020000C 0
mwb 0x7020000C 0
mwb 0x7020000C 0
mwb 0x7020000C 0
mwb 0x7020000C 0
(6) 发出0x30命令
mwb 0x70200008 0x30
(7) 读数据
mdb 0x70200010