前面几篇博客已经讲到了关于0V7725的相关驱动问题,那么OV7725驱动成功之后,设定OV7725输出RGB565格式,那么对于640x480x16,那么若是选用FIFO,应该设置为位宽16bit,存储深度为30万,但是这样是不现实的。所以采用存储深度更大的SDRAM来实现数据的缓存。

要么对于SDRAM的学习资料,笔者列举以下几篇文档供大家学习。

当然还有之前各位大神写的博客,都可以进行参考,这里不一一列举。

本篇博客先整体介绍SDRAM,以及SDRAM的重要知识点。

  1.基础知识

SDRAM(synchronous dynamic random access memory),同步动态随机存储器。同步也就是与CPU前端总线的系统时钟频率相同,并且内部命令的发送与数据的传输都是以它为基准。动态是SDRAM是电容阵列,需要不断的充放电,不断刷新数据保证数据不丢失,所以SDRAM有个重要参数,就是刷新频率。

我们可以把SDRAM想象成一个表格,若要写入某一个单元,则需指定行地址和列地址,如下图21.1所示,整个由行列组成的块,称之为L-Bank,大部分的SDRAM都是基于4个L-Bank设计的,也就是有4张这样的表格。寻址流程,先是指定L-Bank的地址,再进行指定行地址,然后再指定列地址寻址单元,其中每个单元可以放置8/16/32位的数据。

笔者常用的是hynix(海思)的SDRAM芯片,如下图。基于hynix的其他其他型号操作时序都是一样的,只不过存储容量改变。时钟频率以及其他参数改变,这个之后会提及到。

由上图可以看出,有四个分区,每一个分区是由行和列激活信号,并通过行和列的预解码实现行和列的锁定,其中地址缓存器赋予地址寄存器,用来产生行和列的预解码,以及模式寄存器,模式寄存器用来控制写入的方式。状态机部分是产生控制逻辑,功能和仲裁器一样,SDRAM的实施其实也是利用了DMA的原理,CPU只需给仲裁逻辑发送相应的指令,会将数据从一个地方搬运到另一个地方。

所以整个SDRAM部分,应该包括逻辑控制单元,地址寄存器,数据寄存器,在时序控制中,还有一个命令解码器,CPU就是通过这个通道来实现命令的交互,来操作内存条的。SDRAM中还有模式寄存器,这个决定SDRAM是否能够读写操作的成败。

2. PCB设计注意事项

SDRAM在制作PCB时,为了保证在高频下正常工作,首先应该处理好电源引脚的退耦电容,退耦电容的layout与FPGA电源引脚一样,在PCB设计时尽可能的靠近电源引脚,以最大限度地滤除纹波,提高SDRAM驱动电源的质量。

SDRAM时钟信号:由于SDRAM的工作频率较高,为避免传输效应,同时避免对其他信号产生干扰,在时钟线的布线时应尽可能采用地线隔离,缩短PCB上面的走线长度。

SDRAM控制信号:由于是高速并行操作,控制线在layout时尽可能地等长,以最大限度地保证时序信号的同步性。

如果对SDRAM的时钟,时序要求比较高,则在重要的控制线上面,加33Ω电阻来消除干扰。这个主要是降低信号边沿的跳变速率。

SDRAM尽可能地远离电源,晶振,用户接口等干扰比较大的电路模块

SDRAM走线即使没有严格的走等长线,只要走线不是太长,都没有太大关系。

上图是笔者经常采用的一种方案,其中引脚15和19如果不采用掩模处理的话,可以直接接地。

//=======================================================================

更多详细的资料下载可以登录笔者百度网盘:

网址:http://pan.baidu.com/s/1bnwLaqF

密码:fgtb

//=======================================================================

