nand flash学习笔记一

发布者:温暖的微风最新更新时间:2024-10-15 来源: cnblogs关键字: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
(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   

 



关键字:nand  flash  学习笔记 引用地址:nand flash学习笔记一

上一篇:异常处理学习笔记
下一篇:DDR学习笔记

小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved