|
|
高速电路PCB网,专注于嵌入式方案,信号完整性和电源完整性仿真分析,高速电路PCB设计,各种EDA工具(Cadence\Mentor\\AD\\CAM\ANSYS HFSS)交流学习。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
SDRAM的初始化
我看到有两种初始化方法,在等待时间和刷新次数上有所不同。可能是因为芯片的不同。
法一:
(1) 电源和时钟稳定;
(2) 至少等待100us以稳定内部电路,在此期间至少发出一次NOP操作;
(3) 用PRECHARGE命令对所有的Bank充电(A10设为高),使所有的Bank都处于IDLE状态;
(4) 执行两次AUTO REFRESH自动刷新操作;
(5 )设置工作模式寄存器并等待20ns,此时SDRAM初始化完毕并进人IDLE状态。
法二:
(1)上电后,保持200us稳定时间;
(2)对器件的所有Bank发预冲命令;
(3)发出八个自动刷新命令;
(4)发出模式设置命令来设置器件的工作模式。
两个命令之间要有几个空操作,使命令有时间执行完操作。具体间隔看芯片手册。
DDR SDRAM的初始化
(1)上电,时钟稳定后经过200μs延时,执行一次空操作(DESELECT或NOP命令)且CKE为高。
(2)对所以块进行预充电(PRECHARGE ALL命令)。
(3)设置扩展模式寄存器(LMR命令且BA1为低电平BA0为高电平)使能DLL(延时锁相环)。
(4)设置模式寄存器(LMR命令且BA1,BA0均为低电平)复位DLL。
(5)执行一次预充电命令(PRECHARGE ALL),所以的块进入空闲(idle)状态。
(6)再经过两个自刷新(Auto refresh)命令后再次设置模式寄存器设置操作模式
(7)延时200个周期,因为在设置模式寄存器复位DLL后必须经过200个周期才能够执行读操作。
其实是第三步设置扩展模式寄存器到DDR SDRAM开始工作输入的命令之间要延时200个周期。第七步再延时也可,多延时几个周期不会产生问题,别少延时了。
该帖已经同步到电子微博网 易阳的微博 |
|