SDRAM学习笔记(二)
上一篇博客主要讲解了一下SDRAM整体结构以及PCB方面的注意事项。接下来讲解一下需要用到的一些命令。
1.常用命令的缩写
上述是常用到的一些指令集。
2.模式寄存器
(1)突发长度
通过对A0~A11的控制来实现SDRAM的常用配置。首先A0~A2是突发长度的控制。突发长度的控制如下图,有突发长度1,2,4,8,还有全页长度。
突发读写方式,突发指的是在同一行中相邻的存储单元连续进行数据传输的方式,连续传输 的周期数就是突发长度,只要指定起始列地址与突发长度,寻址与数据的读取将自动进行,只需控制好两端突发读取命令的间隔周期就能做到连续的突发传输。突发长度在模式寄存器的配置中有1.2.4.8,以及256个数据的操作模式。
突发读写实现的是连续的读写操作,在结束完一次突发读写前,不需要进行地址的索引,但需要注意的是,这个连续的读写操作是操作的连续,不是地址的连续。
SDRAM的读写方式,既可以通过地址的索引实现单个逻辑单元数据的读/写,也可以通过 突发连续读/写实现最多256个数据的连续操作,为了实现更高的带宽,可以采用突发连续读/写方式来实现海量数据的高速读/写。
(2)突发类型和读写方式
在模式寄存器配置中还可以设定SDRAM突发读写方式为顺序读写或者交错读写。
为了实现海量数据的传输,这里选择突发读写,突发类型选择连续。
3.SDRAM初始化时序
有严格的流程:
板卡上电初始化---200us等待SDRAM启动(手册中至少需要100us)----所有L-BANK预充电(给所有L-BANK的电容充电,准备预刷新)-----8个预先刷新周期(手册规定至少2个周期来刷新逻辑块,在设计中一般直接给8个周期)----模式寄存器的配置(寄存器配置完毕后,输出SDRAM_init_done信号 ,标志初始化完毕)。
4.数据手册相关内容
笔者之前使用过的一款SDRAM芯片,驱动时钟133MHz,CAS潜伏周期时间为3,这个参数决定了SDRAM的最高运行速率。
总容量 = 行数 x 列数 x bank 数 x 位宽 = 1 bank单元数 x bank 数 x 位宽 ;
DQM的位宽 = 数据宽度/8,如32bit的SDRAM,DQM[2]对应DQ[23:16].
关于DQM的作用是起到掩膜作用,就是指定输出时候,某一段是不输出的。下图是DQM的时序图。
5.SDRAM读写时序图
在上述模式寄存器控制中,A10控制着读写当前L-Bank自动进行预充电,再发出预充电命令之后,要经过一段时间才能允许发送RAS行有效命令打开新的工作行,这个间隔称为预充电有效周期,tRP。
刷新
SDRAM刷新包括自刷新(self refresh)和自动刷新(auto refresh),不论是何种方式,不用提供外部行地址信息,这是一个内部自动操作。
预充电是对一个 或所有的L-Bank中的工作行操作,不是定期的。刷新是固定的周期,依次对所有行进行操作,以保留那些久久没经过重写的存储体中的数据。
由于SDRAM内部是电容结构,需要不断刷新才能够保存数值,存储体中电容的数据有效保存期上限是64ms,刷新速度就是 4096/64ms。也就是64ms必须刷新完所有的行。
6.行有效时序图
7.列读写 tRCD
8.tCL 数据输出延时时间
9.tWR 数据写入延时时间
10.突发长度
11.页传输
full page (全页)突发传输是指L-Bank里的一行中所有存储单元从头至尾进行连续传输,具体的突发长度要看芯片的内容情况。
针对芯片的页是狭义的,常用的是广义上的页。
//========================================================
对于上述的方法进行总结,SDRAM的驱动方式如下:
首先器件上电----对SDRAM进行初始化(因为内部有逻辑电路部分,状态机部分)----对SDRAM进行200us的稳定期(参数INIT_PER)----预充电,对所有的L-Bank进行预充电(预充电时间间隔tRP)----8个预先刷新周期(手册规定至少2个周期来刷新逻辑块,在设计中一般直接给8个周期,参数REF_PER)----模式寄存器的配置(行选通周期参数tRCD,由于SDRAM内部结构导致更新存储阵列需要时间---数据输出延时时间tCL---突发长度BL设置)
//========================================================
//=======================================================================
更多详细的资料下载可以登录笔者百度网盘:
网址:http://pan.baidu.com/s/1bnwLaqF
密码:fgtb
//=======================================================================
SDRAM学习笔记(二)相关推荐
- qml学习笔记(二):可视化元素基类Item详解(上半场anchors等等)
原博主博客地址:http://blog.csdn.net/qq21497936 本文章博客地址:http://blog.csdn.net/qq21497936/article/details/7851 ...
- [转载]dorado学习笔记(二)
原文地址:dorado学习笔记(二)作者:傻掛 ·isFirst, isLast在什么情况下使用?在遍历dataset的时候会用到 ·dorado执行的顺序,首先由jsp发送请求,调用相关的ViewM ...
- PyTorch学习笔记(二)——回归
PyTorch学习笔记(二)--回归 本文主要是用PyTorch来实现一个简单的回归任务. 编辑器:spyder 1.引入相应的包及生成伪数据 import torch import torch.nn ...
- tensorflow学习笔记二——建立一个简单的神经网络拟合二次函数
tensorflow学习笔记二--建立一个简单的神经网络 2016-09-23 16:04 2973人阅读 评论(2) 收藏 举报 分类: tensorflow(4) 目录(?)[+] 本笔记目的 ...
- Scapy学习笔记二
Scapy学习笔记二 Scapy Sniffer的用法: http://blog.csdn.net/qwertyupoiuytr/article/details/54670489 Scapy Snif ...
- Ethernet/IP 学习笔记二
Ethernet/IP 学习笔记二 原文链接:http://wiki.mbalib.com/wiki/Ethernet/IP 1.通信模式 不同于源/目的通信模式,EtherNet/IP 采用生产/消 ...
- Java学习笔记二:数据类型
Java学习笔记二:数据类型 1. 整型:没有小数部分,允许为负数,Java整型分4种:int short long byte 1.1 Int最为常用,一个Int类型变量在内存中占用4个字节,取值范围 ...
- 吴恩达《机器学习》学习笔记二——单变量线性回归
吴恩达<机器学习>学习笔记二--单变量线性回归 一. 模型描述 二. 代价函数 1.代价函数和目标函数的引出 2.代价函数的理解(单变量) 3.代价函数的理解(两个参数) 三. 梯度下降- ...
- ASP.NET MVC 2 学习笔记二: 表单的灵活提交
ASP.NET MVC 2 学习笔记二: 表单的灵活提交 前面说到有做到公司内部的一个请假系统,用的是ASP.NET MVC 2+Entity Framework.虽然EF(Entity Frame ...
- amazeui学习笔记二(进阶开发4)--JavaScript规范Rules
amazeui学习笔记二(进阶开发4)--JavaScript规范Rules 一.总结 1.注释规范总原则: As short as possible(如无必要,勿增注释):尽量提高代码本身的清晰性. ...
最新文章
- Centos7搭建k8s环境教程,一次性成功,收藏了!
- [基础知识]Linux新手系列之三
- linux文件类型为ext4怎么扩展,如何扩展ext4分区和文件系统?
- 【内网渗透工具】炫彩蛇安装教程
- svn Error:Wrong committed revision number: -1。
- 程序员修神之路--做好分库分表其实很难之二
- 函数式编程之-模式匹配(Pattern matching)
- python集合常用方法_Python中集合类型(set)学习小结
- Git之同一台电脑连接多个远程仓库
- android主题资源,使用 Theme Editor 设计应用主题背景
- SAP License:SAP成本收集器两则
- ajax的 post长度,AJAX POST请求由于Payload内容长度而失败
- RDD DataFrame DataSet 区别和转换
- Spring Boot框架从入门到精通
- 华为数通部门软开9.16凉经
- 常见mysql优化 面试题
- 电子邮件服务器传输到电子邮件客户端,6.3.4 电子邮件客户端和服务器
- Unable to obtain current patch information due to error: 20001, ORA-20001: Latest xml inventory is n
- CP的mgmt_cli tool与SMC CLI用法
- 咸鱼软件应用—Cura3D切片
热门文章
- 网络协议端口号说明(转)
- Mac下虚拟机使用那些事儿
- 实用的Safari浏览器扩展工具——浏览标签太多?来一键保存!
- Quicktime:如何在录制屏幕时录制系统声音
- Vegas如何设置淡入淡出?
- (日常搬砖)之environment.yml的使用
- iOS 解决报错 dyld: Library not loaded: @rpath/xxx.framework Reason: image not found
- +搭建“记忆宫殿”的三款思维导图神器
- 读RESTful API 设计指南心得体会
- NetscalerSSL证书的导入和link