NAND FLASH 控制器.ppt

  1. 1、本文档共34页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
NAND FLASH 控制器

块擦除时序 60h D0h 70h 块地址 多块擦除 最多可重复4次 页拷贝 命令格式 命令字:00 原地址 命令字:8A 命令字:70:读取状态 根据状态字执行响应操作 目的地址 命令字:10 页拷贝时序图 00h 8Ah 10h 70h 源地址 目标地址 拷贝到同一PLANE的另一页 状态命令寄存器 命令结束后,通过读取相应管脚的值确定操作状态 NAND FLASH 控制器 K9F1208U0M NOR NAND 对比 NOR NAND 容量 1MB~32MB 16MB~512MB XIP 可片内执行 不可 擦除速度 5s 3ms 写 慢 快 读 快 较快 可靠性 较高 较低,需校验 可擦除次数 10000~100000 100000~1000000 生命周期 低,10%NAND 10 NOR 接口、体积 与RAM相同 I/O口 访问控制 随机存储 串行访问 编程简易度 简单 复杂,实现控制协议 主要用途 存放程序 存放数据 价格 高 低 NAND FLASH 物理结构:K9F1208U0M K9F1208U0M 引脚定义 硬件接口电路 传输所有命令字,地址,数据 软件控制协议基本流程 指令,数据通过I/O口传输,每次一字节 操作示例:写入一页数据 就绪/忙碌 数据线 命令字:80h代表写入页操作 要写入的地址,写入的数据 命令字:10h代表执行写入 命令字:70h查询状态 状态判断 必须在R/B状态为低时执行写入 K9F1208U0M 命令字 00h读A区,01h读B区 读C区 读芯片序列号 复位 写入 多页写入 复制 多块复制 块擦除 多块擦除 K9F1208U0M 存储结构 页地址 四个Plane 每个Plane 1024个块 每个块32页 每页512字节+16字节 PLANE划分 注意: Plane内的块不是连续的。纵向组合 Block 0 Block 1 Block 4092 Plane 0 K9F1208U0M 地址格式 每页512+16=28+1+24 I/O线共8条,每次8位,固只能分两次读取 地址:A0 ~ A7 联合命令字确定上半部(00h),下半部(01h) 列地址 页地址 页地址中: 每32页一个块,所以:A9 ~ A13 为块内页地址 每1024个块组成一个Plane,A14 ~ A25 为 Plane内块地址 共有4个Plane,A14 ~ A15 为Plane地址 地址格式:列地址+页地址+Plane地址+块地址 注意: 为什么没有A8 读操作 命令格式:00h/01h+地址 页结构: 一页512+16字节,8位地址显然不够,至少需要三次读取 每页分为三个区,A:0~255 B:256~511 C:512~527 通过命令字确定读取的是哪个区 页面区读取 显然: 00h读取前半区,相当于A8=0 01h读取前半区,相当于A8=1 读操作时序:A,B区 命令字 地址,分四次传输 数据输出 读操作时序:C区 有效地址数据:A0~A3 数据输出 从上半区开始读取 从下半区开始读取 数据由起始地址顺序输出 ?如何停止数据输出 使CE引脚变高 数据读取的编程 正确的读取数据,需要严格按照时序进行 编程过程: 控制时序 根据时序实现I/O口上的指令协议 核心:寄存器的配置和读写 相关寄存器 寄存器 功能 NFCONF: 配置寄存器,配置时序 NFCMD: 寄存器写入指令 NFADD: 寄存器写入地址 NFDATA: 数据寄存器 NFSTAT: 状态寄存器 时序分析 寄存器 操作 CLE ALE CE WE RE NFCONF: 使能外部flash L NFCMD: 写入控制字 H L L L H NFADD: 写入地址 L H L L H NFDATA: 读取数据 L L L H L 当执行下列操作时,相应的引脚状态如下表自动变换 引脚状态必须满足如下状态才能执行相应的操作 寄存器时序配置 S3C2410时序 NAND FLASH 时序值 寄存器时序配置值: TACLS=0 TWRPH0=3 TWRPH1=0 程序编制原语 NFCONF = ~0x300; //使能NANDFLASH, CE置0,配置时钟 for(i=0; i10; i++); //等待10个周期,确保就绪 NFCMD = 0x00; //ALE置0,CLE置1,WE由低变高 ?/*写地址*/ //ALE置1,CLE置0,WE由低变高 NFADDR =A0~A7; NFADDR = A9~A16; NFADDR = A17~A24; ?NFADDR = A25; /*读取数据*/ *buf = NFDATA NFCONF = ~0x800

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档