第四章 主存储器及NAND FLASH存储器组成——ARM

1.S3C2410简介
(1)S3C2410X集成的主要片上功能
  • 1.8V ARM920T内核,1.8V/2.5V/3.3V存储系统,带有3.3V16KB指令和16KB数据缓存及MMU单元的外部O接口的微处理器;
  • 外部存储器控制(SDRAM控制和芯片选择逻辑);
  • LCD控制器(支持4K颜色的STN或256K色TFT的LCD),带有1个通道的LCD专用DMA控制器;
  • 4通道DMA,具有外部请求引脚;
  • 3通道UART(支持IrDA1.0,16字节发送FIFO及16字节接收FIFO)和2通道SPI接口;
  • 1个通道多主IIC总线控制器和1通道IIS总线控制器;
  • 1.0版本SD主机接口及2.11版本兼容的MMC卡协议;
  • 2个主机接口的USB口和1个设备USB口(1.1版本);
  • 4通道PWM定时器和1通道内部计时器;
  • 看门狗定时器;
  • 117位通用目的I/O口和24通道外部中断源;
  • 电源控制:正常、慢速、空闲及电源关闭模式;
  • 带触摸屏接口的8通道10位ADC;
  • 带日历功能的实时时钟控制器;
  • 具有PLL的片上时钟发生器。
(2)S3C2410X的特点

体系结构

  • 集成了手持设备和通用嵌入式系统的解决方案;
  • 32/16位结构体系和ARM920T CPU核的强大指令体系;
  • 增强的ARM MMU体系结构支持WinCE、EPOC 32和Linux操作系统;
  • 指令缓存、数据缓存、写缓冲器和RAM物理地址标签减少了主存储器带宽和潜在性能的影响;
  • ARM920T CPU核支持ARM调试体系结构;
  • 内置的高级微控制总线体系结构(AMBA)(AMBA2.0,AHB/APB);

系统管理器

  • 支持小/大端模式;
  • 寻址空间:每个bank 128MB(总共1GB);
  • 支持每个bank可编程的8/16/32位数据总线宽度;
  • bank0到bank6具有固定的bank起始地址;
  • bank7具有可编程的bank起始地址和bank大小;
  • 共有8个存储器bank:6个存储器bank用于ROM、SRAM,其他2个存储器bank用于ROM、SRAM、同步DRAM;
  • 所有的存储器bank具有可编程的操作周期;
  • 支持外部等待信号延长总线周期;
  • 支持掉电时的SDRAM自刷新模式;
  • 支持多种类型的引导ROM(NOR/NAND Flash,EEPROM及其他)。

NAND Flash 引导装载器

  • 支持从NAND Flash存储器引导;
  • 4KB内置缓冲存储器用于引导;
  • 支持引导后从NAND Flash存储器向内存加载。

缓冲存储器

  • 带有指令缓存(16KB)和数据缓存(16KB)的联合缓存;
  • 每行8字长度,其中每行带有1个有效位和2个无效位;
  • 伪随机的或循环移位算法;
  • 采用写直达或写回缓存操作来更新主存储器;
  • 写缓冲器能够保存16字的数据值和4个地址值。

时钟和电源管理

  • 在片MPLL和UPLL:UPLL时钟发生器用于主/从USB操作,MPLL时钟发生器用于产生MCU的时钟。在1.8V时,时钟最高频率为203MHz;
  • 每一个功能块可以用软件选择时钟;
  • 电源模式:正常、慢速、空闲和掉电,
    正常模式:正常操作模式,
    慢速模式:不加PLL的低频率时钟模式,
    空闲模式:仅停止CPU的时钟,
    掉电模式:所有外围设备全部掉电仅内核电源供电;
  • 可以从掉电模式借助于EINT[15:0]或RTC报警中断唤醒过来。

中断控制

  • 55个中断源(1个看门狗定时器,5个定时器,9个通用异步串行口,24个外部中断,4个DMA,2个RTC,2个USB,1个LCD和1个电池故障);
  • 外部中断源具有电平/边沿触发模式;
  • 可编程极性的边沿触发或电平触发;
  • 在非常紧急中断的情况下支持快中断请求(FIQ)。

