nand flash学习笔记一
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 查看芯片手册: 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 ??
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |