Nandflash
原理图上有data0-data7共8个引角
容量为256M*8bit,所以地址位应该有28位,原理图上只有data0-data7,所以需要发出多次地址信号
1命令、地址、数据复用
2地址多次发出
Nandflash与内存不同,不能直接读写,要先发出命令,再发出地址,再读写数据
CLE为高电平data0-data7传输的是命令
ALE为高电平data0-data7传输的是地址
CLE和ALE两者都为低电平时,data0-data7传输的为数据
nWE=0,为低电平时,表示写
Nandflash读取信息
查看K9F2G08U0A数据手册:
Function1stCycle2ndCycleAcceptableCommandduringBusy
Read00h30h
查看6410芯片手册
1初始化nandflash控制器:时间参数/使能片选引角
Nandflash/s3c6410
nCEnCS2_NAND(Xm0CSn2/GPO0)
2命令/地址/读数据
发送命令:把命令写到NFCMMD寄存器
发送地址:把地址写到NFADDR寄存器
发送数据:把数据写到NFDATA寄存器
读数据:读NFDATA寄存器
Openjtag操作nandflash
1读id:
(1)初始化:
查看芯片手册
MEM_SYS_CFG0x7E00_F120R/WConfigurememorysubsystem0x0000_0080
Xm0CSn[2]
----1-SROMCCS2
----0-OneNANDCCS0
----0-NFCONCS0
设置MEM_SYS_CFG=0,让Xm0CSn[2]用作nandflash的片选信号
Mdw0x7E00F120
//memmorywriteword
Mww0x7E00F1200
查看芯片手册
NFCONF0x70200000R/WNANDFlashConfigurationregister0xX000100X
设置时间参数
Mww0x702000000x8000777e
(2)发送使能信号
查看芯片手册
NFCONT0x70200004R/WNANDFlashcontrolregister0x000100C6
SoftLock[16]SoftLockconfiguration
0:Disablelock1:Enablelock
Reg_nCE0[1]NANDFlashMemoryXm0CSn2signalcontrol
0:ForceXm0CSn2tolow(Enablechipselect)
1:ForceXm0CSn2toHigh(Disablechipselect)
Note:ThisvalueisonlyvalidwhileMODEbitis1
MODE[0]NANDFlashcontrolleroperatingmode
0:NANDFlashControllerDisable(Don’twork)
1:NANDFlashControllerEnable
NFCONT(0x70200004)[0]=1/*使能nandflash控制器*/
NFCONT(0x70200004)[1]=0/*让xm0csn[2]输出0*/
NFCONT(0x70200004)[16]=0/*softlock*/
mdw0x70200004/*0x100c6*/
mww0x702000040xc5
(3)发送读id命令
查看芯片手册:
NFCMMD0x70200008R/WNANDFlashcommandsetregister0x00
查看K9F2G08U0A数据手册:
ReadID90h-
//复位
Mwb0x702000080xff
//把0x90写到NFCMMD(0x70200008)
Mwb0x702000080x90
(4)发出地址0
NFADDR0x7020000CR/WNANDFlashaddresssetregister0x0000XX00
//把把0写到NFADDR()
Mwb0x7020000C0
(5)读数据
NFDATA0x70200010R/WNANDFlashdataregister0xXXXX
Mdb0x70200010
2读数据
(1).初始化
mww0x7E00F1200/*把xm0csn[2]配置为nandflash的片选信号*/
mww0x702000000x8000777e/*设置时间参数*/
(2)发出片选信号
mww0x702000040xc5
(3)发出复位信号
mwb0x702000080xff
(4)发出读命令
mwb0x702000080
(5)发出地址
mwb0x7020000C0
mwb0x7020000C0
mwb0x7020000C0
mwb0x7020000C0
mwb0x7020000C0
(6)发出0x30命令
mwb0x702000080x30
(7)读数据
mdb0x70200010