带脉冲宽度调制器(PWM)的定时器

  • 4通道16位带PWM的定时器/1通道16位基于DMA或基于中断操作的内部定时器;
  • 可编程的占空比、频率和极性;
  • 失效区发生器;
  • 支持外部时钟源。

RTC(实时时钟)

  • 全部时钟特点:毫秒,秒,分,时,天,星期,月,年;
  • 32.768kHz工作频率;
  • 具有报警中断;
  • 具有定时中断。

通用输入/输出口

  • 24个外部中断口;
  • 多路输入输出口。

通用串行异步通信口(UART)

  • 3通道基于DMA或基于中断操作的UART;
  • 支持5位、6位、7位或8位串行数据发送/接收(Tx/Rx);
  • 可编程的波特率;
  • 支持IrDA 1.0;
  • 具有回环测试功能;
  • 每个通道有内置的16字节发送FIFO和16字节接收FIFO。

DMA 控制器

  • 4通道DMA控制器;
  • 支持存储器到存储器、IO到存储器、存储器到IO和IO到IO传输;
  • 突发传输模式增强了传输速率。

带触摸屏接口的 A/D转换器

  • 8通道多路ADC;
  • 最大500KSPS转换速率10位分辨率。

LCD控制器STN LCD显示特性

  • 支持3种类型的STN LCD显示屏:4位双扫描,4位单扫描,8位单扫描显示 类型;

  • 支持单色模式、4级灰度、16级灰度、256色和4096色STN LCD;

  • 支持多种不同尺寸的液晶屏,LCD实际尺寸的典型值是640×480,320×240,160×160;

  • 最大虚拟屏幕大小是4MB,最大虚屏像素为4MB;

  • 在256色模式下支持的最大虚拟屏是4096×1024,2048×2048,1024×4096。
    TFT彩色显示特性

  • 支持彩色TFT模式1、2、4或8位/像素(bpp)带调色板彩色显示;

  • 支持彩色TFT模式16bpp不带调色板真彩色显示;

  • 支持24bpp下最大16MB彩色TFT模式;

  • 支持多种不同尺寸的液晶屏,典型实屏尺寸为640×480,320×240,160×160;

  • 最大虚拟屏大小4MB;

  • 64K色彩模式下最大的虚拟屏尺寸为2048×1024。

看门狗定时器

  • 16位看门狗定时器;
  • 超时时发出中断请求或系统复位。

I2C总线接口

  • 1通道多主设备I2C总线;
  • 可进行串行、8位、双向数据传输,标准模式下数据传输速度可达100kbit/s,快速模式下可达到400kbit/s。

I2S总线接口

  • 1通道基于DMA的I2S总线用于音频接口;
  • 串行,每通道8/16位数据传输;
  • 具有128字节(64字节+64字节),FIFO用于发送/接收;
  • 支持I2S格式和MSB验证数据格式。

USB主设备

  • 2个USB主设备接口;
  • 遵守OHCI 1.0版;
  • 兼容USB1.1版本规范。

USB从设备

  • 1个USB从设备接口;
  • 5端点USB传输通道;
  • 兼容USB1.1版本规范。

SD主接口

  • 与SD存储卡协议1.0版本兼容;
  • 与SDIO卡协议1.0版本兼容;
  • 具有字节FIFO用于发送/接收;
  • 基于DMA或基于中断模式操作;
  • 与多媒体卡2.11版本兼容。

SPI接口

  • 与2通道串行外部接口2.11版本协议兼容;
  • 2个8位移位寄存器,用于发送/接收;
  • 基于DMA或基于中断模式操作。

工作电压范围

  • 内核1.8V;
  • 存储器:2.5V/3.3V;
  • 输入/输出口:3.3V。

工作频率

  • 最大203MHz。

封装

  • 272-FBGA。
