nand

nand flash裸机编程
第001节_NAND_FLASH操作原理
第002节_NandFlash时序及初始化
第003节_NandFlash的芯片id读取
第004节_NandFlash的数据读取
第005节_NandFlash的擦除与烧写

第001节_NAND_FLASH操作原理
NAND FLASH是一个存储芯片
那么: 这样的操作很合理”读地址A的数据,把数据B写到地址A”

问1. 原理图上NAND FLASH和S3C2440之间只有数据线,
怎么传输地址?
答1.在DATA0~DATA7上既传输数据,又传输地址
当ALE为高电平时传输的是地址,

问2. 从NAND FLASH芯片手册可知,要操作NAND FLASH需要先发出命令
怎么传入命令?
答2.在DATA0~DATA7上既传输数据,又传输地址,也传输命令
当ALE为高电平时传输的是地址,
当CLE为高电平时传输的是命令
当ALE和CLE都为低电平时传输的是数据

问3. 数据线既接到NAND FLASH,也接到NOR FLASH,还接到SDRAM、DM9000等等
那么怎么避免干扰?
答3. 这些设备,要访问之必须”选中”,
没有选中的芯片不会工作,相当于没接一样

问4. 假设烧写NAND FLASH,把命令、地址、数据发给它之后,
NAND FLASH肯定不可能瞬间完成烧写的,
怎么判断烧写完成?
答4. 通过状态引脚RnB来判断:它为高电平表示就绪,它为低电平表示正忙

问5. 怎么操作NAND FLASH呢?
答5. 根据NAND FLASH的芯片手册,一般的过程是:
发出命令
发出地址
发出数据/读数据

      NAND FLASH                      S3C2440

发命令 选中芯片
CLE设为高电平 NFCMMD=命令值
在DATA0~DATA7上输出命令值
发出一个写脉冲

发地址 选中芯片 NFADDR=地址值
ALE设为高电平
在DATA0~DATA7上输出地址值
发出一个写脉冲

发数据 选中芯片 NFDATA=数据值
ALE,CLE设为低电平
在DATA0~DATA7上输出数据值
发出一个写脉冲

读数据 选中芯片 val=NFDATA
发出读脉冲
读DATA0~DATA7的数据

用UBOOT来体验NAND FLASH的操作:

选中 NFCONT的bit1设为0 md.l 0x4E000004 1; mw.l 0x4E000004 1
发出命令0x00 NFCMMD=0x00 mw.b 0x4E000008 0x00
发出地址0x00 NFADDR=0x00 mw.b 0x4E00000C 0x00
发出地址0x00 NFADDR=0x00 mw.b 0x4E00000C 0x00
发出地址0x00 NFADDR=0x00 mw.b 0x4E00000C 0x00
发出地址0x00 NFADDR=0x00 mw.b 0x4E00000C 0x00
发出地址0x00 NFADDR=0x00 mw.b 0x4E00000C 0x00
发出命令0x30 NFCMMD=0x30 mw.b 0x4E000008 0x30
读数据得到0x17 val=NFDATA md.b 0x4E000010 1
读数据得到0x00 val=NFDATA md.b 0x4E000010 1
读数据得到0x00 val=NFDATA md.b 0x4E000010 1
读数据得到0xea val=NFDATA md.b 0x4E000010 1
退出读状态 NFCMMD=0xff mw.b 0x4E000008 0xff

第002节_NandFlash时序及初始化

第003节_NandFlash的芯片id读取

第004节_NandFlash的数据读取
a. 地址问题
CPU大爷: 小nand啊,你的性能比不上小nor啊,听说你有位反转的毛病
Nand : 是的,大爷,位反转是我天生的毛病,时有时无
CPU大爷: 靠,你说你价格便宜容量大,这不是害我嘛
Nand : 没事,我有偏方,用OOB就可以解决这问题
CPU大爷: 得得得,你那偏方是什么也别告诉我,我只管能读写正确的数据
Nand : 是的,大爷,我这OOB偏方也就我自个私下使用。
您就像使用nor一样使唤我就可以了

b. 实现nand flash的页读取
c. 实现从nand flash启动

作业:

第005节_NandFlash的擦除与烧写

作业:

