1 SDRAM控制原理

1.1 SDRAM信号线

1.2 SDRAM地址线

  SDRAM包含有“A”以及“BA”两类地址线:

A:行(Row)与列(Column)共用的地址线

BA:独立的用于指定SDRAM芯片内部存储阵列号(Bank)

  通讯时,当RAS=0,则“行地址选通器”被选通,地址线A[11:0]表示的地址会被输入到“行地址译码器”中,行地址被选中;同时地址线BA[1:0]表示的Bank也被锁存,选中要操作的Bank号;接着CAS=0,则“列地址选通器”被选通,地址线A[11:0]表示的地址会被输入到“列地址译码及锁存器”中作为列地址,完成寻址过程。

1.3 SDRAM数据线

  IS45s16400J存储阵列的“数据宽度”是16位,但在实际应用中也可能会以8位宽度存取数据,这时我们只需要DQ[7:0]表示数据,而DQ[15:8]数据线表示的数据必须忽略。所以数据输入输出时,还会使用DQM[1:0]来配合,每根DQM线对应8位数据。如DQM0=0,DQM1=1时,数据线DQ[7:0]表示数据有效,而DQ[15:8]表示数据无效。

1.4 SDRAM容量计算

  已知IS45s16400J芯片行地址12根线,列地址8根,4个Bank,位宽16bit。

可以计算出:

SDRAM的总单元数 =(2^行地址选择线)*(2^列地址选择线)*Bank选择线=2^(12+8)*4=2^10*4=1M bits*4

SDRAM总容量 = 单元数*位宽=1M bits*4*16=64M bits = 8MB(Bytes)

2 FMC

2.1 通信引脚

SDRAM引脚 FMC引脚 说明
CLK FMC_SDCLK 同步时钟信号
CKE FMC_SDCKE1

时钟使能信号

CS FMC_SDNE1 片选信号
CAS FMC_NCAS 列地址选通
RAS FMC_NRAS 行地址选通
WE FMC_SDNWE 写使能
DQM[0:1] FMC_NBL[0:1] 数据输入/输出掩码信号
BA[0:1] FMC_A[14:15] SDRAM芯片内部Bank地址输入
A[0:11] FMC_A[0:11] 地址输入
DQ[0:15] FMC_D[0:15] 数据输入/输出

CKE和CS作用:

FMC_SDCKE0,FMC_SDCLK0:FMC映射的SDRAM的存储区域Bank1

FMC_SDCKE1,FMC_SDCLK1:FMC映射的SDRAM的存储区域Bank2

2.2 地址映射

FMC_SDCKE0,FMC_SDCLK0:FMC映射的SDRAM的存储区域Bank1(0xC000 0000~0xCFFF FFFF)

FMC_SDCKE1,FMC_SDCLK1:FMC映射的SDRAM的存储区域Bank2(0xD000 0000~0xDFFF FFFF)

注意:这里的Bank和上面所讲的SDRAM芯片内部存储区域Bank1~4是不一样的概念。

STM32F429驱动SDRAM的更多相关文章

  1. lPC1788驱动SDRAM

    Sdram型号为hy57v256 #ifndef __SRAM_H_ #define __SRAM_H_ #include "common.h" #include "de ...

  2. FPGA之驱动sdram控制兼容性移植实验

    cb早在2012年就推出了VIP 视频开发板 V1.4  这套开发板是ep2的,摄像头是ov7670,虽然不如当前的vip20强大,但也算是其雏形. 在vip20后期,cb对sdram以及其他模块进行 ...

  3. 第26章 FMC—扩展外部SDRAM—零死角玩转STM32-F429系列

    第26章     FMC—扩展外部SDRAM 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/ ...

  4. 【黑金原创教程】【FPGA那些事儿-驱动篇I 】实验十八:SDRAM模块① — 单字读写

    实验十八:SDRAM模块① — 单字读写 笔者与SDRAM有段不短的孽缘,它作为冤魂日夜不断纠缠笔者.笔者尝试过许多方法将其退散,不过屡试屡败的笔者,最终心情像橘子一样橙.<整合篇>之际, ...

  5. FMC—扩展外部 SDRAM

    本章参考资料:< STM32F4xx 参考手册 2>.< STM32F4xx 规格书>.库帮助文档< stm32f4xx_dsp_stdperiph_lib_um.chm ...

  6. SDRAM和dcfifo的联合

    SDRAM和dcfifo的联合 设计原理 在"SDRAM突发读写页"实验中,留下了一个问题,就是从SDRAM读取数据的速度要与SDRAM的驱动时钟同步,这就造成了读出的数据的速率过 ...

  7. SDRAM基础知识

    SDRAM知识普及 在学习SDRAM之前,必须先了解"SDRAM"这个概念性的东西,并有感性的认识转变到一种理性的认识,所谓理性的认识就是实质性的东西…….不多说,相信你已经迫不急 ...

  8. 第26章 FMC—扩展外部SDRAM

    本章参考资料:<STM32F76xxx参考手册2>.<STM32F7xx规格书>.库帮助文档<STM32F779xx_User_Manual.chm>. 关于SDR ...

  9. 【转】如何把变量或者数组定义到SDRAM及任意位置

    我们开发软件的时候,经常会遇到到一个问题,就是内存不够,这个时候就纠结了,怎么办,有两种方法,第一种是扩展内存,外加SRAM或者SDRAM:第二种应该就是优化代码,也就是通常所说的把数组大小减一减,代 ...

随机推荐

  1. 27.Java基础_多态

    父类对象引用子类对象: Animal a=new Cat(); 多态中的转型 public class Animal { public void eat(){ System.out.println(& ...

  2. 利用Git生成本机SSH Key并添加到GitHub中

    本地仓库和github之间是通过SSH加密传输的,所以需要先到github中添加你本机的SSH Key 进行认证. 1.在桌面打开git命令窗口 2.输入“ssh-keygen -t rsa -C   ...

  3. cookiecutter

    1.安装cookiecutter pip3 install cookiecutter 2.设置模板 https://github.com/cookiecutter/cookiecutter   搜索需 ...

  4. 剑指Offer-21.栈的压入、弹出序列(C++/Java)

    题目: 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈 ...

  5. HTTP协议第一篇:三握手解读

    TCP(Transmission Control Protocol) 传输控制协议 TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接: 位码即tcp标志位,有6种标 ...

  6. JavaScript对象及初识面向对象

    一.对象 1.1对象是什么 对象是包含相关属性和方法的集合体 1.2什么是面向对象 面向对象仅仅是一个概念或者编程思想 通过一种叫做原型的方式来实现面向对象编程 二.创建对象 2.1自定义对象 2.1 ...

  7. Flink是如何实现exactly-once语义的

    转自:https://blog.csdn.net/xianpanjia4616/article/details/86375224 最少一次:断了之后 重新执行 再去重 严格一次:根据检查点,再执行一次 ...

  8. HTML+CSS基础 并集选择器

    并集选择器.a,.b

  9. 【转】EF架构~为EF DbContext生成的实体添加注释(T5模板应用)

    嗨,没法说,EF4的TT模版加上注释后,升级到EF5的TT模版后,注释就不通用了,所以,还得再研究一下,然后把操作方法再分享出来,没辙的微软! T4模版可能有些凌乱,这在T5模版里有了不错的改进,但我 ...

  10. MySQL5.7安装脚本

    目录结构: install_mysql.sh:安装脚本 my.cnf: MySQL配置文件 mysql--linux-glibc2.-x86_64.tar.gz:MySQL二进制包 以下为目录中的文件 ...