历史上的今天
返回首页

历史上的今天

今天是:2025年03月05日(星期三)

正在发生

2020年03月05日 | 【ARM裸板】Nand Flash基础与时序分析

2020-03-05 来源:eefocus

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);

推荐阅读

史海拾趣

常州能动(ENDRIVE)公司的发展小趣事

人才是企业发展的重要保障。常州能动深知这一点,因此在发展过程中始终注重人才引进与培养。公司不仅积极引进高端技术人才,还建立了完善的培训体系,为员工提供多样化的培训机会,帮助他们不断提升技能水平。这些措施使得公司的人才队伍不断壮大,为公司的持续发展提供了有力保障。

Bergquist Company公司的发展小趣事

为了进一步扩大市场份额,Bergquist Company开始积极拓展全球市场。公司先后在英国、德国、韩国等地设立了办事机构,并在30多个国家设立了销售代表处。这些举措不仅使公司的产品和服务覆盖了更广泛的地区,还为公司带来了更多的商业机会。同时,Bergquist Company还积极寻求与其他企业的合作,通过技术交流和资源共享,不断提升自身的竞争力。

佰鸿(BrtLed)公司的发展小趣事

近年来,佰鸿公司开始将业务触角延伸至再生医学领域。通过多年的努力,公司成功建立了再生医学医疗与健康科技生态圈,并逐步实现了产业集群化。在再生医学领域,佰鸿不仅建立了产业化场地和研发设备,还计划在未来几年内打造国际领先的再生医学产业集群。这一多元化的发展战略,使得佰鸿在电子行业之外,也找到了新的增长点。

超霸(GP)公司的发展小趣事

绿索超容在追求经济效益的同时,始终不忘履行社会责任。公司积极响应国家绿色发展的号召,致力于环保事业和可持续发展。在产品研发和生产过程中,绿索超容始终坚持绿色、低碳、环保的理念,采用环保材料和工艺,减少对环境的影响。此外,公司还积极参与社会公益活动,为社会贡献自己的力量。这些举措不仅提升了绿索超容的企业形象,也为其在电子行业中树立了良好的口碑。

CSB公司的发展小趣事

随着国内市场的饱和,CSB公司开始将目光投向海外市场。公司制定了国际化战略,通过设立海外分支机构、拓展国际市场渠道、加强与国际合作伙伴的合作等方式,逐步实现了全球市场的布局。在国际市场上,CSB公司的产品和服务得到了广泛认可,为公司带来了丰厚的回报。

这些故事虽然是对电子行业企业发展的一般性描述,但可能在一定程度上反映了CSB公司或其他类似企业在电子行业中的发展历程。然而,需要注意的是,每个企业的发展道路都是独特的,具体的故事还需根据企业自身的实际情况来编写。

Anritsu公司的发展小趣事

在电子行业的初期,CSB公司以其独特的技术创新能力脱颖而出。公司研发团队在某一关键领域取得了重大突破,开发出了一款具有市场竞争力的新产品。这款产品不仅满足了消费者对性能和品质的高要求,还凭借其独特的设计和功能,吸引了大量忠实用户。随着产品的热销,CSB公司的知名度逐渐提升,市场份额也稳步增长。

问答坊 | AI 解惑

wince sleep

大家好,请问:wince sleep时会广播什么消息!会向应用程序发消息吗?我想在应用程序里面来得到SLEEP的消息!谢谢了! …

查看全部问答>

EBOOT中startup.s代码问题

在读startup.s的代码时碰到几句像下边的语句        add   r0, pc, #MEMCTRLTAB - (. + 8)    add     r11, pc, #g_oalAddressTable - (. + 8)     这里边的(. + 8)是 ...…

查看全部问答>

嵌入式linux和普通linux的区别

希望有朋友能够详细的讲一下。谢谢!…

查看全部问答>

怎麼用VB跟GPIB总线的(IEEE488)通信呀?

因為沒有GPIB接口的線,所以我用RS232線代替 MSComm1.Settings = \"9600,n,7,1\" If MSComm1.PortOpen True Then MSComm1.PortOpen = True End If    MSComm1.Output =\"*RST\"    strinput = MSComm1.Input T ...…

查看全部问答>

兄弟们,推荐一款"IC刷卡模块"

兄弟们,推荐一款\"IC刷卡模块\",能接在s3c2440开发板(预装WinCE5.0),即ARM9做控制。 1. IC刷卡模块一般用什么接口与s3c2440开发板连接; 2. 请给出产品连接或产品名; 3. 哪位兄才做过刷卡考勤的,能否给点思路或资料(重分)。 谢谢!…

查看全部问答>

帮我推荐一块ARM板

我看一些周立功方面的很多关于ARM的书,但是一直没有自己的一快板子,所以想请各位帮我推荐一块便宜而又实用的ARM板,谢谢了!…

查看全部问答>

现实中,多人和多公司用STC的51单片机么?

之前学习51的基础(如果是指熟悉寄存器和基本编程的话),那算是差不多了。 于是开始正儿八经考虑选一款什么芯片用。 前不久让MSP430刺激了,可是这玩意不好弄,价格也贵。而且不熟。 然后调转枪头,看51,知道了很强大的C8051F,可是,它貌似也 ...…

查看全部问答>

鼓捣QEMU,可用于运行RT-Thread的仿真器

选择QEMU是因为QEMU开源、比较完备,支持的种类多,开发社区也活跃而用QEMU来调试一些东西也非常方便。如何编译最新版的QEMU(当前是0.14.0 rc1)下载QEMU 0.14.0 rc1版本后,如果是在linux下,按照通常的源程序,./configure --target-list=arm-so ...…

查看全部问答>

TTL与CMOS电路的区别

今天面试闹的一个让我苦笑不得的大笑话,老总,问我什么是TTL电平,什么是CMOS电平,它们有什么区别? 我紧张到考都不用考虑就说:TTL就是0和1;当时老总笑了,我回答过后才发现自己才胡扯,真的弄的我苦笑不得呀,这是最基本的,平常没注意这些 ...…

查看全部问答>

CCSv5最新版下载Version 5.4.0.00091

迅雷下载地址: http://downloads.ti.com/download ... baf395a2d4f99e5d518…

查看全部问答>