2.S3C2410A存储器控制器
(1)S3C2410A与存储器相关的特性
  • 通过软件选择,系统支持大/小端数据存储格式;
  • 全部可寻址空间为1GB,分为8个banks(体),每个bank为128MB;
  • 使用nGCS0~nGCS7作为对应各bank选择信号;
  • 系统支持存储器与I/O端口统一寻址,SFR Area(特殊功能寄存器区)为I/O端口寻址空间;
  • bank0bank7中每个bank的数据总线宽度单独可编程,bank0通过编程可以设置为16/32位数据总线,bank1bank7通过编程可以设置成8/16/32位数据总线;
  • 每个bank的存储器访问周期可编程;
  • 支持各bank产生等待信号(nWAIT),用来扩展总线周期;
  • bank0~bank5可以使用ROM(含EEPROM、Nor Flash等)和SRAM,bank6和bank7可以使用ROM/SRAM/SDRAM;
  • bank0~bank6开始地址固定;
  • bank7开始地址和bank大小可编程;
  • 对SDRAM,在power-down模式,支持自己刷新(self-refresh)模式;
  • 支持使用Nor/Nand Flash、EEPROM等作为引导ROM。

S3C2410A复位后的存储器映射情况:
在这里插入图片描述

说明:

OM[1:0]的含义
	———————————————————————————————————————————————————————————————————————
     OM1(操作模式1)    | OM0(操作模式0)    |   含义
    ———————————————————|——————————————————|————————————————————————————————
        0              |     0            |  使用Nand Flash作为引导ROM模式
        0              |     1            |  bank0数据总线宽度为16位
        1              |     0            |  bank0数据总线宽度为32位
        1              |     1            |  测试模式
    ———————————————————————————————————————————————————————————————————————

bank6和bank7对应不同大小存储器时的地址范围:
在这里插入图片描述

说明:
并不是要求必须同时安装bank6和bank7存储器芯片,也可以只安装bank6而不安装bank7存储器芯片。
各bank具体安装的存储器芯片可以小于等于128MB。

(2)与存储器芯片连接的S3C2410A引脚信号含义及作用

与存储器芯片连接的S3C2410A引脚信号
S3C2410A片内存储器控制器一般可以与片外ROM(如Nor Flash)、SRAM和SDRAM芯片连接。
与存储器相关的引脚信号一般可以分为两组:

S3C2410A总线控制器引脚信号
	————————————————————————————————————————————————————————————————————————————————————————————————
	信号        |I/O     |含义
	————————————|————————|——————————————————————————————————————————————————————————————————————————
	OM[1:0]     |I       |在S3C2410A的OM[]引脚上连接上拉电阻或下拉电阻,Reset期间逻辑电平分别表示:
            	|        |    00:使用Nand Flash引导;01:bank0数据总线16位;
            	|        |    10:bank0数据总线32位;11:测试模式
	————————————|————————|——————————————————————————————————————————————————————————————————————————						
	ADDR[26:0]  |O       |ADDR[26:0](地址总线),输出对应bank的存储器地址  
	————————————|————————|——————————————————————————————————————————————————————————————————————————
	DATA[31:0]  |I/O     |DATA[31:0](数据总线),在存储器读期间输入数据,在存储器写期间输出数据。
            	|        |实际使用的总线宽度在8/16/32位中可选择
	————————————|————————|——————————————————————————————————————————————————————————————————————————
	nGCS[7:0]   |O       |nGCS[7:0](General Chip Select,通用片选),当存储器地址是在一个bank地址范围
            	|        |内时,ADDR[29:27]对应nGCS[n]被激活。访问周期数和bank大小可编程。
	————————————|————————|——————————————————————————————————————————————————————————————————————————					
	nWE         |O       |nWE(写允许)信号有效,指示当前总线周期是写周期
	————————————|————————|——————————————————————————————————————————————————————————————————————————
	nOE         |O       |nOE(输出允许)信号有效,指示当前总线周期是读周期(存储器输出允许)
	————————————|————————|——————————————————————————————————————————————————————————————————————————
	nXBREQ      |I       |nXBREQ(Bus Hold Request,总线保持请求)信号有效,表示允许另外的总线主设备请
                |        |求控制局部总线,响应信号nXBACK
    ————————————|————————|——————————————————————————————————————————————————————————————————————————
	nXBACK      |O       |nXBACK(Bus Hold Acknowledge,总线保持响应)信号有效,指示S3C2410A已经让出了
                |        |局部总线控制权给另外的总线主设备
    ————————————|————————|——————————————————————————————————————————————————————————————————————————
	nWAIT       |I       |nWAIT信号有效,表示请求扩展当前总线周期。只要nWAIT为低电平,继续扩展当前
				|		 |总线周期。如果系统中不使用nWAIT信号,则该引脚接上拉电阻
	————————————————————————————————————————————————————————————————————————————————————————————————
	对于地址总线,还有ADDR[29:27]参与译码,产生nGCS[7:0]或nSCS[1:0]信号。

