1.硬件知识
1.1 如何传输地址信号?
DATA0 ~ DATA7上既传输数据,又传输地址(复用)
ALE (Address Lock Enable)地址锁存允许信号
当ALE = 1时,传输地址
当ALE = 0时,传输数据
1.2 如何传输命令?
命令表
由NAND FLASH芯片手册可知,要操作NAND FLASH需要先发出命令
DATA0 ~ DATA7上既传输数据,又传输地址,也传输命令
CLE (Command Lock Enable)地址锁存允许信号
当ALE = 1时,传输地址
当CLE = 1时,传输命令
当ALE = 0 & CLE = 0时,传输数据
1.3.NAND、NOR、SDRAM、DM900数据总线,如何互不干扰?
这些设备,访问之前必须通过片选CS引脚“选中”,没有选中芯片不会工作
1.4 给NAND烧写,如何判断烧写完成?
通过状态引脚RnB来判断:
当高电平表示就绪(空闲)
当低电平表示正忙
2.如何操作NAND
发送命令
发送地址
发出数据/读数据
NAND FLASH需要复杂的流程才能进行操作,由于S3C2440中有NAND FLASH控制器,只需要向相应的寄存器写入或读出数据即可,如下表
操作 NAND FLASH S3C2440
发命令 CS选中芯片
CLE设置为高电平
在DATA0~DATA7上输出命令值
发出一个写脉冲 NFCMMD=命令值
发地址 CS选中芯片
ALE设置为高电平
在DATA0~DATA7上输出命令值
发出一个写脉冲 NFADDR=地址值
发数据 CS选中芯片
CLE、ALE设置为低电平
在DATA0~DATA7上输出命令值
发出一个写脉冲 NFDATA=数据值
读数据 CS选中芯片
发出读脉冲
读DATA0~DATA7的数据 val=NFDATA
2.1 读ID
选中:NFCONT寄存器bit1设为0
发出命令90H:NFCMMD=0x90
发出地址00H:NFADDR=0x00
读数据得到ECH:val=NFDATA
读数据得到Device Code:val=NFDATA
退出读ID的状态(复位):NFCMMD=0xFF
2.2 读内容
选中芯片: NFCONT寄存器bit1设为0
发出命令90H:NFCMMD=0x00
发出5个字节的地址位
for(i = 0;i<5;i++)
{
NFADDR = 0x00;
}
发出命令17H:NFCMMD=0x17
读数据:val=NFDATA
退出读状态(复位):NFCMMD=0xFF
3.NAND初始化
初始化主控芯片NAND FLASH控制器
3.1 时序
不同NAND芯片,操作时序不同
NAND FLASH命令锁存周期图(时间参数由“时间特性表”可以得到)
NAND FLASH时间特性表
由上两图分析可得,S3C2440 NAND FLASH控制器时序时间
TACLS最小等于0ns;TWRPH0最小等于12ns;TWRPH1最小等于5ns
再由上图得到的结论:TACLS最小等于0ns;TWRPH0最小等于12ns;TWRPH1最小等于5ns
分别得到寄存器的值(如上图)
得到几条关键的信息:
1.CLE、ALE、WE信号可以同时发出
2.WE信号的持续时间(tWP)最小为12ns
3.WE信号释放后,ALE和CLE信号释放的最小时间为5ns
#define TACLS 0
#define TWRPH0 1
#define TWRPH1 0 //为了方便理解,时间定义为宏
/* 设置nand 时序 */
NFCONF = (TACLS<<12) | (TWRPH0<<8) | (TWRPH1<<4);
3.2 注意NAND是8位的
注意:因为这里的Nand Falsh的位宽是8位的,因此地址,命令、数据、状态 的读写只能以8位形式,因此需要重新设置一下读写的字节数:
3.3 NAND控制器使能、初始化ECC
1.NAND控制器使能
2.先禁止片选,避免误操作
3.初始化ECC编码器
/* 使能NAND FLASH控制器、禁止片选、初始化ECC */
NFCONT = (1<<4) | (1<<1) | (1<<0);
上一篇:【ARM裸板】Nand Flash编程
下一篇:【ARM裸板】Nor Flash基础知识与编程示例
推荐阅读最新更新时间:2024-11-11 06:57
设计资源 培训 开发板 精华推荐
- RT7236、5A、18V、650kHz、ACOT同步降压转换器的典型应用
- 使用 Analog Devices 的 LTC2257-14 的参考设计
- Si5601-EVB,用于 SI5601 OC-192/S-64 SONET/SDH 收发器的评估板套件,具有单独的 VDD 1.8 V 电源连接
- 用于 LTC5509 双频段移动电话功率检测和控制的宽带 RF IC 使用电阻抽头进行发射功率控制
- TPS65133+-5V双电源模块
- LTM4630IY 2 相、1.5V、36A 输出 DC/DC 稳压器的典型应用电路
- 使用 Silicon Labs 的 Si2704-A10-GM 的参考设计
- 【训练营基础班】基于STC8A8K64S4A12的单片机学习板
- MC34074VDR2G光伏电池放大器的典型应用
- SC33063A 具有外部 PNP 饱和开关的降压开关转换器的典型应用