SDRAM_init
-
SDRAM芯片各引脚及功能
-
SDRAM常使用的命令
-
SDRAM芯片内部状态转移图
注:1-粗线为自动跳转。2-细线为手动跳转 -
开始配置
SDRAM上电后需要保持100us的延时时间,并且在这段时间内不允许做任何操作,也就是说这段期间内需要给SDRAM发送NOP( No operation )空操作命令。在100us延时过后,需要给出Percharge(预充电 )命令对所有Bank进行预充电。这样可以将芯片内部的状态机跳转到IDLE状态,在IDLE状态内需要连续给出两个AUTO refresh(自动刷新)命令,当两个命令结束后才能够设置模式寄存器(MODE register set)。
模式寄存器需要根据需要来设定
Burst Length(突发长度):SDRAM可以进行突发“读”或突发“写"。以突发写为例子,假如当前突发写长度为4,在写入数据时只需要给出写的首地址,再连续给出需要写入的4个数据,第一个数据会写入首地址,第二个数据会自动写到下个地址以此类推。
Burst Type(突发类型):突发类型一个有两种类型,顺序型和交错型,建议使用顺序型。
CAS Latency(延时):为了采样得到更准确的数据建议选择延时2.
OP Code:选择突发“读”和突发“写”模式。
这样SDRAM模式寄存器基本设置完成。 -
SDRAM初始化波形图
波形图是根据芯片手册得到的,波形图中的延时是厂家提供参考使用的,但在实际使用中个人建议把延时再加长一些,例如芯片上电延时100us能够改成200us或者其它时间也行,但必须大于或等于厂家提供的100us,否则芯片设置失败。 -
SDRAM代码
以上是SDRAM初始化配置及代码,如有错误的地方还望大神们之处。谢谢!