S3C2410A(SDRAM/SRAM/ROM)存储器控制器引脚信号
	———————————————————————————————————————————————————————————————
	信号		|I/O	|	含义
	————————————|———————|——————————————————————————————————————————
	nSRAS		|O		|SDRAM行地址(Row Address)选通
	————————————|———————|——————————————————————————————————————————
	nSCAS		|O		|SDRAM列地址(Column Address)选通
	————————————|———————|——————————————————————————————————————————
	nSCS[1:0]	|O		|SDRAM片选(Chip Select)
	————————————|———————|——————————————————————————————————————————
	DQM[3:0]	|O		|SDRAM数据屏蔽(Data Mask)
	————————————|———————|——————————————————————————————————————————
	SCLK[1:0]	|O		|SDRAM时钟
	————————————|———————|——————————————————————————————————————————
	SCKE		|O		|SDRAM时钟允许
	————————————|———————|——————————————————————————————————————————
	nBE[3:0]	|O		|高字节/低字节允许(在16bit SRAM情况下)
	————————————|———————|——————————————————————————————————————————
	nWBE[3:0]	|O		|写字节允许(ROM)
	———————————————————————————————————————————————————————————————
	如果bank6、bank7连接SDRAM芯片,则片选信号使用nSCS0、nSCS1。
	如果bank6、bank7连接ROM/SRAM芯片,则片选信号使用nGCS6、nGCS7。

存储器数据总线宽度的确定
同一个bank的数据总线宽度必须是相同,不同bank的数据总线宽度可以不同,并且有以下特征:

  • bank0在不使用Nand Flash时,数据总线宽度可以选择16位或32位,由OM[1:0]输入引脚在Reset时的逻辑电平决定;
  • bank1~bank7中的每个bank的数据总线宽度可以分别设置,可选择8位、16位或32位中的一种。

地址总线与存储器芯片地址引脚的连接以及各个bank与某些芯片的连接
详见参考资料:第5章-存储器控制器。(S3C2410中文手册第5章-存储器控制器.pdf)

(3)S3C2410A存储器总线周期定时关系

(4)S3C2410A存储器控制器特殊功能寄存器

数据总线宽度与等待状态控制寄存器BWSCON
可以对bank7~bank0设置或读取如下信息:

  • 使用UB/LB(高字节/低字节)与否;
  • 支持WAIT(等待)状态与否;
  • 分别设置bank7~bank1的数据总线宽度(8/16/32位),不包括bank0;
  • 读入bank0数据总线宽度值;

见参考资料:总线宽度和等待控制寄存器(BWSCON)。( 总线宽度和等待控制寄存器(BWSCON).pdf )
BANKCON0~BANKCON5控制寄存器
见参考资料:BANK-控制寄存器(BANKCONn:nGCS0-至nGCS5)。( BANK-控制寄存器(BANKCONn:nGCS0-至nGCS5).pdf )
BANKCON6~BANKCON7控制寄存器
见参考资料:BANK-控制寄存器(BANKCONn:nGCS6-至nGCS7)。( BANK-控制寄存器(BANKCONn:nGCS6-至nGCS7).pdf )
SDRAM的刷新控制寄存器REFRESH
见参考资料:刷新控制寄存器(PEFRESH)。( 刷新控制寄存器(PEFRESH).pdf )
SDRAM模式设置寄存器MRSR
见参考资料:SDRAM-模式-寄存器组寄存器(MRSR)。( SDRAM-模式-寄存器组寄存器(MRSR).pdf )
BANKSIZE寄存器
见参考资料:Bank-大小寄存器。( Bank-大小寄存器.pdf )

