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初始化配置及代码,如有错误的地方还望大神们之处。谢谢!
本文详细介绍了SDRAM芯片的初始化过程,包括SDRAM芯片各引脚的功能、常用的命令、内部状态转移,以及配置流程。强调了上电后的延时、预充电、自动刷新等关键步骤,解析了模式寄存器的设置方法,包括突发长度、突发类型、延时的选择。
1万+

被折叠的 条评论
为什么被折叠?



