历史上的今天
返回首页

历史上的今天

今天是:2026年01月31日(星期六)

2023年01月31日 | S3c2440处理器中nor flash启动和nand flash启动问题

2023-01-31 来源:elecfans

S3c2440是三星公司推出的一款基于ARM920T的处理器,采用ARM内核,不同于单片机,无片上rom与ram,必须搭配相应的外围电路进行使用,现在,让我们从零开始进行这一块MCU的学习,为了入门简单方便,前期我不会搭载任何操作系统,本手册写到哪算哪.


1.什么是nor flash启动和nand flash启动

在任何视屏教程里面,都会告诉你一个开关左右选择就能norflash启动或者nand flash启动,norflash启动能直接运行代码,nand flash启动不能直接运行代码,可是为什么呢?


要知道这一点,首先要明白nandflash和norflash的区别,首先,norflash是随机存储介质,也就是说,对norflash的操作时可以进行任意单字节的读写的,而nanaflash是块存储介质,对nandflash的读写只能以块的方式读写,也就是说,nand要修改一个字节,必须重写整个块

由此我们就可以知道,nand flash不可能作为代码直接执行的介质了,理论上,就算我们通过电路实现了nand flash执行代码也不可能,因为代码执行很重要的一点是可以随机的对任意一个字节的数据进行任意修改,而nand写一个字节要重写整个块,这速度太慢了,还有一个原因,因为某些工艺因素的影响,nandflash生产过程中就可能出现坏块,另外,nandflash在多次擦写中也可能出现坏块,所以这也决定了nand不可能实现直接运行代码,只能做存储器的功能,以下是nandflash电路(TQ2440)

可见,nand flash分为八位和16位,地址线和数据线复用,依靠控制总线来切换地址数据时序,主要的控制线有

CLE:命令锁存使能线,输入命令时使用

ALE:地址锁存使能,输入地址时使用

nFCE:芯片使能,读写芯片时,这一位必须有效

NFRE:连接NRE读使能,读数据之前,要先让nre有效

NFWE:写使能,写数据的时候这根线有效

RNB :就绪/忙标志,主要用于发送完编程/擦除命令后,检测操作是否完成

WP :写保护使能

说完nandflash说说norflash,首先norflash的地址线和数据线是分开的,其次,是可以单字节读取写入的,另外,可靠性好,不易出现坏块,使用时间更长,(norflash上带的是通用sdram接口)

电路图如下,

因为是16位数据,所以没有接data0的必要,初始地址是0x00000000,

OE:读使能

WE写使能

片选接了GCS0,那么norflash寻址范围是多少呢?首先,选用的芯片是EN29系列,

该系列芯片说明书中说明

可见,NORFLASH是16M的,但是寻址范围是不是16M我们还需要确认NGCS0的选通时间,查看memory说明,有这样一段

也就是说2440的NGCS0分区大小为128M,驱动16M足足够了,所以,我们可以说,norflash启动,16M完全可用

接下来说一下SDRAM,电路图如下

这是两块相同的芯片,两块16位芯片合起来将数据总线扩展到32位

可以看到,地址线和数据线是分离的,控制接口主要由以下几根线组成

CKE:INPUT控制norflash内部时钟的使能与禁止,从而进入三种状态,掉电,挂起,自刷新(为了保持内部数据,设备自身也需要一个时钟来进行数据自刷新,和外部读写时钟并不是一个概念)

CLK:INPUT外部读写时钟,用于外部读写同步

其他的控制总线想要明白必须要先明白SRAM的架构,虽然不用去设计,但是明白SDRAM架构看不懂这个电路图,来,我们说说

以下是标准4bank的SDRAM内部结构

其写入原理如下

要存取数据时,先选中一行( wordline加高电位),于是这一行上挂着的所有的行选通NMOS都导通,电容中的数据就沿着bitline进入感应放大器,经其放大后到达列选通NMOS处。接下来,当某根CSL置高后,相应的列选通NMOS就导通,数据沿着bifline继续向IO接口传,或者外面的数据立即写入存储阵列。当然,具体实现肯定更复杂,但是基本原理就是这样

那么,这些控制线什么作用呢

LDQM UDQM:数据屏蔽,当LDQM为高,数据线上低8位被屏蔽UDQM高八位被屏蔽,这样就可以进行bank选择了(不管内存怎么设计,最终还是八位一个字节,所以需要屏蔽)

接下来我们看看SDRAM寻址,通过电路可以看到,WBE0 1 2 3分别四根线控制,也就是说,同一个地址,选择不同的WEB,可以依次读出0-7 8-15 16-23 24-31四个八位数据,CPU内部自动将这四个数据组合起来,形成一个32位数据,所以,实际上,依次读写操作获得或者写入数据单纯数据上就要四步,另外,地址写入也分两步,之前说了,SDRAM寻址分为行和列,所以写入地址分为写入行地址,写入列地址,简化来看,一共就是6步(没有说各种控制总线过程,大家有兴趣可以研究)

连接的ba0 ba1

首先四字节对其寻址(32位数据线),那么DAT0 DAT1的寻址线肯定是0,所以没有接上的必要,24 25 26决定最高位,如果为64M r601 r604接上,地址线24-25连接,CPU设置0x30000000为基地址的话,最高地址是0x33FFFFFF,(0x30000000-0x33ffffff) = 0x3ffffff个字节,一共就是64M字节

注意,这中间涉及到一个比较复杂的解码过程,就是将物理地址解码成总线地址,(两个数据),并不是说25 26连接了地址空间就绝对是0X36FFFFFF了


推荐阅读

史海拾趣

柯爱亚(ceaiya)公司的发展小趣事

