加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

NAND FLASH

发布时间:2020-12-15 19:52:12 所属栏目:百科 来源:网络整理
导读:Nand Flash 是一个存储芯片 Nand Flash 和s3c2440之间只有数据线 怎么传输地址: 1.在DATA0~DATA7上既传输地址又传输数据也传输命令 当ALE为高电平时传输地址 2.从NAND FLASH芯片手册上可知,要操作NAND FLASH需要先发出命令 怎么传命令? ①当ALE为高电平时


Nand Flash 是一个存储芯片 Nand Flash 和s3c2440之间只有数据线 怎么传输地址: 1.在DATA0~DATA7上既传输地址又传输数据也传输命令 当ALE为高电平时传输地址 2.从NAND FLASH芯片手册上可知,要操作NAND FLASH需要先发出命令 怎么传命令? ①当ALE为高电平时传输地址 ②当CLE为高电平时传输的是命令 ③当ALE和CLE都为低电平时传输的是数据 数据线既接到NAND FLASH,也接到NOR FLASH、SDRAM、DM9000 怎么避免干扰? 要访问这些设备,必须“选中” 没有选中的芯片不会工作,相当于没接一样 假设烧写NAND FLASH,把命令、地址、数据发给它之后, NAND FLASH肯定不能瞬间完成烧写的, 怎么判定烧写完成? 通过状态引脚RnB来判断:它为高电平表示就绪,它为低电平表示正忙 怎么操作NAND FLASH? 1.根据NAND FLASH 芯片手册,一般的过程是: ①发出命令 ②发出地址 ③发出数据/读数据 NAND FLASH ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?S3C2440 发命令 ? ? ? ?选中芯片NFCMMD = 命令值 CLE为高电平 在DATA0~DATA7上输出命令信息 发一个写脉冲 发地址 ? ? ? ?选中芯片NFADDR = 地址值 ALE为高电平 在DATA0~DATA7上输出地址值 发一个写脉冲 发数据 ? ? ? ?选中芯片NFDATA = 数据值 ALE,CLE为高电平 在DATA0~DATA7上输出数据值 发一个写脉冲 读数据 ? ? ? ?选中芯片val = NFDATA 发出一个读脉冲 读DATA0~DATA7的数据 用UBOOT 体验NAND FLASH 的操作 ?(md,mw,b:1byte,w:2byte,l:4byte) 1.读ID 选中NFCONT的bit1设为0 ? ? ? md.l 0x4E000004 1; mw.l 0x4E000004 1 发出命令0x90 NFCMMD = 0x90 ? ? ? ? ? mw.b 0x4E000008 0x90? 发出地址0x00NFADDR = 0x00mw.b 0x4E00000C 0x00 读数据得到0xECval = NFDATA ? ? ? ? ? ?md.b 0x4E000010 1 ? 读数据得到device codeval = NFDATAmd.b 0x4E000010 1? 退出读ID的状态 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?MFCMMD = 0xff ? ? ? ? ? mw.b 0x4E000008 0xff 2.读内容:读0地址内的数据 使用UBOOT命令: nand dump 0 =========================================================== 测试: 1.make menuconfig 去掉内核自带的NAND FLASH驱动 Device Drivers Memory Techonology Device (MTD) Support Nand Flash support for s3c2410/2440 soc ? ?(设为N,去掉) ----------------------------------------------------------- 2.make uImage cp arch/arm/boot/uImage /work/nfs_root/uImage_nonand 使用新内核启动,并使用NFS作为根文件系统 3.insmod s3c_nand.ko 4.格式化(参考下面编译工具) #flash eraseall /dev/mtd3 ? ? ? ? ?//yaffs 5.挂接 ? ? ? ? ?(取消挂接 umount /mnt) mount -t yaffs /dev/mtdblock3 /mnt 6.在/mnt目录下创建文件 ? mkdir test cd test/ vi ?1.txt umount /mnt 重启开发板 ①insmod s3c_nand.ko ②挂接 mount -t yaffs /dev/mtdblock3 /mnt cd /mnt ls cat 1.txt 在linux下解压? tar xjf mtd-utils-05.07.23.tar.bz2 cd mtd-utils-05.07.23/ ls cd util ls 修改vi Makefile #CROSS=arm-linux- 改为CROSS=arm-linux- make cp flash_erase flash_erase /work/nfs_root/first_fs/bin/

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读