3.S3C2410A存储器组成
  • bank0使用Am29LV160 Nor Flash 芯片作为引导ROM;
  • Bank6使用HY57V561620 SDRAM 芯片,保存程序和数据。
(1)使用Nor Flash芯片作为引导ROM

闪存基础知识
闪速存储器(flash memory)是半导体存储器的一种,简称闪存。闪存芯片在断电后仍能保持芯片内信息不丢失,而在正常供电时,系统自身(In_System)可以擦除和写入信息。
闪存具有低功耗、大容量、擦写速度快、可整片或分扇区(块)由系统自身编程(烧写)、擦除等特点。
目前常用的闪存主要有两种类型,一种是Nor Flash(称为或非型闪存、Nor闪存),另一种是Nand Flash(称为与非型闪存、Nand闪存)。

  • 采用Nor Flash技术的芯片有以下特点:

    • 芯片的地址线与数据线引脚是分开的,Nor Flash芯片片内带有SRAM接口。凡是存储器控制器支持SRAM的,均可以使用Nor Flash芯片;
    • 芯片支持以字节为单位随机读写;
    • 芯片内的代码不需要复制到SRAM、SDRAM中再读出执行,而是可以直接从Nor Flash芯片中一条一条地读出执行。

    由于以上特点,Nor Flash芯片常常作为嵌入式系统的引导(启动)ROM芯片使用。

  • 采用Nand Flash技术的芯片有以下特点:

    • 芯片地址线与数据线引脚是共用的,区分它们还需要一些额外的控制引脚信号。芯片接口与ROM、SRAM不兼容;
    • 芯片不支持以字节为单位随机读写。芯片读写操作以页面为单位,页面大小一般为 512字节,要修改某一字节,必须重写整个页面。擦除一般以块为单位进行;
    • 芯片中的代码,需要在别的程序支持下,串行地将内容复制到SRAM或SDRAM中,然后才能一条一条取出执行,不适合直接作引导芯片。

    由于以上特点,Nand Flash芯片常常作为固态盘(电子盘、U盘存储器)使用。

AM29LV160芯片介绍
芯片引脚逻辑符号表示
在这里插入图片描述

芯片引脚信号含义:
	引脚		类型		功能
	A19~A0		输入		地址输入。提供存储器地址
	DQ14~DQ0	输入/输出	数据输入/输出
	DQ15/A-1	输入/输出 	在字模式,DQ15为数据输入/输出;在字节模式,A-1为 LSB地址输入
	BYTE		输入 		选择8bit 或者16bit 模式
	CE			输入 		片选。当CE# 为低电平时,芯片有效
	OE			输入 		输出使能。当OE# 为低电平时,输出有效
	WE			输入 		写使能,低电平有效,控制写操作
	RESET		输入 		硬件复位引脚端,低电平有效
	RY/BY		输出		就绪/忙标志信号输出,SO-44封装无此引脚端
	VCC			电源		3 V电源电压输入
	VSS			地 			器件地
	NC						未连接。空脚	
注:其他内容见参考资料:AM29LV160DB-70EC( AM29LV160DB-70EC.pdf )
(2)使用SDRAM芯片举例

SDRAM基础知识

  • SDRAM(Synchronous Dynamic Random Access Memory,同步动态随机存储器)是在标准DRAM(动态随机存储器)中加入同步控制逻辑,利用一个单一的系统时钟同步所有的地址、数据和控制信号,使得SDRAM能够与系统工作在相同的频率上。
  • SDRAM内部操作可以对应多个命令,不同的命令是由芯片控制引脚不同的电平决定的。常用的命令有:模式寄存器设置、空操作、Bank激活、读等等。
  • SDRAM内部可以分为多个Banks(体),每个Bank就是一块存储区(或称为一块存储阵列),常见的SDRAM有2个或4个Banks。
    选择芯片内部某一指定的存储单元,使用的地址可以分为Bank、行、列地址三部分。

