Am29LV800D-----这个flash.如何接成16位,和8位??求助

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Am29LV800D-----这个flash.如何接成16位,和8位??求助相关的知识,希望对你有一定的参考价值。

(1)S3C2440 的地址线 ADDR1-19 与 Am29LV800D 的地址线 A0-18 依次武汉理工大学硕士学位论文
10
相连。由于 NOR Flash 选择的是 512K×16Bit 存储形式,即 NOR Flash 的最小
存储单位为 2 字节,而 S3C2440 最小寻址单位为 1 字节,因此需要将地址线的
第二位 ADDR1 与 A0 相连,而 ADDR0 不与 NOR Flash 芯片相连。
(2)16位数据线依次相连。其中端口DQ15/A-1有两种用途,如果NOR Flash
芯片选择的是 1024K×8Bit 存储方式,该端口将作为最低位的地址线,而本文选
择的是 512K×16Bit 存储方式,因此该端口用作数据线的最高位 DQ15。
(3)CE 是片选信号,由于 NOR Flash 连接到 BANK0,因此需要用到 BANK0
的片选信号 nGCS0。读使能 OE,写使能 WE 与 S3C2440 对应引脚相连。
(4)RY/BY 表示 NOR Flash 是就绪还是繁忙的状态信息,此处没有使用,
所以悬空。RESET 低电平有效,与电路的复位模块相连。
(5)BYTE 是 NOR Flash 芯片读写方式的选择,高电平对应 16bit 模式,低
电平对应 8bit 模式。本文使用的是 16bit 模式,因此直接接 VDD。
(6)OM0,OM1 是 S3C2440 启动方式的选择。当 OM0=1,OM1=0 芯片置
为 16bit 方式,并且将 NOR Flash 芯片映射到 BANK0 地址 0x0 处。S3C2440 只
有 16bit 和 32bir 两种使用 NOR Flash 启动的方式,因此前面的 Am29LV800D 只
能使用 16bit 读写方式,而不能使用 8bit 模式。
NOR Flash 的读写方式基本与内存一样,可以直接在其地址范围内进行读写。
因此将启动程序拷贝到 NOR Flash 里面,上电后便可以直接运行。但 NOR Flash
价格昂贵,而且 1M 容量也显不足,因此本系统还加上了一块 NAND Flash 芯片
作为补充。
2.4.2 NAND Flash 存储器电路设计
相对于 NOR Flash 的昂贵,NAND Flash 则要便宜很多,因此更适合作为较
大容量的存储介质使用。1989 年东芝公司发表了 NAND Flash 技术(后将该技
术无偿转让给韩国三星公司),NAND Flash 技术强调降低每比特的成本,更高
的性能,并且像磁盘一样可以通过接口轻松升级。NAND Flash 结构能提供极高
的单元密度,可以达到高存储密度,并且写入和擦除的速度也很快。其缺点在
于需要特殊的系统接口,并且 CPU 需要驱动程序才能从 NAND Flash 中读取数
据,使用时一般是将数据从 NAND Flash 中拷贝到 SDRAM 中,再供 CPU 顺序
执行,这也是大多数嵌入式系统不能从 NAND Flash 中启动的原因。
S3C2440 不仅支持从 NOR Flash 启动,而且支持从 NAND Flash 启动。这是武汉理工大学硕士学位论文
11
因为从 NAND Flash 启动的时候,Flash 中开始 4k 的数据会被 S3C2440 自动地复
制到芯片内部一个叫“Steppingstone”的 RAM 中,并把 0x0 设置为内部 RAM
的起始地址,然后 CPU 从内部 RAM 的 0x0 位置开始执行。这个过程不需要程
序干涉。而程序则可使用这 4k 代码来把更多数据从 NAND Flash 中拷贝到
SDRAM 中去,从而实现从 NAND Flash 启动。
选择是从 NOR Flash 启动,还是 NAND Flash 启动,需要对 OM0 和 OM1
引脚进行不同的设置,如果常常需要切换启动模式,可以将这两个引脚接到跳
线柱上,通过跳线夹对其进行设置。
本文选用的是三星公司出品的 K9F1208U0B NAND Flash 芯片,该芯片容量
为 64M×8bit。由于 S3C2440 已经内置了 NAND Flash 控制器,因此电路设计十
分简单,不需要再外加控制芯片。电路图如图 2-4 所示。
图 2-4 NAND Flash 电路图
电路图说明:
(1)由于 NAND Flash 芯片是以字节为单位存储的,因此的数据线 I/O0-7
直接与 S3C2440 的数据线 DATA0-7 相连,不需要像 NOR Flash 那样偏移一位进
行相连。I/O0-7 是充当地址,命令,数据复用的端口。
(2)ALE 地址锁存允许,CLE 命令锁存允许,CE 片选,WE 写使能,RE
读使能依次与 S3C2440 的 NAND Flash 控制器的引脚 ALE,CLE,nFCE,nFWE,
nFRE 相连。
(3)WP 写保护,这里没有用到,直接接到高电平使其无效。VCC 与电源
相连,VSS 与地相连。武汉理工大学硕士学位论文
12
(4)当 OM0,OM1 均接地为 0 时,S3C2440 将会从 NAND Flash 中启动,
内部 RAM“Steppingstone”将会被映射到 0x0 位置,取代本来在这个位置的 NOR
Flash。上电时 NAND Flash 中的前 4K 数据会被自动拷贝到“Steppingstone”中,
从而实现从 NAND Flash 启动。
(5)NCON、GPG15 接地;GPG13、14 接电源。这四个引脚用来对 NAND
Flash 进行设置。以上设置表示使用的 Flash 是普通 NAND Flash,一页的大小为
512 字 节 , 需 要 进 行 4 个 周 期 的 地 址 传 输 完 成 一 次 寻 址 操 作 ( 这 是 因 为
K9F1208U0B 片内采用 26 位寻址方式,从第 0 位开始分四次通过 I/O0-I/O7 进
行传送),数据位宽为 8bit。不同的芯片有不同的设置方式,以上是 K9F1208U0B
的设置方式,其它芯片的设置方法需要参考 S3C2440 和具体使用的 NAND Flash
芯片的数据手册。
NAND Flash 不对应任何 BANK,因此不能对 NAND Flash 进行总线操作,
也就无法像 NOR Flash 和 SDRAM 一样通过地址直接进行访问。对 NAND Flash
存储芯片进行操作,必须通过 NAND Flash 控制器的专用寄存器才能完成。
NAND Flash 的写操作必须以块方式进行,读操作可以按字节读取。
对 K9F1208U0B 的操作是通过向命令寄存器(对于 S3C2440 来说此寄存器
为 NFCMMD,内存映射地址为 0x4e000004)发送命令队列实现的,命令队列一
般是连续几条命令或是一条命令加几个参数,具体的命令可以参考 K9F1208U0B
的数据手册。地址寄存器把一个完整的 NAND Flash 地址分解成 Column Address
与 Page Address 进行寻址。Column Address 是列地址,用来指定 Page 上的具体
某个字节。Page Address 是页地址,用来确定读写操作是在 Flash 上的哪个页进
行的,由于页地址总是以 512 字节对齐的,所以它的低 9 位总是 0。
一个 26 位地址中的 A0~A7 是它的列地址,A9~A25 是它的页地址。当发送
完命令后(例如读命令 00h 或 01h),地址将分 4 个周期发送。第一个周期是发
送列地址。之后 3 个周期则是指定页地址。当发送完地址后,就可以通过数据
寄存器对 NAND Flash 进行数据的读写。以上只是 S3C2440 的 NAND Flash 控制
器的大致操作流程,具体操作方式需要参考数据手册。
2.4.3 SDRAM 存储器电路设计
从 Flash 中读取数据的速度相对较慢,而 S3C2440 运行的速度却很快,其执
行指令的速度远高于从 Flash 中读取指令的速度。如果仅按照数据从 Flash 读取,武汉理工大学硕士学位论文
13
然后再到芯片处理的方式设计系统,那么即使芯片的运算能力再强,在没有指
令执行的情况下,它也只能等待。因此系统中还需要加入 SDRAM。
SDRAM(Synchronous Dynamic Random Access Memory)是同步动态随机
存取存储器,同步是指工作时需要同步时钟,内部命令的发送与数据的传输都
以它为基准,动态是指存储阵列需要不断的刷新来保证数据不丢失,随机是指
数据不是线性依次存储,而是由指定地址进行数据读写。
SDRAM 是与系统时钟同步工作的动态存储器,它具有数据吞吐量大,速度
快,价格便宜等特点。SDRAM 在系统中的主要作用是作为程序代码的运行空间。
当系统启动时,CPU 首先从复位地址处读取启动代码,在完成系统的初始化后,
将程序代码调入 SDRAM 中运行,以提高系统的运行速度。同时,系统和用户
堆栈、操作数据也存放在 SDRAM 中。
由于 SDRAM 自身结构的特点,它需要定时刷新,这就要求硬件电路要有
定时刷新的功能,S3C2440 芯片在片内集成了独立的 SDRAM 控制电路,可以
很方便的与 SDRAM 连接,使系统得以稳定的运行。
本设计使用的 SDRAM 芯片型号是 HY57V561620,存储容量为 4Bank×4M
×l6bit,每个 Bank 为 8M 字节,总共大小为 32M。本系统通过两片 HY57V561620
构建了 64MB 的 SDRAM 存储器系统,能满足嵌入式操作系统及较复杂算法的
运行要求。电路图如图 2-5 所示。
图 2-5 SDRAM 电路图
电路图说明:
(1)本系统使用两块 HY57V561620 芯片组成容量 64M 的 SDRAM。两片
SDRAM 都是以 2 字节为单位进行存储,因此一次存储的最小容量为 4 字节。将
一块芯片的数据线 DQ0-DQ15 与 S3C2440 的数据线低位 DATA0-DATA15 相连,武汉理工大学硕士学位论文
14
而另一块则与数据线的高位 DATA16-DATA31 相连。
(2)两块 SDRAM 芯片地址线均与 S3C2440 地址线 ADDR2-ADDR14 依次
相连。SDRAM 的内部是一个存储阵列,阵列就如同表格一样,将数据“填”进去,
和表格的检索原理一样,先指定一个行(Row),再指定一个列(Column),就
可以准确地找到所需要的单元格,这就是内存芯片寻址的基本原理。正因为如
此 , 地 址 是 通 过 将 存 储 单 元 的 列 地 址 和 行 地 址 分 开 进 行 传 送 的 , 因 此
HY57V561620 只用了 13 根地址线便完成了一个 BANK(8M 大小)的寻址。否
则按照正常情况 8M 大小的地址空间,按照字节传输,需要用到 24 根地址线。
由于本系统由两块 16bit 的芯片组成,一次最小的存储单位为 4 字节,也就是说
寻址的间隔应该为 4(2
2
)字节。ADDR0 的间隔对应为 1 字节,ADDR1 为 2 字
节,ADDR2 为 4 字节。因此 HY57V561620 需要从 ADDR2 开始连接,从而达
到一次寻址的间隔为 4 字节的目的。
(3)HY57V561620由 4个BANK组成,每个BANK大小为8M(4M×16bit)。
因此在不同的 BANK 之间也需要寻址。由于一个 BANK 的大小为 8M=2
23
,因
此对间隔为 8M 的 BANK 空间寻址,需要使用从 ADDR24 开始的两根地址线。
所以 BA0,BA1 分别接到 ADDR24,ADDR25。
(4)LDQM,UDQM 为数据输入输出屏蔽,由 S3C2440 的 SDRAM 控制器
使用,这里连接到低位数据线的芯片连接到 DQM0,DQM1;而连接到高位数据
线的芯片连接到 DQM2,DQM3。具体连接方法可以查看 S3C2440 的数据手册。
(5)片选信号 CS 连接到 SDRAM 的片选信号 nSCS0,两块芯片对应同一
片选信号。这是因为两块芯片是按照高位,低位的方式连接的,他们处于同一
地址空间。
(6)RAS 行地址选通信号,CAS 列地址选通信号,WE 写使能,分别与
S3C2440 相应的控制引脚 nSRAS、nSCAS、nWE 相连。CLK 时钟信号,CKE
时钟使能信号分别连接到 SCKE、SCLK。
使用程序读写 SDRAM 前,需要初始化 SDRAM,对一些配置寄存器进行设
置。这里只使用了 BANK6,并未用到 BANK7。
初始化的代码大致如下:
void memsetup(void)