在稳固国内市场的同时,柯爱亚积极寻求海外市场的发展机会。公司不仅参加了多个国际电子展览会,还与国际知名企业建立了合作关系。此外,柯爱亚还通过投资、并购等方式,不断拓展业务范围,实现了多元化发展。这些举措使柯爱亚在国际市场上的影响力逐渐增强。

FTDI [Future Technology Devices International Ltd.]公司的发展小趣事

2013年,FTDI推出了最新的嵌入式视频引擎(EVE)技术产品,这一创新标志着公司进入了一个新的技术领域。EVE技术将高度先进的图形控制器、显示器、音频和触摸功能集成到单一芯片中,为智能显示器在各种终端应用中的实现提供了强大支持。这一技术的推出不仅展示了FTDI在图像处理和显示领域的深厚积累,也为其后续在更多领域的拓展奠定了基础。

CML Microcircuits公司的发展小趣事

为了进一步扩大市场份额,CML Microcircuits公司开始积极拓展全球市场。通过与当地代理商和分销商建立合作关系,CML的产品逐渐进入了全球各地的电子市场。同时,公司还设立了多个海外研发中心和销售中心,以便更好地服务全球客户。这些举措不仅提升了CML的品牌知名度,也为其带来了更多的商业机会。

Caliber公司的发展小趣事

Caliber公司自创立之初,便以技术创新为核心竞争力。在电子行业的早期,该公司敏锐地捕捉到市场对高性能计算芯片的需求,投入大量资源进行研发。经过数年的努力,Caliber成功推出了一款具有划时代意义的芯片产品,以其出色的性能和稳定性赢得了市场的广泛认可。这一创新不仅为Caliber带来了巨大的商业成功,也为整个电子行业的发展注入了新的活力。

谷峰(GOFORD)公司的发展小趣事

在电子产品日益追求轻薄化、高效能的大背景下,GStek不断加大研发投入,致力于技术创新和产品研发。公司拥有一支由行业资深专家和年轻技术骨干组成的研发团队,他们紧密跟踪国际前沿技术动态,结合市场需求,不断推出具有自主知识产权的新产品。这些新产品不仅性能优异,而且成本效益显著,深受市场欢迎。通过持续的技术创新和产品升级,GStek在电源管理领域树立了良好的品牌形象。

ASM公司的发展小趣事

进入21世纪,ASM公司开始关注中国市场的潜力。随着中国经济的快速增长和半导体产业的蓬勃发展,ASM公司看到了巨大的商机。公司加大了对中国市场的投入,与中国半导体代工厂建立了紧密的合作关系,为中国市场提供了高质量的产品和服务。这一举措不仅促进了ASM公司在中国市场的快速发展,也为中国半导体产业的进步做出了贡献。

问答坊 | AI 解惑

我见到过的最好的模电电子书

我见到过的最好的模电电子书,结合现在公司能实用的,不是纯理论的。…

查看全部问答>

matrix如何打出英镑符号和欧元符号?

我们为客户开发一个matrix键盘,上面有一个英镑符号和一个欧元符号,我想用发keyevent的方式发送键值,请问欧元符合和英镑符号应该发送什么键值。找了半天也没有找到,请知道的兄弟帮个忙。谢谢!…

查看全部问答>

急!mobile新机型上,菜单上的文字莫名其妙的消失

以前的程序在mobile新的机型下运行时,出现问题。当点击菜单时,弹出子菜单,点击子菜单中的某一菜单项时,其他菜单项的文字消失。不知道是什么原因。想通过发送消息等手段,强制其他子菜单项显示原有文字,不知道该通过什么消息或事件来处理,请大 ...…

查看全部问答>

急!急!请各位大侠进来给点意见.

我之前做过USB方面驱动,最近要做PCI方面驱动,是实现这样两个功能 1.PCI转2串口+1并口 2.PCI转8串口 想请教的问题是: 1.这两个驱动是不是都属于多功能驱动? 2.多功能驱动的书写需要注意那些问题? 请务必给点意见,十分着急...…

查看全部问答>

高手救命:关于向PCI9054中CPLD寄存器中写入数据的问题?

环境为VC++6.0 CPLD寄存器地址:0x1f000;(偏移量) 要写入值为:        0。 写入数据的具体地址为:总线地址+偏移量 我想知道用什么具体的语句执行这个!那位高手知道,指点我一下吧! 我这先谢谢了!…

查看全部问答>

TB62801

哪位大侠用过CCD驱动芯片TB62801,没有什么外围电路,为什么接上输入信号输出只有高电平?…

查看全部问答>

关于定时器和串口的浅谈

由于自己对网络方面的PCB布线要求不是很了解,所以自己的第一版lm3s的pcb以失败告终。 只能先用开发板调试。周末花了两天的时间将8962的定时器和串口方面弄明白,以便开展后续工作。   其实,前人的帖子已经说的很到位了,在此我就谈谈自己 ...…

查看全部问答>

【挖电源】自制5V电源

    原理图:         220V交流市电通过电源变压器变换成交流低压,再经过桥式整流电路D1~D4和滤波电容C4的整流和滤波,在固定式三端稳压器LM7805的Vin和GND两端形成一个并不十分稳定的直流电压(该电压 ...…

查看全部问答>

大家一起学习PIC单片机之一

大家好,本人是PIC单片机新手,但是我很勤奋,我买的ND118-877APIC实验开发板,里面有实例,但是没有源代码,本人自己写代码大家一起交流,希望能陆续写下去,本人QQ476857290 希望大家学习指导 本节学习数码管动态显示0000-9999…

查看全部问答>

请问这块pcb的电源层左右两边为什么要分开?

这是TI给的THS3201评估版的PCB,请问这块板子的电源层左右两边是不是分开的,为什么要分开 …

查看全部问答>