SDRAM初始化、常用命令和操作介绍

  • SDRAM初始化
    初始化过程如下:加电之后,需要延时200微秒,使得系统能够得到稳定的工作电压和时钟频率,这时SDRAM处于器件未选中或空操作状态。
    之后存储器控制器发出一个对片内所有Banks预充电的命令,接着存储器控制器发出连续8个自动刷新命令,SDRAM进行8个刷新周期的自动刷新。
    自动刷新完成后,存储器控制器发出装入模式寄存器设置(Mode Register Set,MRS)命令,至此结束初始化过程。
    只有经过初始化过程,SDRAM芯片才可以正常进行突发读、写等操作。

  • 模式寄存器设置(MRS)
    在S3C2410A中有2个SDRAM模式寄存器设置寄存器,分别对应bank6和bank7。
    这2个寄存器中保存的参数,包括

    • 写突发长度、
    • 测试模式、
    • CAS潜伏时间(列选通到数据有效时间)、
    • 突发类型、
    • 突发长度,

    都要在初始化通过装入模式寄存器设置命令,送到SDRAM芯片。

  • 预充电(precharge)
    预充电命令分为对指定Bank预充电和对所有Banks预充电两种。对指定Bank预充电,需要指定Bank地址;对所有Banks预充电则不需要指定Bank地址。
    一旦某个Bank被预充电,则SDRAM进入空闲状态,直到该Bank收到读/写命令或Bank/行激活命令为止。
    例如,指定Bank的某行数据读取之后,该行作为工作行,与放大器处于连通状态。
    如果存储器控制器下一次要访问同一Bank的不同行,必须先发出预充电命令,关闭当前工作行。
    SDRAM芯片收到预充电命令,执行关闭当前工作行操作需要一定的时间,称为Trp(Row Precharge Command period,行预充电命令周期),单位为系统时钟周期。之后,存储器控制器才可以发出打开新的行(包括Bank)的命令。

  • 自动预充电(auto precharge)

    • 对SDRAM进行读,分为读命令和带自动预充电的读命令。
    • 对SDRAM进行写,分为写命令和带自动预充电的写命令。
    • 带自动预充电的读命令,执行一次突发读操作,数据传送结束后,该行自动被预充电,而不需要存储器控制器发出预充电命令。
    • 读命令执行一次突发读操作,数据传送结束后,该行继续保持打开状态,如果下一次要访问不同的行,存储器控制器应先发出预充电命令,否则该行将继续保持打开状态。
  • Bank/行激活和列地址送出及读(写)
    从SDRAM中读出数据(或写入数据)之前,存储器控制器一般应先发出预充电命令,然后发出Bank/行激活命令,同时送出Bank地址和行地址。经过一段时间Trcd(RAS to CAS delay,行地址到列地址时间,单位为系统时钟周期)之后,存储器控制器才可以发出读(写)命令,同时发出列地址,读出(写入)数据。
    被激活的行将一直保持激活状态,直到遇到预充电命令。

  • 突发传输
    突发(burst)传输,也称猝发传输,这里指的是执行一次读或写命令,读或写SDRAM同一Bank中同一行相邻的多个单元的数据的一种传输方式。
    连续传输数据的个数就是突发长度(Burst Length,BL)。在SDRAM中,从传输的第一个数据开始,每个系统时钟周期传输一个数据。
    突发传输过程中从地址总线送出的列地址保持不变。
    在突发传输过程中,可以发出突发停止(burst stop)命令,停止传输。

  • 自动刷新与自己刷新
    自动刷新(auto refresh)命令由存储器控制器发出,刷新地址由SDRAM自己产生,刷新地址会自动增加。
    自己刷新(self refresh)命令分为进入自己刷新和从自己刷新退出,命令由存储器控制器发出。
    进入自己刷新以后,刷新过程由SDRAM自己进行,功耗较低。