rBWSCON = 0x22111110; 武汉理工大学硕士学位论文
15
rBANKCON0 = 0x700;
rBANKCON1 = 0x700;
rBANKCON2 = 0x700;
rBANKCON3 = 0x700;
rBANKCON4 = 0x700;
rBANKCON5 = 0x700;
rBANKCON6 = 0x18005;
rBANKCON7 = 0x18005;
rREFRESH = 0x8e07a3;
rBANKSIZE = 0xb2;
rMRSRB6 = 0x30;
rMRSRB7 = 0x30;

BWSCON 寄存器这里主要用来设置位宽,其中每 4 位描述一个 BANK,对
于本系统,使用的是两片容量为 32Mbyte、位宽为 16 的 SDRAM,组成了容量
为 64Mbyte、位宽为 32 的存储器,因此要将 BANK6 设置为 32 位。BANKCON0-5
没有用到,使用默认值 0x700 即可。BANKCON6-7 是用来设置 SDRAM,设成
0x18005 意味着外接的是 SDRAM,且列地址位数为 9。REFRESH 寄存器用于设
置SDRAM的刷新周期,查阅HY57V561620数据手册即可知道刷新周期的取值。
BANKSIZE 设置 BANK6 与 BANK7 的大小。BANK6、BANK7 对应的地址空间
与 BANK0~5 不同。BANK0~5 的地址空间大小都是固定的 128M,BANK7 的起
始地址是可变的,本系统仅使用 BANK6 的 64M 空间,因此可以令该寄存器的
位[2:0]=010(128M/128M)或 001(64M/64M),多出来的空间会被检测出来,
不会发生使用不存在内存的情况,因为Bootloader和Linux内核都会作内存检测。
2.4.4 触摸屏电路设计
使用触摸屏 TSP(Touch Screen Panel)进行输入,是指用手指或其它物体触
摸安装在显示器前端的触摸屏,将所触摸的位置(以坐标形式)由触摸屏控制
器检测,并通过接口送到 CPU,从而确定输入的相应信息。触摸屏通过一定的
物理机制,使用户直接在加载触摸屏的显示器上,通过触摸控制方式而非传统
的鼠标键盘控制方式向计算机输入信息[14]
。武汉理工大学硕士学位论文
16
根据其技术原理,触摸屏可分为矢量压力传感式、电阻式、电容式、红外
式和表面声波式等五类,当前电阻式触摸屏在嵌入式系统中用的较多。电阻触
摸屏是一个多层的复合膜,由一层玻璃或有机玻璃作为基层,表面涂有一层透
明的导电层,上面盖有一层塑料层,它的内表面也涂有一层透明的导电层,在
两层导电层之间有许多细小的透明隔离点把它们隔开绝缘。工业中常用 ITO
(Indium Tin Oxide 氧化锡)作为导电层。电阻式触摸屏根据信号线数又分为四
线、五线、六线……等类型。信号线数量越多,技术越复杂,坐标定位也越精
确。所有电阻式触摸屏的基本原理都是类似的,当触摸屏幕时,平常绝缘的两
层导电层在触摸点位置就有了一个接触,控制器检测到这个接通后,由于其中
一面导电层接通 Y 轴方向的 5V 均匀电压,另一导电层将接触点的电压引至控制
电路进行 A/D 转换,得到电压值后与 5V 相比,即可得触摸点的 Y 轴坐标,同
理得出 X 轴的坐标[15]
。本文使用是四线电阻式触摸屏。
S3C2440 提供 8 路 A/D 模拟输入,其中有 4 路是与触摸屏复用的,如果 XP、
XM、YP、YM 这 4 根引脚不用做触摸屏输入的时候可以作为普通的 A/D 转换使
用。S3C2440 的触摸屏接口有四种工作模式:
(1)正常转换模式:此模式与通用的 A/D 转换模式相似。此模式可在
ADCCON(ADC 控制寄存器)中设置,在 ADCDAT0(数据寄存器 0)中完成
数据读写。
(2)X/Y 坐标各自转换:触摸屏控制器支持两种转换模式,X/Y 坐标各自
转换与 X/Y 坐标自动转换。各自转换是在 X 模式下,将 X 坐标写入 ADCDAT0
然后产生中断;在 Y 模式下,将 Y 坐标写入 ADCDAT1 然后产生中断。
(3)X/Y 坐标自动转换:在此模式下,触摸屏控制器先后转换触摸点的 X
坐标与 Y 坐标。当 X 坐标与 Y 坐标都转换完成时,会向中断控制器产生中断。
(4)等待中断模式:当触摸笔按下时,触摸屏产生中断(INT_TC)。等待
中断模式必须将寄存器 rADCTSC 设置为 0xd3;在触摸屏控制器产生中断以后,
必须将此模式清除。
本设计采用的触摸屏是由广州友善之臂公司提供的,并且已经加在 LCD 屏
AA084VC03 之上,与 LCD 一起提供了一个对外接口。AA084VC03 是日本三菱
公司的 8.4 寸 TFT-LCD,分辨率为 640x480,262K 色。本款触摸屏为四线电阻
式触摸屏,使用 S3C2440 的触摸屏控制单元可以大大简化电路设计。具体电路
图见下一小节中的图 2-6。AM29LV800D

