嵌入式软件工程师&&太极拳
全部博文(548)
分类: 嵌入式
2012-05-16 09:33:26
一,关于SDRAM控制器的配置:
对SDRAM控制器初始化的配置,主要是为了对应内存所作的一些参数设置,和访问内存时一些命令模式及其顺序的设置,即时序的设置。
1,SDRAM组成的原理。
首先,SDRAM是通过北桥芯片和CPU进行通信的(这里指PC机),它一次访问的位宽必须CUP的位宽一样(即BANK的位宽),比如都是32BIT。其结构组成是这样的,SDRAM首先是一个模块,这个模块由几个BANK组成,每个BANK有若干个单元格组成。为了满足位宽,通常几个芯片并联组成一个BANK. SDRAM控制器通过行和列的定位,对BANK进行寻找。即SDRAM控制器是这样操作的,先选某一个BANK,再定位行,列,找出单元格。组成大概是这样子的,下面看配置。
2,SDRAM控制器的配置:(以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.
2,Power-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位决定刷新周期多大。
3,SDRAM配置寄存器SDRAMC_CR
设置行数,列数,BANKS数,行访问信号,列访问信号,数据宽度,写回复延迟等等。
4,SDRAM低能寄存器 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