1、第5章 存储器控制器及 Nand Flash控制器,本章重点:, S3C2410A与存储器相关的特性;与存储器芯片连接的S3C2410A引脚信号;存储器总线周期;特殊功能寄存器含义;存储器组成举例。 Nand Flash芯片工作原理;Nand Flash控制器组成、引脚信号含义、特殊功能寄存器含义及Nand Flash控制器与芯片连接的举例。,5.1 存储器控制器,5.1.1 S3C2410A与存储器相关的特性S3C2410A存储器控制器提供了访问存储器的控制信号,另外S3C2410A还提供了与存储器相关的地址总线、数据总线等总线控制器信号。 S3C2410A与存储器相关的特性如下: 通过软件
2、选择,系统支持大/小端数据存储格式; 全部可寻址空间为1GB,分为8个banks(体),每个bank为128MB; 使用nGCS0nGCS7作为对应各bank选择信号;,3, 系统支持存储器与I/O端口统一寻址,SFR Area(特殊功能寄存器区)为I/O端口寻址空间; bank0bank7中每个bank的数据总线宽度单独可编程,bank0通过编程可以设置为16/32位数据总线,bank1bank7通过编程可以设置成8/16/32位数据总线; 每个bank的存储器访问周期可编程; 支持各bank产生等待信号(nWAIT),用来扩展总线周期;,4, bank0bank5可以使用ROM(含EEPR
3、OM、Nor Flash等)和SRAM,bank6和bank7可以使用ROM/SRAM/SDRAM; bank0bank6开始地址固定; bank7开始地址和bank大小可编程; 对SDRAM,在power-down模式,支持自己刷新(self-refresh)模式; 支持使用Nor/Nand Flash、EEPROM等作为引导ROM。,5,S3C2410A Reset后存储空间图,见图5.1。,6,参见图5.1,图中表示bank6和bank7实际安装的存储器容量可以各为2MB、4MB、128MB。因此bank6的终了地址不同,bank7的起始地址也不同,但是要求bank6和bank7实际安装
4、的容量相同,详见表5-1。 另外,图5.1中最上方OM1:0的含义,表示在Reset期间,由于连接到S3C2410A的操作模式输入引脚OM1:0逻辑电平的不同,分别表示使用Nand Flash作为引导ROM与否,以及在不使用Nand Flash作为引导ROM时,bank0数据总线的宽度或测试模式,详见表5-2(P148)。,7,在不使用Nand Flash作为引导ROM时,需要使用bank0(nGCS0)中安装的芯片作为引导ROM。由于在第一次访问引导ROM前必须先确定bank0数据总线的宽度,所以bank0的数据总线宽度要求由Reset时的OM1:0引脚输入逻辑电平确定,而bank1bank
5、7各个bank的数据总线宽度,可以通过对特殊功能寄存器编程确定。,8,5.1.2 与存储器芯片连接的S3C2410A引脚信号及使用, 与存储器芯片连接的S3C2410A引脚信号 对于存储器,S3C2410A一般可以与ROM(如Nor Flash)、SRAM和SDRAM芯片连接。S3C2410A与存储器相关的引脚信号一般可以分为两组,一组是S3C2410A总线控制器引脚信号,另一组是S3C2410A存储器控制器引脚信号,分别见表5-3和5-4(P149-150)。 表中地址总线为ADDR26:0,而图5.1中地址总线为ADDR29:0,其中ADDR29:27经译码产生nGCS7:0或nSCS1:
6、0信号。,9, 地址总线与存储器芯片地址引脚的连接 对ROM/SRAM/SDRAM,地址总线中的ADDR29:27经译码器产生nGCS7:0或nSCS1:0信号,某一时刻只有一个信号有效。而地址总线中的ADDR26:0应该与各bank的存储器芯片对应引脚连接,但ADDR1和ADDR0在某个bank实际使用的数据总线宽度不同的情况下,可能不连接到存储器芯片;并且地址总线中的ADDR26:0与存储器芯片地址引脚的连接也可能不是一一对应关系,详见表5-5。在本章,地址总线中的ADDR26:0有时也简单写作A26:0。,10,表5-5中(P151),当某bank数据总线宽度为8位时,地址总线中的ADD
7、R0与芯片地址引脚A0连接,ADDR1与A1连接,依此类推,一一对应连接。表中当某bank数据总线宽度为16位时,地址总线中的ADDR0不与存储器芯片连接,而用ADDR1与芯片地址引脚A0连接。表中当某bank数据总线宽度为32位时,地址总线中的ADDR1:0不与存储器芯片连接,而用ADDR2与芯片地址引脚A0连接。,11, 存储器数据总线宽度的确定 S3C2410A支持8/16/32位数据总线宽度。同一个bank的数据总线宽度必须相同,不同bank的数据总线宽度可以不同,并且有以下特征: bank0在不使用Nand Flash时,数据总线宽度可以选择16位或32位,由OM1:0输入引脚在Re
8、set时的逻辑电平决定; bank1bank7中的每个bank的数据总线宽度可以分别设置,可选择8位、16位或32位中的一种,设置方法在特殊功能寄存器中讲述。,12, bank0与ROM芯片的连接 在不使用Nand Flash作为引导ROM时,参考图5.1左半部分,使用bank0作为引导ROM区,可以连接Nor Flash或EEPROM等。由于Nor Flash片内带有SRAM接口,因此可以直接与存储器控制器连接。另外,Nor Flash芯片价格比EEPROM低,所以通常使用Nor Flash芯片较多。 加电之前,bank0数据总线宽度必须通过OM1:0提前设置好,只能设置为16位或32位。另
9、外,信号nGCS0作为bank0的选择信号。,13, bank0使用16位数据总线与ROM芯片的连接 图5.2表示bank0与一片ROM、数据总线为16位时的连接。,14, bank0使用32位数据总线与ROM芯片的连接 图5.3表示bank0与4片ROM、数据总线为32位时的连接。,15, bank1bank7与SRAM芯片的连接 图5.4给出了使用2片SRAM、32位数据总线,连接到bank1的一个例子。,16, bank6或bank7与SDRAM芯片的连接 在SDRAM芯片内部,通常分为2个体或4个体,也用Bank表示,但与存储器的bank不同,它们一般称为片内Bank。另外SDRAM地
10、址还分行地址和列地址,行地址的长度(位数)可以与列地址的长度(位数)相等(对称地址)或不等(非对称地址)。S3C2410A特殊功能寄存器中允许设置列地址长度,详见5.1.4节中BANKCON6和BANKCON7寄存器含义。 从S3C2410A送出的地址,高位部分连接到SDRAM芯片的片内Bank选择引脚BA,具体连接方法见表5-6。,17, SDRAM片内Bank选择引脚与地址总线的连接 表5-6给出了当S3C2410A存储器实际bank大小不同、数据总线宽度不同、芯片容量不同、芯片内部构成和使用的芯片数量不同时,片内Bank选择使用的芯片引脚与高位地址总线连接的例子。 bank6使用16位数
11、据总线与SDRAM芯片的连接(P154) bank6使用32位数据总线与SDRAM芯片的连接(P154-155) 从S3C2410A送出的地址,高位部分连接到SDRAM芯片的片内Bank选择引脚BA,具体连接方法见表5-6。,18,5.1.3 存储器总线周期举例,存储器控制器有13个特殊功能寄存器,它们中的一些寄存器,通过设置不同的值,可以允许/禁止nWAIT;也可以改变ROM/SRAM/SDRAM的总线读写周期的时间长度等。 另外,虽然特殊功能寄存器不能控制nXBREQ/nXBACK的定时关系,但是也在这一节一并给予介绍。,19, nXBREQ/nXBACK与其他信号之间的定时关系 图5.7
12、给出了nXBREQ/nXBACK与其他信号之间的定时关系。,20, nWAIT引脚信号对总线读写周期的影响 在5.1.4节中,通过对 BWSCON寄存器中的WS7、WS6、 WS1设置不同的值,表示允许bank7、bank6、 bank1使用WAIT(等待)功能与否。 图5.8为总线读周期。,21, ROM/SRAM总线读、写周期定时举例 可以对存储器特殊功能寄存器设置不同的值,改变总线读、写周期的定时关系。 ROM/SRAM单个读周期 单个读周期指S3C2410A发出一次读存储器数据操作后,间隔一段时间再访问存储器。 在特殊功能寄存器中设定了具体数值以后,S3C2410A发出的单个总线读周期
13、信号定时关系如图5.9所示。,22, ROM/SRAM单个写周期 在特殊功能寄存器中设定了具体数值以后,S3C2410A发出的单个总线写周期信号定时关系如图5.10所示。 页模式的读周期和写周期 ROM/SRAM总线读、写周期定时参数含义 在图5.9和图5.10中,某些定时参数的时间长度值不能在存储器控制器特殊功能寄存器中设置,它们的含义见表5-7。而图5.9和图5.10中另外一些定时参数的时间长度值可以在存储器控制器特殊功能寄存器中设置,设置方法见5.1.4节,它们的含义见表5-8。,23, SDRAM总线读、写周期 SDRAM总线读、写周期在5.2.2节中与SDRAM芯片一起介绍。,24,
14、5.1.4 存储器控制器特殊功能寄存器,S3C2410A支持的bank7bank0中,各个bank的访问(access)时间的长短,均可以在特殊功能寄存器中设置。 除了bank0,bank7bank1数据总线的宽度,可以在特殊功能寄存器中分别设定。另外,特殊功能寄存器中还可以设定一些其他参数。,25, 存储器控制器13个特殊功能寄存器 13个特殊功能寄存器的名称、地址与Reset值见表5-9。 数据总线宽度与等待状态控制寄存器BWSCON 该寄存器各位具体含义见表5-10. BANKCON0BANKCON5控制寄存器 BANKCON0BANKCON5控制寄存器具体含义见表5-11。,26, B
15、ANKCON6和BANKCON7控制寄存器 BANKCON6和BANKCON7控制寄存器具体含义见表5-12。 SDRAM刷新控制寄存器 SDRAM刷新控制寄存器REFRESH,通过设置不同的值,实现对SDRAM刷新控制并确定预充电时间,具体含义见表5-13。 BANKSIZE寄存器 BANKSIZE寄存器主要用来设置bank6/7存储器实装容量(大小)等参数,具体含义见表5-14。,27, SDRAM模式寄存器设置寄存器(MRSR) 如果bank6和bank7使用SDRAM芯片,SDRAM芯片要求在加电之后的初始化阶段,由存储器控制器发出“装入模式寄存器设置”命令。换句话说,S3C2410A
16、在Reset后,首先要通过编程方式,设置存储器控制器特殊功能寄存器中的SDRAM模式寄存器设置寄存器(MRSR)的初值,之后存储器控制器通过命令将这个初值送到芯片的模式寄存器。 当代码正在从SDRAM中取出运行时,不要对模式寄存器设置寄存器进行配置,一般情况应当在代码从ROM中取出时,对其进行配置。模式寄存器设置寄存器具体含义见表5-15。,28,5.2 存储器组成举例,本节具体介绍一个存储器系统的组成: bank0使用Am29LV160 Nor Flash 芯片作为引导ROM; Bank6使用HY57V561620 SDRAM 芯片,保存程序和数据。,29,5.2.1 使用Nor Flash
17、芯片作为引导ROM, 闪存基础知识 闪速存储器(flash memory)是半导体存储器的一种,简称闪存。闪存芯片在断电后仍能保持芯片内信息不丢失,而在正常供电时,系统自身(In_System)可以擦除和写入信息。 闪存具有低功耗、大容量、擦写速度快、可整片或分扇区(块)由系统自身编程(烧写)、擦除等特点。目前常用的闪存主要有两种类型,一种是Nor Flash(称为或非型闪存、Nor闪存),另一种是Nand Flash(称为与非型闪存、Nand闪存)。,30,采用Nor Flash技术的芯片有以下特点: 芯片的地址线与数据线引脚是分开的,Nor Flash芯片片内带有SRAM接口。凡是存储器控
18、制器支持SRAM的,均可以使用Nor Flash芯片; 芯片支持以字节为单位随机读写; 芯片内的代码不需要复制到SRAM、SDRAM中再读出执行,而是可以直接从Nor Flash芯片中一条一条地读出执行。 由于以上特点,Nor Flash芯片常常作为嵌入式系统的引导(启动)ROM芯片使用。,31,采用Nand Flash技术的芯片有以下特点: 芯片地址线与数据线引脚是共用的,区分它们还需要一些额外的控制引脚信号。芯片接口与ROM、SRAM不兼容; 芯片不支持以字节为单位随机读写。芯片读写操作以页面为单位,页面大小一般为 512字节,要修改某一字节,必须重写整个页面。擦除一般以块为单位进行; 芯
19、片中的代码,需要在别的程序支持下,串行地将内容复制到SRAM或SDRAM中,然后才能一条一条取出执行,不适合直接作引导芯片,详细内容见5.3节。 由于以上特点,Nand Flash芯片常常作为固态盘(电子盘、U盘存储器)使用。,32, Am29LV160芯片介绍,Am29LV160芯片是AMD公司生产的一种Nor Flash芯片,芯片引脚逻辑符号表示见图5.11,芯片引脚信号含义见表5-16。,33,表5-16 Am29LV160芯片引脚信号含义,34,表5-17给出了Am29LV160芯片常用操作对应的引脚信号。 Am29LV160芯片内部功能模块 Am29LV160芯片内部功能模块见图5.
20、12。 Am29LV160芯片常用命令 表5-18给出了部分常用命令的定义。 读出数据命令 编程命令 整片擦除命令,35, Am29LV160与S3C2410A连接举例 使用Am29LV160闪存芯片,作为引导ROM,与S3C2410A连接举例见图5.13。,36,5.2.2 使用SDRAM芯片举例, SDRAM基础知识 SDRAM(Synchronous Dynamic Random Access Memory,同步动态随机存储器)是在标准DRAM(动态随机存储器)中加入同步控制逻辑,利用一个单一的系统时钟同步所有的地址、数据和控制信号,使得SDRAM能够与系统工作在相同的频率上。 SDRA
21、M内部操作可以对应多个命令,不同的命令是由芯片控制引脚不同的电平决定的。常用的命令有:模式寄存器设置、空操作、Bank激活、读等等,详见表5-20。对SDRAM的访问是由一系列的命令完成的。,37,SDRAM内部可以分为多个Banks(体),每个Bank就是一块存储区(或称为一块存储阵列),常见的SDRAM有2个或4个Banks。选择芯片内部某一指定的存储单元,使用的地址可以分为Bank、行、列地址三部分。,38, SDRAM初始化、常用命令和操作介绍, SDRAM初始化 初始化过程如下:加电之后,需要延时200微秒,使得系统能够得到稳定的工作电压和时钟频率,这时SDRAM处于器件未选中或空操
22、作状态。之后存储器控制器发出一个对片内所有Banks预充电的命令,接着存储器控制器发出连续8个自动刷新命令,SDRAM进行8个刷新周期的自动刷新。自动刷新完成后,存储器控制器发出装入模式寄存器设置(Mode Register Set,MRS)命令,至此结束初始化过程。只有经过初始化过程,SDRAM芯片才可以正常进行突发读、写等操作。,39, 模式寄存器设置(MRS) 参阅5.1.4节中的表5-15,在S3C2410A中有2个SDRAM模式寄存器设置寄存器,分别对应bank6和bank7。这2个寄存器中保存的参数,包括 写突发长度、 测试模式、 CAS潜伏时间(列选通到数据有效时间)、 突发类型
23、、 突发长度, 都要在初始化通过装入模式寄存器设置命令,送到SDRAM芯片。命令具体格式在随后介绍。,40, 预充电(precharge) 预充电命令分为对指定Bank预充电和对所有Banks预充电两种。对指定Bank预充电,需要指定Bank地址;对所有Banks预充电则不需要指定Bank地址。 一旦某个Bank被预充电,则SDRAM进入空闲状态,直到该Bank收到读/写命令或Bank/行激活命令为止。例如,指定Bank的某行数据读取之后,该行作为工作行,与放大器处于连通状态。如果存储器控制器下一次要访问同一Bank的不同行,必须先发出预充电命令,关闭当前工作行。SDRAM芯片收到预充电命令,
24、执行关闭当前工作行操作需要一定的时间,称为Trp(Row Precharge Command period,行预充电命令周期),单位为系统时钟周期。之后,存储器控制器才可以发出打开新的行(包括Bank)的命令。,41, 自动预充电(auto precharge) 对SDRAM进行读,分为读命令和带自动预充电的读命令。 对SDRAM进行写,分为写命令和带自动预充电的写命令。 带自动预充电的读命令,执行一次突发读操作,数据传送结束后,该行自动被预充电,而不需要存储器控制器发出预充电命令。 读命令执行一次突发读操作,数据传送结束后,该行继续保持打开状态,如果下一次要访问不同的行,存储器控制器应先发出
25、预充电命令,否则该行将继续保持打开状态。,42, Bank/行激活和列地址送出及读(写) 从SDRAM中读出数据(或写入数据)之前,存储器控制器一般应先发出预充电命令,然后发出Bank/行激活命令,同时送出Bank地址和行地址。经过一段时间Trcd(RAS to CAS delay,行地址到列地址时间,单位为系统时钟周期)之后,存储器控制器才可以发出读(写)命令,同时发出列地址,读出(写入)数据。被激活的行将一直保持激活状态,直到遇到预充电命令。,43, 突发传输 突发(burst)传输,也称猝发传输,这里指的是执行一次读或写命令,读或写SDRAM同一Bank中同一行相邻的多个单元的数据的一种
26、传输方式。连续传输数据的个数就是突发长度(Burst Length,BL)。在SDRAM中,从传输的第一个数据开始,每个系统时钟周期传输一个数据。突发传输过程中从地址总线送出的列地址保持不变。 在突发传输过程中,可以发出突发停止(burst stop)命令,停止传输。,44, 自动刷新与自己刷新 自动刷新(auto refresh)命令由存储器控制器发出,刷新地址由SDRAM自己产生,刷新地址会自动增加。 自己刷新(self refresh)命令分为进入自己刷新和从自己刷新退出,命令由存储器控制器发出。进入自己刷新以后,刷新过程由SDRAM自己进行,功耗较低。,45, HY57V561620芯
27、片介绍,HY57V561620芯片是Hynix 公司生产的一种SDRAM芯片,容量为4M4Banks16位,即32MB。 HY57V561620芯片主要特点: 单一的3.30.3V电源; 所有引脚与LVTTL接口兼容; 所有输入与输出以系统时钟上升沿为基准; 使用UDQM、LDQM实现数据屏蔽功能; 片内有4个Banks; 支持自动刷新和自己刷新;,46, 每64ms有8192个刷新周期; 可编程的突发长度和突发类型:对顺序突发传输,传输长度为1,2,4,8或全页;对交替(interleave)突发传输,传输长度为1,2,4,8。 行地址到列地址时间Trcd可编程:2个或3个系统时钟周期; 读
28、或写突发周期能被命令停止,或能被中断。,47, HY57V561620芯片引脚 芯片引脚逻辑符号表示见图5.14。 HY57V561620芯片引脚信号含义见表5-19。,48,表5-19 HY57V561620引脚功能,49, HY57V561620芯片内部功能模块 HY57V561620芯片内部功能模块见图5.15。 HY57V561620芯片命令真值表 HY57V561620芯片命令真值表,见表5-20。 模式寄存器设置命令 由存储器控制器控制完成一次突发读操作(突发长度=1) 由存储器控制器控制完成一次突发读操作(突发长度=8),50, HY57V561620 SDRAM芯片与S3C24
29、10A连接举例 图5.16给出了HY57V561620芯片与S3C2410A的连接实例。 S3C2410A SDRAM定时举例 见图5.17,51, S3C2410A SDRAM单个读定时和单个突发读定时举例 在随后的图5.18和图5.19中,某些定时参数的时间长度是常数值,参数含义及时间长度见表5-23;另外一些定时参数的时间长度,可以通过设置存储器控制器特殊功能寄存器的值而改变,或者由于SDRAM工作速度不同而不同,详见表5-24。 对某些定时参数设定了具体数值后,S3C2410A对SDRAM读一次的单个读定时图见图5.18。 图5.19是突发长度为8的单个读定时图。,52,5.3 Nan
30、d Flash芯片工作原理,5.3.1 两种引导模式 参见本章图5.1,由S3C2410A组成的系统有两种引导模式。一种对应图5.1左半部,bank0可以使用前面讲过的Nor Flash芯片,Reset后从地址0开始执行引导程序。另一种对应图5.1右半部,使用Nand Flash芯片,Reset后,系统自动读出Nand Flash芯片前4KB内容,送到位于bank0的内部4KB SRAM中,执行SRAM中的引导程序。Nand Flash芯片前4KB保存的是引导程序,后面的存储空间可以作为一般的固态盘使用。另外bank0中4KB SRAM在引导程序执行后,还可以作为通常SRAM使用。,53,5.
31、3.2 Nand Flash概述,与Nor Flash一样,Nand Flash中保存的信息,在供电电源切断(关闭)后,能够长期保存,通常能保存10年。这一特点也称为不挥发、非易失性。 对Nand Flash的编程(写入数据)和读操作,以页为单位,擦除操作以块为单位。要改写Nand Flash芯片中某一个字节的内容,必须重写整个页面。,54,Nand Flash芯片通常有一个8位或16位的I/O端口,对Nand Flash芯片发送的编程、读、擦除等命令,以及指定的芯片内部地址,传输的数据,都是通过I/O端口串行地传送。 在Nand Flash芯片中保存的程序,必须复制到SRAM、SDRAM中才
32、能执行。,55,5.3.3 K9F2808U0C Nand Flash 芯片工作原理, K9F2808U0C主要特点 电源电压:2.73.6V,通常使用3.3V; 芯片提供8位的I/O端口; 芯片总容量为16MB+512KB,分为32768页,1024块; 页大小为512B+16B; 每32页称为1块,块大小为16KB+512B;,56, 芯片内提供512B+16B的数据寄存器; 能够自动编程和擦除,编程以页为单位,擦除以块为单位; 对于页读出操作,随机访问一页时间最长为10s,页中顺序读出一字节时间为50ns。通过8位I/O端口,一次可以串行读出512B+16B; 典型的块擦除时间为2ms,
33、典型的页编程时间为200s; I/O端口为双向,可传输命令/地址/数据。,57, 芯片引脚信号含义 K9F2808U0C引脚排列见图5.20,引脚信号含义见表5-25。 功能框图 K9F2808U0C功能框图见图5.21。 K9F2808U0C由(128M+4M)b的存储阵列组成,其中4Mb为备用空间或备用区,备用空间用于存放纠错码(Error Correcting Code,ECC)校验信息和其他信息。,58,表5-25 K9F2808U0C引脚信号含义,59, 存储单元阵列结构 K9F2808U0C存储单元阵列结构如图5.22所示。 表5-26表示地址信号分为3组,使用了3个总线周期,通过
34、I/O0I/O7分别传送到芯片。,60, 命令集和状态寄存器 K9F2808U0C命令集如表5-27所示。 在表5-27中最后一行,发出读状态命令之后,读回来的状态位含义见表5-28。 K9F2808U0C片内含有状态寄存器,通过读出状态寄存器,可以判断编程或擦除操作是否完成、是否成功。对芯片写入70h命令后,下一个读周期芯片I/O引脚送出状态寄存器内容。,61, 读时序举例 由Nand Flash控制器发出不同的命令,通过I/O端口送到Nand Flash芯片,之后跟随(或不跟随)地址,Nand Flash芯片可以完成不同的操作。 对于读操作,命令可以是00h或01h,命令之后跟随列地址、页
35、(行)地址低位、页(行)地址高位。经过一段时间,通过检查R/nB引脚,当R/nB=1时,可以从芯片读出1页528B数据,具体见图5.23。,62,5.4 Nand Flash控制器,5.4.1 Nand Flash控制器 概述 嵌入式系统存储器可以由Nor Flash和SDRAM构成。Nor Flash位于bank0,存放引导程序等,启动后可以直接从Nor Flash中取出指令执行;SDRAM位于bank6,保存运行的程序和数据。但是由于Nor Flash比Nand Flash价格高、容量低,因此当前很多嵌入式系统中使用Nand Flash保存引导程序,使用SDRAM作为bank6,不再使用N
36、or Flash。,63,S3C2410A芯片内含有Nand Flash控制器。为了支持从Nand Flash芯片中的程序引导系统,S3C2410A芯片内有一个叫做Steppingstone(垫脚石)的内部SRAM缓冲区,它位于bank0,大小为4KB。当系统启动时,S3C2410A自动将Nand Flash存储器前4KB内容读入到Steppingstone,然后自动从Steppingstone中逐条取出并执行这些引导程序。,64,通常引导程序要将Nand Flash中的其他程序拷贝到SDRAM,引导程序执行后转到SDRAM去执行。 使用S3C2410A内部硬件ECC发生器,可以对Nand F
37、lash的数据进行有效性的检验。,65,Nand Flash控制器主要特性有: 在Nand Flash模式,支持对Nand Flash存储器读/擦除/编程; 支持自动引导模式,在Reset后,引导程序从Nand Flash被装入Steppingstone,从Steppingstone读出并执行; 支持硬件ECC产生电路,由硬件电路产生相应信息,软件校正; 用作Steppingstone的内部4KB SRAM缓冲区,在从Nand Flash引导结束后,可以作为其他用途。,66, Nand Flash控制器组成框图 Nand Flash控制器组成框图见图5.24。 图5.24中Nand Flash
38、控制器接口信号含义见表5-29。,67,表5-29 Nand Flash控制器接口信号含义,68, Nand Flash操作图 Nand Flash操作图见图5.25。,69, 可以在特殊功能寄存器中设置的时间参数 Nand Flash存储器定时时间参数中,可以在特殊功能寄存器NFCONF中设置时间长度的有TACLS、TWRPH0和TWRPH1,它们的含义和定时关系见图5.26和表5-30。,70,5.4.2 Nand Flash控制器 特殊功能寄存器,Nand Flash控制器中有6个特殊功能寄存器。 Nand Flash控制器配置寄存器NFCONF,地址为0x4E000000,可读写,Reset值不确定,具体含义见表5-30。 Nand Flash控制器命令/地址/数据/状态/ECC寄存器含义见表5-31。,71,5.4.3 Nand Flash控制器与 Nand Flash芯片连接举例,S3C2410A Nand Flash控制器与K9F2808U0C芯片的连接如图5.27所示。图中nSE连接到GND,表示芯片允许使用片内备用区。,72,END,作业,73,