HY57V561620芯片介绍
HY57V561620芯片是一种SDRAM芯片,容量为4M×4Banks×16位,即32MB。

  • HY57V561620芯片主要特点:

      ●单一的3.3±0.3V电源;
      ●所有引脚与LVTTL接口兼容;
      ●所有输入与输出以系统时钟上升沿为基准;
      ●使用UDQM、LDQM实现数据屏蔽功能;
      ●片内有4个Banks;
      ●支持自动刷新和自己刷新;
      ●每64ms有8192个刷新周期;
      ●可编程的突发长度和突发类型:
      ●对顺序突发传输,传输长度为1,2,4,8或全页;
      ●对交替(interleave)突发传输,传输长度为1,2,4,8。
      ●行地址到列地址时间Trcd可编程:2个或3个系统时钟周期;
      ●读或写突发周期能被命令停止,或能被中断。
    
  • HY57V561620芯片引脚
    芯片引脚逻辑符号表示
    在这里插入图片描述

      芯片引脚信号含义:
      	引脚		类型 		功能 
      	CLK			输入 		时钟,芯片时钟输入。所有的输入中CLK的上升沿有效
      	CKE			输入 		时钟使能,片内时钟信号控制
      	/CS			输入 		片选。禁止或使能除CLK、 CKE和DQM外的所有输入信号
      	BA0,BA1		输入 		bank地址选择。用于片内4个组的选择
      	A12~A0		输入 		地址总线。行地址:A12~A0;列地址:A8~A0
      	/RAS 		输入 		行地址锁存。时钟沿和/RAS有效时,锁存行地址,允许行的访问和改写
      	/CAS		输入 		列地址锁存。时钟沿和/CAS有效时,锁存列地址,允许列的访问
      	/WE 		输入 		写使能。使能写信号和允许列改写,/WE和/CAS有效时开始锁存数据
      	LDQM,UDQM	输入 		数据I/O屏蔽。在读模式下控制输出缓冲;在写模式下屏蔽输入数据
      	DQ15~DQ0	输入/输出 	数据总线。数据输入/输出
      	VDD/VSS		电源/地 	内部电路及输入缓冲器电源/地
      	VDDQ/VSSQ	电源/地 	输出缓冲器电源/地
      	NC						空脚。未连接
      注:其他内容见参考资料:HY57V561620C(L)T(P)(Rev.0.5)。( HY57V561620C(L)T(P)(Rev.0.5).pdf )			
    
4.K9F1208U0C Nand Flash芯片应用
(1)两种引导模式
  • 一种是bank0使用Nor Flash芯片,Reset后从地址0开始执行引导程序。
  • 另一种是使用Nand Flash芯片,Reset后,系统自动读出Nand Flash芯片前4KB内容,送到位于bank0的内部4KB SRAM中, 执行SRAM中的引导程序。Nand Flash芯片前4KB保存的是引导程序,后面的存储空间可以作为一般的固态盘使用。

另外bank0中4KB SRAM在引导程序执行后,还可以作为通常SRAM使用。
S3C2410A芯片内含有Nand Flash控制器。为了支持从Nand Flash芯片中的程序引导系统,S3C2410A芯片内有一个叫做Steppingstone(垫脚石)的内部SRAM缓冲区,它位于bank0,大小为4KB。当系统启动时,S3C2410A自动将Nand Flash存储器前4KB内容(引导程序头部)读入Steppingstone,然后自动从Steppingstone中取出并执行。通常执行Steppingstone中的引导程序头部程序,能够将Nand Flash中剩余的引导程序拷贝到SDRAM,然后程序转到SDRAM去执行。

