协议类基础——NAND Flash

本篇参考K9F2G08U0M的芯片手册
假定jz2440连接NAND芯片

本文所说的读写操作都是对于2440来说的,请注意分别

电路图

在这里插入图片描述
描述如下在这里插入图片描述
在这里插入图片描述

  • IO0——IO7
    对于NAND芯片,IO0到IO7可以用做输入指令、地址和数据,也可以发送给2440数据。

引脚

IO0~IO7

  • 既可以互传数据,也可以2440给NAND芯片传地址和命令

CE(chip enable)片选

  • 高电平时忽略,不回应2440的所有指令
  • 低电平,则被选中,回应指令

WP(写保护

  • 当这个引脚为低电平,那么2440只能在NAND上读取。不能写、不能擦除。

R/B(ready/busy output)

  • 传输指令、数据给NAND FLASH后,NAND会在内部进行烧写。这个烧写不可能时瞬间完成的,所以要用这个引脚表示状态,是否完成。
  • 高电平表示READY,内部操作已经完成
  • 低电平表示BUSY,内部还在进进行操作

如何分别IO0~IO7传输的时数据、命令还是地址

CLE、ALE

  • 当CLE为高电平时,表示命令
  • 当ALE为高电平时,表示地址
  • 当CLE和ALE都不为高电平时,表示数据

数据从2440到NAND还是NAND到2440

IO0~IO7上的数据是从2440到NAND还是NAND到2440

RE(读信号)、WE(写信号

  • 当RE为低电平时,数据从NAND到2440
  • 当WE为低电平时,数据从2440到NAND

我的理解:读写操作都是2440做的,所以读和写都是对于2440来说的

时序图

发命令

2440发送命令给NAND FLASH
首先看看有哪些命令
在这里插入图片描述

在这里插入图片描述

  • 选中此NAND FLASH芯片,将CE变为低电平为选中
  • 片选完毕,CLE电平同时拉高,表示命令
  • ALE为低电平,不做任何表示
  • IO0对应命令的bit0,IO7对应命令的bit7
  • 2440给NAND FLASH,则需要一个写信号,WE为低电平
  • NAND在WE的上升沿获取一系列信息,如数据的类型、是否片选、具体的信息

流程如下:

  • 1、CE片选——电平拉低
  • 2、CLE、ALE信息是命令、地址还是数据
  • 3、发送8位信息
  • 4、发送写信号
  • 5、NAND FLASH在写信号的上升沿获取以上全部信息

发地址

2440发送地址给NAND FLASH
在这里插入图片描述
上面这张图看着很乱,实际上不用害怕
和上一栏差不多

步骤如下:

  • 1、CE变成低电平,片选
  • 2、ALE变为高电平,CLE低电平,表示信息为地址
  • 3、发送地址数据
  • 4、we拉低,作为写信号。
  • 5、在we的上升沿获取一切信息

写数据

2440发送数据给NAND FLASH
在这里插入图片描述
步骤如下:

  • 1、CE变成低电平,表示片选设备
  • 2、CLE、ALE为低电平,表示信息是数据
  • 3、IO0~IO7发送8位数据
  • 4、发送写信号
  • 5、WE的上升沿使,NAND FLASH获取数据的类型,8位数据等信息

细节:在WE下降沿时,IO0~IO7对应bit准备数据,在WE上升沿NAND FLASH获取数据

读数据

在这里插入图片描述

步骤如下:

  • 1、CE为低电平,片选
  • 2、CLE、ALE都为低电平,8位二进制是数据
  • 3、RE读信号由高变为低再为高
  • 4、在RE变为低电平时,IO0~IO7马上准备数据
  • 5、NAND FLASH在RE的上升沿读取以上信息

细节:在RE下降沿时,IO0~IO7对应bit准备数据,在WE上升沿NAND FLASH获取数据

信号间的时序关系

想象一下,在2440向NAND FLASH写操作时,如果WE下降到上升的时间很短,那么NAND FLASH可能反应不过来。

回到前面的时序图

以发命令为例
在这里插入图片描述
发送片选信号后,经过tcs后,写信号才能有上升沿
写信号的脉冲宽度位twp
我们可以通过芯片手册查看这些时间信息

时序要求

在这里插入图片描述
在上表的 WE Pulse Width可以看到芯片型号的对应最小值时 25ns(纳秒),配置大于他就行了

时序图中的twp、tcs、tch、tcls、tclh等时间参数都是有规定的

2440发出的信号,必须要满足该NAND FLASH的时序要求——即引脚间相互的时序关系
这些值的要求可以从手册中读出来

NAND FLASH控制器

如何控制2440发出的这些信号呢——这就需要根据手册配置NAND FLASH控制器

NAND FLASH控制器中有一系列的寄存器,配置这些寄存器,就可以使2440发出满足对应NAND FLASH芯片时序要求的信号了

接下来大概看一眼
打开对应章节
在这里插入图片描述
比如这里就是写信号读信号相关
在这里插入图片描述
可以设置TWRPHO、WTWRPH1来设置这些参数
在这里插入图片描述
这些参数就和NAND FLASH中WE、RE的twp扯上关系了。

配置寄存器

在这里插入图片描述
HCLK表示2440中的某个寄存器

假设HCLK是10ns
那么TWRPH0取2就可以使twp的值大于最小的15ns

那么多时序参数,是否需要每个都弄清?
不用——2440中可配置的参数有限,把这三个配置好就可以了
在这里插入图片描述

TWRPH0

——表示WE、RE信号的脉冲

TACLS

——控制CLE、ALE发出后,多久时间读写信号变成低电平
在这里插入图片描述
参考上面的时序要求
在这里插入图片描述
发现CLE、ALE的setup time的最小值和WE一样
也就是说,CLE、ALE一发出,就可以马上发送读写信号
此NAND FLASH的TACLS可以配置为0

TWRPH1

——读写信号变为高电平后,CLE/ALE还要维持多长时间
在这里插入图片描述
在这里插入图片描述
查看NAND FLASH的手册发现,CLE/ALE的持续时间至少要5ns

查看2440手册
在这里插入图片描述
假设HCLK是100兆,也就是10ns
那么这个值可以取为0,计算得出10ns,满足大于等于5ns

总结

1、看2440手册,确定能设置哪些参数,参数的含义
2、看外设手册(NAND FLASH),确定取值范围
3、计算

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Spark!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值