0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

STM32上的SDRAM硬件电路设计

冬至子 来源:ecircuitlab 作者:ecircuitlab 2023-09-27 15:02 次阅读

SDRAM简介

SDRAM(synchronous dynamic random-access memory)即同步动态随机存取内存。在介绍SDRAM前,我们先了解下DRAM(Dynamic random-access memory),DRAR中文译为动态随机存取内存,也叫动态随机存取器,为什么叫动态随机存取器,原因是它的实现原理跟静态存储器SRAM不一样,DRAM是在芯片里集成很多个阵列的电容,DRAM存储二进制数据0和1就是通过给这些阵充放电荷实现。一个简单的单个DRAM存储单元示例图如下图所示。

图片

单个DRAM单元实现电容充放电原理

电容C用来存储电荷,信号WRITE 1、WRITE 0控制开关晶体管Q1和Q2给电容充电和放电,实现二进制1和0存储。信号READ控制开关晶体管打开把电容C接到数据线DATA上,芯片内部处理电路通过读取DATA线上的电压信号来判断DRAM存储单元存储的数据为二进制1还是0。

从原理上去看DRAM实现数据存取很完美,但实际芯片按照上面的原理做好电路后,开关晶体管和电容本身都会有漏电流。漏电流会导致一个特别糟糕的情况,电容存储的电荷会慢慢通过漏电流方式流失掉,当电荷流失到一定的量后,内部电路读取电容的电压去判断数据时,就不能正确判断为二进制1了,这种情况下数据是错误。

这样的错误肯定是不允许发生的,解决办法是通过定时刷新方式给电容充电,保证电容存储的电荷量稳定在理想的状态。因为这样的过程是一个一直的动态过程,动态随机存取器的名称由此而来。而SDRAM是DRAM的一种操作方式,如下图所示,SDRAM读写数据时,是通过在时钟的上升沿同步获取控制、数据信号,所以叫做同步动态随机存取器。

图片

SDRAM在时钟CLK上升沿时同步获取控制、数据信号

DRAM和SRAM优缺点:

  1. SRAM读写速度快,DRAM读写速度慢。
  2. SRAM耗电量低,DRAM耗电量大。
  3. SRAM制造成本高,容量低,DRAM制造成本低,容量大。

SDRAM接口信号

SDRAM主要信号如下(256Mb容量示例):

A0-A11: 地址信号。

BA0-BA1: Bank选择信号。

DQM0-DQM3: 读写数据掩码控制信号。

DQ0-DQ31: 数据信号。

CKE: 时钟使能信号。

CLK: 时钟信号。

CS: 片选信号。

CAS: 列地址选通控制信号。

RAS: 行地址选通控制信号。

WE: 写使能信号。

在上述罗列的信号中,A0-A11、BA0-BA1、CKE、CS、CAS、RAS、WE的不同组合,可以构成不同的Command如下图所示。

图片

DRAM Commad真值表

从上图可以看到,DQ0-DQ31和DQM0-DQM3不参与组合成Command。这里说明下,DQMx是读写数据掩码信号,用于控制数据读写使能对应Byte的。它们的控制关系是DQM0控制DQ0-DQ7,DQM1控制DQ8-DQ15,以此类推。知道数据信号DQ0-DQ31不参与组合成Command后,在硬件设计的Layout阶段时,有时数据线不好走线,可以通过调换组内数据线来解决数据线Layout难度大问题。

注意这里说的组内调换是单个Byte内的信号,DQ0-DQ7为一组,DQ8-DQ15为一组,以此类推,不能跨组调换,跨组调换读写数据就错误了。

这里介绍的组内数据线调换不影响数据的正确性,可能会有很多人困惑,我做了个图如下说明解释。如下图中,左侧为主控信号,右侧为DRAM。主控要写数据0x0F到DRAM中,因为数据线在DRAM端被调换了,所以实际到DRAM内的数据变为0x1D。这样看像是数据错了,但我们再看主控从DRAM读数据的情况,主控读数据时,DRAM内的0x1D顺着信号线原路返回,变成了0x0F,错错得正。

所以DRAM信号线组内调线序不影响数据读写错误,但不能跨组调,不能跨组调的原因是即使有错错得正的逻辑,但是如果DQM信号没有使能对应的Byte,那就会导致数据缺失,所以必然出错。

图片

在DRAM端做数据组内调换,不影响主控读写数据的正确性

当然,组内数据可调的这个思路,放在DDR3、DDR4等都可以的,但还是要先看DRAM规格书,确定数据线不参与任何Command组合,如果参与了就不能调,比如有的厂家的LPDDR就用了数据线来做Command。

STM32上的SDRAM电路设计

参考ST评估板MB1219的SDRAM部分电路如下,STM32使用SDRAM的目的是扩充芯片内存,由FMC接口控制,电路没什么复杂的,设计时注意了解各个信号的作用,然后参考规格书把信号一一对应连接上即可。

评估板MB1219使用的主控是STM32F769NI,参考STM32F7xx规格书第86页的Table 12. FMC pin definition的SDRAM栏,有详细的信号定义。下图中的BA0和BA1接的信号为A14和A15,这里没有错,是ST工程师在设计评估板时,FMC总线上还挂了SRAM和Nor Flash,而A14和A15是SRAM和Nor Flash的,但对应SDRAM实际为BA0和BA1。

图片

SDRAM参考设计电路

