Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1307957
  • 博文数量: 548
  • 博客积分: 7597
  • 博客等级: 少将
  • 技术积分: 4224
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-15 13:21
个人简介

嵌入式软件工程师&&太极拳

文章分类

全部博文(548)

文章存档

2014年(10)

2013年(76)

2012年(175)

2011年(287)

分类: 嵌入式

2012-05-16 09:33:26

一,关于SDRAM控制器的配置:

  对SDRAM控制器初始化的配置,主要是为了对应内存所作的一些参数设置,和访问内存时一些命令模式及其顺序的设置,即时序的设置。

1SDRAM组成的原理。

   首先,SDRAM是通过北桥芯片和CPU进行通信的(这里指PC机),它一次访问的位宽必须CUP的位宽一样(即BANK的位宽),比如都是32BIT。其结构组成是这样的,SDRAM首先是一个模块,这个模块由几个BANK组成,每个BANK有若干个单元格组成。为了满足位宽,通常几个芯片并联组成一个BANK.   SDRAM控制器通过行和列的定位,对BANK进行寻找。即SDRAM控制器是这样操作的,先选某一个BANK,再定位行,列,找出单元格。组成大概是这样子的,下面看配置。

2SDRAM控制器的配置:(以ATMEL9g20为例)

1)SDRAM的一些参数必须配置(一个SDRAM控制器可以控制不同类型的SDRAM,比如数据宽度等)。比如行列数,数据宽度,异步延迟时间等。在参数配置寄存器。

2)对一些经常移动的SDRAM,要设置温度补偿参数。在低电寄存器。

3)配置SDRAM类型,在存储器设备寄存器。

4)然后配置触发前等待时间,发空命令,读写周期,刷新周期,充电时间,命令模式等一系列参数。

  先发一个NOP(空命令),在模式寄存器模式位设成1.

  发一个BANK预充电命令,在模式寄存器模式位设成2.

  8个自动刷新周期(CBR),在模式寄存器模式位设成4.

  模式寄存器周期设置,在模式寄存器模式位设成3.

  对移动的SDRAM,有一个扩展模式寄存器周期设置,在模式寄存器模式位设成5.

  然后必须设成正常模式,在模式寄存器模式位设成0.

  最后写一个刷新频率数,到刷新时间计数器寄存器里。

SDRAM电源管理,有三种模式:

1,自刷新模式,不要SDRAM控制器参与,SDRAM设备自己刷新,耗电较低。在低能寄存器SDRAMC_LPR中的LPCB被设置成1.

2Power-down Mode,刷新在SDRAM控制器下进行。在低能寄存器SDRAMC_LPR中的LPCB被设置成2.

3, Deep Power-down Mode,所有的SDRAM内容都消失。在低能寄存器SDRAMC_LPR中的LPCB被设置成3.

在一个自动刷新命令发出后,在SDRAM内部刷新地址自动产生,然后自动增加。有一个计时器,在寄存器SDRAMC_TR可以设置一个值,用以表明刷新周期间的时钟周期数。如果刷新是出现错误,则会发生中断,会被自动记录在中断寄存器SDRAMC_ISR

  另外,SDRAM控制器的引脚和PIO控制器的引脚复用。如果用SDRAM控制器,必须设PIO控制器,使其为外设服务。

下面看一下相关寄存器:

1,模式寄存器SDRAMC_MR

  选择SDRAM控制器发送什么命令到SDRAM,由寄存器的第三位决定。

2,刷新计时器寄存器SDRAMC_TR

  由其低12位决定刷新周期多大。

3SDRAM配置寄存器SDRAMC_CR

  设置行数,列数,BANKS数,行访问信号,列访问信号,数据宽度,写回复延迟等等。

4SDRAM低能寄存器 SDRAMC_LPR

  可以设置选择何种刷新模式(4种),局部刷新PASR,温度补偿自刷新,驱动长度(即输出数据的宽度),激发低能模式的延迟时间。

5,中断使能(禁止)寄存器,这个不用多说啦。

6,中断屏蔽寄存器  SDRAMC_IMR

7,中断状态寄存器  SDRAMC_ISR

8,存储器类型寄存器  SDRAMC_MDR

  可以选择使用的是那种存储器

 

http://blog.163.com/liu_saiyu@126/blog/static/471373642011378451964/?latestBlog

阅读(1034) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~