Original: https://www.cnblogs.com/agui125/p/12052412.html
Author: 风御之举
Title: nand

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/643406/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 亿赛通文件外发

    http://www.esafenet.com/product/278192282 Original: https://www.cnblogs.com/hshy/p/1653901…

    技术杂谈 2023年5月31日
    084
  • pickleDB一个轻量级python数据库

    pickleDB pickleDB 欢迎 快速开始 快速安装 基础命令 打开或者新建一个数据库 设置一条数据 增加一条数据 获取数据 删除一个数据 删除数据库 一些废话 欢迎 pi…

    技术杂谈 2023年7月11日
    097
  • airflow sample to start google chrome broswer

    from datetime import datetime, timedelta from airflow.utils.dates import days_ago from air…

    技术杂谈 2023年5月31日
    087
  • 自定义注解

    前言 目标:将各个类及各个方法进行区分模块、区分方法操作类型,把方法内的操作记录到日志。 这篇也算是自定义注解的一个应用场景。 方案 自定义注解 在各个类和方法上标记自定义的注解 …

    技术杂谈 2023年6月1日
    091
  • 我的笔记本电脑瞬间扩大一个T的容量!

    前言 不知道有多少人在家里搭建中央存储设备的,也就是NAS。这个东西在我日常生活中,存储了大量的个人资料,家人们的照片,技术的资料,还有各种高清影视剧。搭配公网的IP,可以真正做到…

    技术杂谈 2023年7月11日
    0203
  • 实现Kubernetes可观测性的3个最佳工具

    一个管理和实施得当的可观测性系统为DevOps提供了细化的洞察力,可用于调试和治愈复杂系统。可观察性将监控、警报和日志与指标可视化及其分析相结合。它允许开发团队详细了解Kubern…

    技术杂谈 2023年6月1日
    0102
  • SpringMVC

    SpringMVC 注解收集: -@component 组件 -@service service -@controller contro1ler /*代表这个类会被Spring接管…

    技术杂谈 2023年6月21日
    078
  • chess video

    预备知识: reduce() ”’ 用传给 reduce 中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 functi…

    技术杂谈 2023年7月24日
    064
  • ARM——操作系统—最小操作系统-开发板测试

    怀着激动的心情,打算弄到硬件上试试。 折腾了一整天。终于运行起来了。 需要设置IBRD和CR,以及寄存器。 希望大家也能顺利完成自己的开发板实验。 我畅想了一下,目前所有带串口的嵌…

    技术杂谈 2023年5月31日
    090
  • Hosts映射

    Hosts映射 思考:如何通过主机名能够找到(ping)某个linux系统? 前言 Hosts:是一个文本文件,用来记录IP和Hostname的映射关系 DNS:是互联网上作为域名…

    技术杂谈 2023年6月21日
    084
  • Feign和Ribbon的重试机制

    Feign和Ribbon的重试机制 Ribbon的重试机制 配置 ribbon: ReadTimeout: 2000 ConnectTimeout: 2000 MaxAutoRet…

    技术杂谈 2023年5月31日
    0108
  • 进程最后的遗言

    进程最后的遗言 前言 在本篇文章当中主要给大家介绍父子进程之间的关系,以及他们之间的交互以及可能造成的状态,帮助大家深入理解父子进程之间的关系,以及他们之间的交互。 僵尸进程和孤儿…

    技术杂谈 2023年7月23日
    080
  • 变通

    页面后端的RestController调用远程RPC得到一个List对象集合。页面上要展示name,而List里的DTO的类型里只有id没有name,这时,页面可以变通处理。而不一…

    技术杂谈 2023年7月11日
    069
  • 大整数算法

    本文主要整理了几个常用的大整数的算法:大整数加法大整数乘法大整数阶乘大整数幂其实大体的思路都差不多,都是用数组来存储大整数。以下的代码仅仅实现功能,并没有充分详细的参数判断,在实际…

    技术杂谈 2023年6月21日
    076
  • 服务器上的文件的上传和下载

    服务器上的文件的上传和下载 我们有很多种方式上传文件到服务器上,比如 FTP, 比如使用命令行工具: SZ/RZ, SCP等等的。 我之前经常使用的是 SZ/RZ这个命令,但是在M…

    技术杂谈 2023年6月1日
    0105
  • Linux命令系列之top——里面藏着很多鲜为人知的宝藏知识

    Linux命令系列之top——里面藏着很多鲜为人知的宝藏知识 简介 top命令是我们经常用来查看系统信息的一个指令,它提供了一个动态的而且是实时的借口帮助我们去查看系统执行时的进程…

    技术杂谈 2023年7月24日
    083
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球