完成原理图设计,后面剩下的是大家比较关心的Layout要不要做信号线等长的问题,这个问题在网上一直是很多人热衷讨论的一个问题,各有说法。其实对于SDRAM,只要走线不会长度差得特别离谱,比如差不多十几个厘米这样的,不等长影响不会很大,但如果PCB空间资源足够的话建议按照500mil的规则做等长。如下图ST的评估板MB1219就做了等长。

图片

条件允许,推荐SDRAM做500mil约束等长

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • STM32
    +关注

    关注

    2265

    文章

    10870

    浏览量

    354694
  • PCB设计
    +关注

    关注

    394

    文章

    4670

    浏览量

    85252
  • 静态存储器
    +关注

    关注

    0

    文章

    10

    浏览量

    7520
  • SDRAM控制器
    +关注

    关注

    0

    文章

    28

    浏览量

    8131
  • 电容充放电
    +关注

    关注

    0

    文章

    94

    浏览量

    5828
收藏 人收藏

    评论

    相关推荐

    SDRAM连接电路设计详解

    介绍SDRAM电路设计之前先了解下SDRAM的寻址原理。SDRAM内部是一个存储阵列,可以把它想象成一个表格,和表格的检索原理一样,先指定行,再指定列,就可以准确找到所需要的存储单元。
    发表于 01-26 09:49 4884次阅读
    <b class='flag-5'>SDRAM</b>连接<b class='flag-5'>电路设计</b>详解

    怎么成为硬件电路设计高手?

    ▼关注公众号: 工程师看海▼   在现代科技快速发展的时代,电子设备无处不在,而硬件电路设计是实现这些设备功能的基础。无论是智能手机、电脑、家用电器,还是工业控制系统,都需要经过精密的电路设计来实现
    的头像 发表于 07-28 13:10 4998次阅读
    怎么成为<b class='flag-5'>硬件</b><b class='flag-5'>电路设计</b>高手?

    硬件电路设计之DDR电路设计(1)

    电路设计中常见的DDR属于SDRAM,中文名称是同步动态随机存储器。
    的头像 发表于 11-24 17:28 4501次阅读
    <b class='flag-5'>硬件</b><b class='flag-5'>电路设计</b>之DDR<b class='flag-5'>电路设计</b>(1)

    硬件电路设计STM32最小系统电路设计

    今天主要来谈谈MCU的设计,我使用过的MCU的型号包括意法半导体的STM32、华大GD32、Infineon的CY8C5868LTI-LP039以及MicroChip的ATSAME70,今天的主角是意法半导体的STM32最小系统设计,其它MCU
    发表于 12-01 17:31 8119次阅读
    <b class='flag-5'>硬件</b><b class='flag-5'>电路设计</b>之<b class='flag-5'>STM32</b>最小系统<b class='flag-5'>电路设计</b>

    STM32F103在电路怎样做配套的电路设计呢?

    新手求助: 小弟正在用STM32F103做一个开发,现在正在做硬件部分的电路设计,想求助一下大婶们如果程序用JLink来下载的话,在电路
    发表于 05-11 08:14

    硬件电路设计流程系列

    一、硬件电路设计流程系列--硬件电路设计规范 二、硬件电路设计流程系列--方案设计(1) :主芯
    发表于 10-17 17:16

    高速SDRAM存储器接口电路设计

    高速SDRAM存储器接口电路设计SDRAM可作为软嵌入式系统的(NIOSII)的程序运行空间,或者作为大量数据的缓冲区。SDRAM是通用的存储设备,只要容量和数据位宽相同,不同公司生产
    发表于 06-03 05:00

    高速SDRAM存储器接口电路设计(Altera FPGA开发板)

    高速SDRAM存储器接口电路设计(Altera FPGA开发板)如下图所示:
    发表于 08-15 14:33 3450次阅读
    高速<b class='flag-5'>SDRAM</b>存储器接口<b class='flag-5'>电路设计</b>(Altera FPGA开发板)

    硬件电路设计与实践

    硬件电路设计与实践,非常实用的教材 有需要的朋友下来看看
    发表于 12-08 14:48 0次下载

    硬件电路设计具体详解

    硬件电路设计具体详解。
    发表于 04-05 11:51 76次下载

    基于STM32的智能循迹往返小车电路设计

    基于STM32的智能循迹往返小车电路设计
    发表于 04-10 09:30 62次下载

    关于SDRAM电路的设计

    介绍SDRAM电路设计之前先了解下SDRAM的寻址原理。SDRAM内部是一个存储阵列,可以把它想象成一个表格,和表格的检索原理一样,先指定行,再指定列,就可以准确找到所需要的存储单元,
    的头像 发表于 06-11 17:11 3848次阅读
    关于<b class='flag-5'>SDRAM</b><b class='flag-5'>电路</b>的设计

    STM32CubeMX | 31-使用硬件FMC读写SDRAM(W9825G6KH)

    本篇详细的记录了如何使用STM32CubeMX配置 STM32F767IGT6 的硬件FMC外设与 SDRAM 通信(W9825G6KH)。1. 准备工作
    发表于 12-08 13:21 24次下载
    <b class='flag-5'>STM32</b>CubeMX | 31-使用<b class='flag-5'>硬件</b>FMC读写<b class='flag-5'>SDRAM</b>(W9825G6KH)

    stm32复位电路设计

    stm32复位电路设计
    发表于 06-26 09:26 8次下载

    基于STM32的心电采集仪电路设计

    电子发烧友网站提供《基于STM32的心电采集仪电路设计.pdf》资料免费下载
    发表于 10-11 10:33 8次下载
    基于<b class='flag-5'>STM32</b>的心电采集仪<b class='flag-5'>电路设计</b>