SDRAM 学习笔记(一)的更多相关文章

  1. SDRAM学习笔记(二)

    上一篇博客主要讲解了一下SDRAM整体结构以及PCB方面的注意事项.接下来讲解一下需要用到的一些命令. 1.常用命令的缩写 上述是常用到的一些指令集. 2.模式寄存器   (1)突发长度 通过对A0~ ...

  2. SDRAM 学习笔记(三)

    上图是terasic公司提供的SDRAM控制器,大部分已经封装好,我们需要修改其中部分代码,以此来实现我们自己需要的功能. 1.PLL时钟设定 首先上面的sdram_pll.v中产生上一篇博客所需要的 ...

  3. SDRAM学习笔记

    摘自“开源骚客视频教程” 1.仲裁模块就是用来控制什么时候读.写.刷新 2.模块中的状态机 3.初始化时序图说明,来自“IS42S116160.pdf”文件 4.SDRAM写时序图,来自“IS42S1 ...

  4. jz2440-uboot-201204版本移植【学习笔记】【原创】

    平台:jz2440 作者:庄泽彬(欢迎转载,请注明作者) 说明:韦东山二期视频学习笔记 交叉编译工具:arm-linux-gcc (GCC)4.3.2 PC环境:ubuntu18.04 一.uboot ...

  5. jz2440使用openjtag+openocd+eclipse调试【学习笔记】

    平台:jz2440 作者:庄泽彬(欢迎转载,请注明作者) 说明:韦东山二期视频学习笔记 交叉编译工具:arm-linux-gcc (GCC) 3.4.5 eclipse版本:eclipse-cpp-l ...

  6. jz2440存储管理实验【学习笔记】

    平台:jz2440 作者:庄泽彬(欢迎转载,请注明作者) 说明:韦东山一期视频学习笔记 简介:先来简单的说明一下这次的实验,看看下图,我们的程序通过烧录器下载到nandflash当中去,之后在启动的时 ...

  7. Aurora学习笔记连载一:仿真平台搭建

    由于公司项目需要,需要学习Aurora协议,才有了这样的连载学习笔记,也算是对自己学习的一份记录吧. 对于Aurora是什么,大家自行百度. 当然,Kevin也在此先提醒大家,本套学习笔记不是你想学就 ...

  8. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  9. PHP-自定义模板-学习笔记

    1.  开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2.  整体架构图 ...

随机推荐

  1. 微信支付错误,页面URL末注册

    最近在做个项目用到微信支付的JSSDK支付时候碰到“URL末注册的问题”,可是我已经在公众平台里的支付目录里添加了,测试了几次都是这个问题,最后才发现原来是大小写的问题,还有我的支付页面是ASP.NE ...

  2. 【Unity】8.1 Unity内置的UI控件

    分类:Unity.C#.VS2015 创建日期:2016-04-27 一.简介 Unity 5.x内置了-套完整的GUI系统,提供了从布局.控件到皮肤的-整套GUI解决方案,因此可直接利用它做出各种风 ...

  3. Shell中整数比較

    -eq             等于,如:if ["$a" -eq "$b" ] -ne             不等于,如:if ["$a" ...

  4. java park unpark

    https://blogs.oracle.com/dave/a-race-in-locksupport-park-arising-from-weak-memory-models https://blo ...

  5. Mac安装mtr与brow安装

    Mac安装mtr与brow安装 Mac里比较好的安装mtr方式是用Homebrew 或者MacPorts,本来想安装Homebrew,但大概是GFW的问题,下载地址无法访问,因为没有全局FQ,暂时不考 ...

  6. godep的save和update

    godep save ./... 把依赖的包从GOPATH里找到,然后固化到当前目录Godeps目录里. 但是它不分版本:如果GOPATH里某个包升级了,godep save不会把它更新到Godeps ...

  7. 【delphi】ClientDataSet详细解读

    TClientDataSet的基本属性和方法 TClientDataSet控件继承自TDataSet,其数据存储文件格式扩展名为 .cds/.xml,是基于文件型数据存储和操作的控件. 该控件封装了对 ...

  8. 在IIS服务器上屏蔽IP的访问

    今天就跟大家分享一下在IIS服务器上如何屏蔽特定IP的访问,希望对大家有所帮助. 第一种方法:通过iis中的ip地址和域名限制. 此方法简单有效,建议使用 点击网站--右键属性--目录安全性--IP地 ...

  9. ostream_iterator的可能实现

    当我们要输出一个容器的内容时,可以使用std::copy函数,如下: vector <string> myvector; std::copy(myvector.begin(), myvec ...

  10. SQL2008R2 安装图解

    安装SQL Server 2008 R2需要.NET Framework 3.5 SP1支持 这里我们的操作系统是Windows Server 2008 R2,已经默认自带了.NET Framewor ...