看看对你有没有用追问

前面的介绍还是有点用,不过现在算是搞懂了,花了半天把那个英文文档读完了。。后面讲到的ARM,以前学过,早丢了!我现在主要就是用这款flash扩展FPGA,作为SOPC的程序存储器。但现在突然发现有点问题,就是Nios II是32位的处理器,而这款flash只能接成8位,或者16位,这个兼容吗??还有,AM29LV...这个速度等级到底是多少啊?比如他的setup time,hold time

参考技术A 不知道...谢谢

如何删除 Flash 的预加载器?

【中文标题】如何删除 Flash 的预加载器?【英文标题】:How to remove preloader of Flash? 【发布时间】:2017-03-22 00:49:33 【问题描述】:

在我的 Flash 应用程序出现之前,我得到了这个加载器,如何删除它?我已经为我的应用程序提供了一个预加载器,但仍然找不到这个显示的原因,我想删除它。

【问题讨论】:

Custom Preloader in Flex 4?的可能重复 【参考方案1】:

你必须从mx.preloaders.SparkDownloadProgressBar扩展SparkDownloadProgressBar

然后使用主应用标签的preloader属性;例如:

<s:Application preloader=”com.riagora.loader.Preloader”>

看看Building a custom Flex preloader

【讨论】:

以上是关于Am29LV800D-----这个flash.如何接成16位,和8位??求助的主要内容,如果未能解决你的问题,请参考以下文章

centos删除/home所在的lv后如何恢复

求多普达p800 刷机教程和rom

I have Flash Player installed, but I am unable to view Flash content in Chromium. How do I enable Fl

如何在 Flash 中创建 Flex Display 组件?

qt程序启动播放动画

如何在我的网站上嵌入 Flash 对象?