(2)Nand Flash概述
  • 与Nor Flash一样,Nand Flash中保存的信息,在供电电源切断(关闭)后,能够长期保存,通常能保存10年。这一特点也称为不挥发、非易失性。
  • 对Nand Flash的编程(写入数据)和读操作,以页为单位,擦除操作以块为单位。要改写Nand Flash芯片中某一个字节的内容,必须重写整个页面。
  • Nand Flash芯片通常有一个8位或16位的I/O端口,对Nand Flash芯片发送的编程、读、擦除等命令,以及指定的芯片内部地址,传输的数据,都是通过I/O端口串行地传送。
  • 在Nand Flash芯片中保存的程序,必须复制到SRAM、SDRAM中才能执行。
(3)K9F1208U0C Nand Flash芯片工作原理

K9F1208U0C主要特点

●电源电压:2.7~3.6V,通常使用3.3V;
●芯片提供8位的I/O端口;
●芯片总容量为16MB+512KB,分为32768页,1024块;
●页大小为512B+16B;
●每32页称为1块,块大小为16KB+512B;
●芯片内提供512B+16B的数据寄存器;
●能够自动编程和擦除,编程以页为单位,擦除以块为单位;
●对于页读出操作,随机访问一页时间最长为10µs,页中顺序读出一字节时间为50ns。通过8位I/O端口,一次可以串行读出512B+16B;
●典型的块擦除时间为2ms,典型的页编程时间为200µs;
●I/O端口为双向,可传输命令/地址/数据。

芯片引脚含义
芯片引脚排列:
在这里插入图片描述

芯片引脚含义:
	引脚		类型		功能 
	I/O7~I/O0	输入/输出 	数据输入输出、控制命令和地址的输入
	CLE			输入		命令锁存信号
	ALE			输入		地址锁存信号
	/CE			输入		芯片使能信号
	/RE			输入		读有效信号
	/WE			输入		写有效信号
	/WP			输入		写保护信号
	R/nB		输出 		就绪/忙标志信号输出 
	Vcc			电源 		电源电压2.7V~3.3V 
	Vss			接地		器件地

芯片功能框图
在这里插入图片描述
K9F2808U0C由(128M+4M)b的存储阵列组成,其中4Mb为备用空间或备用区,备用空间用于存放纠错码(Error Correcting Code,ECC)校验信息和其他信息。

命令集
在这里插入图片描述

注:其他见参考资料:K9F1208U0C( K9F1208U0C.pdf )

5.S3C2410A NAND FLASH存储器组成

见S3C2410参考资料:S3C2410中文手册第6章-nandflash控制器( S3C2410中文手册第6章-nandflash控制器.pdf )

参考资料下载链接:link.

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
eMMC和NAND Flash都是非易失性闪存存储器,它们都广泛应用于移动设备、嵌入式系统和消费电子产品中。虽然它们都是闪存存储器,但在一些方面还是有一些区别的。 1. 接口和协议 eMMC和NAND Flash的接口和协议不同。eMMC是一种标准化的接口和协议,用于在ARM处理器和闪存芯片之间传输数据。而NAND Flash则需要自定义接口和协议,因为不同厂商的NAND Flash存储器可能存在不同的接口和协议。 2. 集成度 eMMC通常集成在处理器的系统板上,而NAND Flash则需要单独设计一个芯片来实现存储功能。这意味着eMMC的集成度更高,更容易实现。 3. 性能 eMMC的性能通常比NAND Flash要好,因为eMMC采用了一些特殊的技术来提高数据传输速度,例如高速随机读写、数据重排等功能。而NAND Flash通常需要通过额外的控制器来实现这些功能,导致性能相对较低。 4. 可靠性 eMMC通常具有更高的可靠性,因为它集成了一些特殊的功能,例如坏块管理、数据重排、数据加密等功能,可以提高数据的安全性和可靠性。而NAND Flash则需要通过独立的控制器来实现这些功能,可能会导致一些问题。 总的来说,eMMC和NAND Flash都是非常有用的存储介质,它们各有优缺点,可以根据具体的应用场景来选择。如果需要高性能、高可靠性的存储介质,可以考虑使用eMMC;如果需要自定义接口和协议、较低的成本和更高的灵活性,可以选择NAND Flash

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值