SDRAM 阅读笔记
1、所有信号同步,都是参考时钟的上升沿
2、Programmable burst length – 突发长度可编程:1、2、4、8、整页(256)
3、Self refresh modes - 自刷新 :在休眠状态下,自动刷新
4、4096 refresh cycles every 64 ms :刷新周期,每64ms刷新4096行,一行的刷新时间64/4096 = 0.015625ms =15.625us ,这里一 BANK 有4096 行。
5、Programmable CAS latency (2, 3 clocks),可编程的潜伏期时间,意思就是当给SDRAM发一个指令后,会有一个反应的时间,才能做出相应的回应,如下图
6、Burst termination by burst stop and precharge command:可通过突发停止命令和预充电命令停止突发读(写)操作,比如整页写256个,但是写到128个时不想在继续写了,可以发送突发停止命令或预充电命令来终止当前的突发操作。
7、Byte controlled by LDQM and UDQM :高、低字节有效控制
8、IC42S16400F are organized as 1,048,576 bits x 16-bit x 4-bank:
>1,048,576 bits :1,048,576个单元,4096 *256 = 1,048,576
>16-bit :每个单元16bit
>4-bank:有4个bank
一个 BANK 1677216 bit: 有4096 行,每行256列,每单元是16bit
9、A0~A11 复用功能:
>在激活命令时: A0~A11 是作为行地址,有4096行,就需要12个地址来表示
>在读写命令时:A0~A7 作为列地址,有256列,需要8个地址来表示;A10决定读写操作后是否要进行预充电,A10 为高电平时,开启预充电
>在模式寄存器时:A0~A11作为模式寄存器的内容, 就是作为OP-CODE的配置值
10、CKE 时钟使能,当CKE为高电平时 ,输入的CLK时钟有效;当CKE为低电平时 ,输入的CLK时钟无效。注意:The next rising edge of the CLK signal will be valid when is CKE HIGH and invalid when LOW. 意思是说,当CKE = 1时,下一个时钟上升沿有效,当CKE = 0时,下一个时钟上升沿无效
命令
1、 读命令: READ
>读命令时,先选择BANK
>开始一个burst的读
>地址的低八位(A0~A7)作为列地址
>A10指示读完后是否要进行预充电,A10 = 1,读完后进行预充电;A10 = 0,读完后不进行预充电,保持可以继续访问
>同时指明了DQM和读出来的时序关系。注意当xDQM = 1,对应的DQx数据,在两个时钟之后输出为高阻,比如,LDQM = 1, D0~D7 (低8位)在两个时钟之后将是高阻状态
>需等待CAS latency时间 . 固定2或3 个时钟周期后
2、 写命令 WRITE
>写命令时,先选择BANK
>开始一个burst的写
>地址的低八位(A0~A7)作为列地址
>A10指示写完后是否要进行预充电,A10 = 1,写完后进行预充电;A10 = 0,写完后不进行预充电,保持可以继续访问。
>同时指明了DQM和写的时序关系。当xDQM = 0,数据将被写入;当xDQM = 1,数据将被忽略,不会被写入到SDRAM中,注意没有时钟延时,在当拍时钟立刻有效果
3、 预充电 PRECHARGE
>可通过A10、BA0和BA1选择全部BANK或某一个BANK
>预充电命令后,必须等待TRP时间,是需要一个TRP时间完成预充电动作
>预示充电后处于idle状态。必须active后,才能读和写
比如:一般操作流程,先激活,送出行地址,然后开始读或写命令,再预充电,之后SDRAM会进入休眠状态,此时再次需读写的话,需先激活,重新走一遍流程。
提示,尽量避免在突发读写时使用预充电命令,否则突发读写到一半时会被中断结束,再次读写会失效,需从新激活在读写,一般在空闲时,发送预充电命令
4、 自动预充电 AUTO PRECHARGE
>A10决定
>每个读和写操作独立决定
>注意!!全页模块不支持自动预充电,也就是在 burst模式下不支持自动预充电
5、 自动刷新 AUTO REFRESH COMMAND (正常工作时使用)
>行列地址自动生成,只发送命令既可,而无需再提供地址
>需要TRC时间,此期间不能有其他命令
>64ms必须至少执行4096次
6、 自刷新SELF REFRESH (休眠状态时使用)
>在没有外部时钟时,保持数据,也就是说,在休眠状态时,内部会自动刷新,以保持数据不会被丢失。
7、 强迫停止的读或写 BURST TERMINATE
>在固定长度或整页突发读写时,可通过该命令来强制突发读写操作
8、 无影响命令 COMMAND INHIBIT
>相当于空操作
9、 空操作 NO OPERATION
>空操作
10、配置模式寄存器 LOAD MODE REGISTER
>通过A0~A11来配置内容的值
>只能在所有BANK是空闲状态时发出
>需等待TMRD时间
11、 激活命令 ACTIVE COMMAND
>ACTIVE有效时,通过BA0、BA1选择BANK 和 A0~A11选择行。
>除非预充电命令,否则一直选译该BANK和行
>需等待TRCD时间
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】