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

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

3天内不再提示

MCU之SDRAM参数配置

0xQC_gh_ed4f95b ? 来源:华芯微特32位MCU ? 2023-04-28 09:30 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本公司目前MCU系列,到目前为止, SWM34x 支持外接8M16M SDRAM,SWD34S系列已经把SDRAM合封入芯片,合封的SDRAM大小根据芯片型号不同,具体见官方手册。

在SDRAM使用过程中,需要对SDRAMC控制的各个参数进行配置,具体参数如下表格,不同系列芯片参数稍微有点区别,但是配置原理一样。下面以SWM34x SDRAM_CTRL控制器外接Winbond W9812G6KH-6为例进行参数配置说明。

表一 MCU端需要配置的参数

参数名字
MCU端需要用到的参数
Bank
RowAddr
ColAddr
CASLatency
RR
RFC
RP
RCD
WR
RAS
RC
RRD
XS
RD_Delay

以SWM34x 为例

分别说明表一中各项参数的计算方法

1、Bank:指的是SDRAM分了几个块,这个在SDRAM芯片手册里面有说明,如W9812G6KH-6文档中列明Bank等于4

如下图

2eaaa4f2-e515-11ed-ab56-dac502259ad0.png

2. RowAddr:SDRAM中每个bank单元每一页的地址,如W9812G6KH-6 一个Bank有4096个页,所以页地址占用12bit,故RowAddr=12。

3.ColAddr:SDRAM中每个Bank单元每一页中每一行的地址,如W9812G6KH-6 一个Bank有4096个页,每页有512行,所以行地址暂用9bit,故ColAddr=9,根据寄存器规范,PageSize需设置为0x001

图下图

2eb1c426-e515-11ed-ab56-dac502259ad0.png

4. RR: SDRAM的REFRESH_RATE,即刷新频率,根据W9812G6KH-6芯片手册,刷新周期为64mS,在150M时钟下,则一个clk=6.67nS, RR的计算公式为64000000(nS)/4096(页数量)/6.67nS(每一个clk的时间)=需要的clk数量。所以RR=0x926.

5. RFC(从刷新或加载模式到刷新或激活的最小CLK周期数): SDRAM的手册有列明参数最小值,以W9812G6KH-6芯片手册为例,RFC最小值为60nS(图3), 在MCU工作在150M时钟下,转换成寄存器值:RFC=60ns/6.67=8,即可得SDRAM需要的最小值8(图4)。

2eb85b10-e515-11ed-ab56-dac502259ad0.png

(图3)

2ec2e5ee-e515-11ed-ab56-dac502259ad0.png

(图4)

6.RP(从预充电到激活或刷新的最小CLK周期数):SDRAM手册会有写明,如W9812G6KH-6芯片RP=15nS,MCU端计算RP方法为RP=15nS/6.67=2.

7. RCD(从激活到读取或写入的最小CLK周期数):SDRAM手册会有写明,如W9812G6KH-6芯片RCD=15nS, MCU端计算RCD方法为RCD=15nS/6.67=2.

8.WR(从上次写入传输到预充电的最小CLK周期数): 固定为2.

9.RAS(从激活到预充电的最小CLK周期数): SDRAM手册会有写明,如W9812G6KH-6芯片RCD=42nS, MCU端计算RAS方法为RAS=42nS/6.67=6.

10.RC(从激活到激活的最小CLK周期数): SDRAM手册会有写明,如W9812G6KH-6芯片RC=60nS, MCU端计算RC方法为RC=60nS/6.67=8. 如下图

2ecd4296-e515-11ed-ab56-dac502259ad0.png

11.RRD(对于不同的bank,从激活到激活的最小CLK周期数):SDRAM手册会有写明,如W9812G6KH-6芯片RRD=12nS, MCU端计算RRD方法为RRD=12nS/6.67=1.

12.XS(从自刷新退出到发出任何命令的最小CLK周期数减1): SDRAM手册会有写明,如W9812G6KH-6芯片RRD=72nS, MCU端计算XS方法为XS=72nS/6.67=10.

13.CASLatency:等于3或者2.

14.RD_Delay: 等于CASLatency、或等于CASLatency+1.

实际应用

如果SWM34x 系统频率为150M,则SDRAM控制器读写W9812G6KH-6(16M SDRAM),各项参数配置如下:

SDRAM_InitStruct.ClkDiv = SDRAM_CLKDIV_1;

SDRAM_InitStruct.NbrBank = 2;//SDRAM_BANK_4

SDRAM_InitStruct.NbrRowAddr = 12;//SDRAM_ROW_12

SDRAM_InitStruct.NbrColAddr = 1;//SDRAM_COLUMN_9

SDRAM_InitStruct.CASLatency =3;//SDRAM_CASLATENCY_3

SDRAM_InitStruct.TimeTRC =8 ;

SDRAM_InitStruct.TimeTRRD = 1;

SDRAM_InitStruct.TimeTRCD = 2;

SDRAM_InitStruct.TimeTRAS = 6;

SDRAM_InitStruct.TimeTRP = 2;

SDRAM_InitStruct.TimeRFC =8;

SDRAM_InitStruct.TimeTXS=10;

SDRAMC->T64 = 0x926;

SDRAMC->RDDELAY = SDRAM_InitStruct.CASLatency+1;

(以上只介绍了配置方法,部分参数并没有完全配对,需要修改验证)






审核编辑:刘清

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

    关注

    147

    文章

    18108

    浏览量

    371657
  • 寄存器
    +关注

    关注

    31

    文章

    5451

    浏览量

    125565
  • RFC
    RFC
    +关注

    关注

    0

    文章

    16

    浏览量

    10233
  • SDRAM控制器
    +关注

    关注

    0

    文章

    29

    浏览量

    8414

原文标题:华芯微特 | MCU之SDRAM参数配置

文章出处:【微信号:gh_ed4f95bde4df,微信公众号:华芯微特32位MCU】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    MCU外设初始化:为什么参数配置必须优先于使能

    在微控制器领域,初始化参数配置阶段至关重要。此时,虽无电源驱动,但微控制器在使能信号到来前,借初始化参数配置这一精细步骤,开启关键准备进程。初始化
    的头像 发表于 08-13 10:38 ?154次阅读

    如何在APM32E1上高效管理2MB SDRAM

    一般我们开发MCU自带的SRAM,对一般应用来说,已经够用了,但是对于内存需求较高的场合,比如跑GUI或者算法等,自带的内存会就不够用,这个时候就要外扩SRAM或SDRAM
    的头像 发表于 07-15 09:33 ?1442次阅读
    如何在APM32E1上高效管理2MB <b class='flag-5'>SDRAM</b>

    飞凌嵌入式ElfBoard ELF 1板卡-文件系统配置网络参数

    我们可以在系统启动之后,通过ifconfig命令配置网络参数。root@ELF1:~# ifconfig eth0 192.168.0.232root@ELF1:~# ifconfig eth0
    发表于 07-01 17:49

    #工作原理大揭秘 #单片机 #电路原理 #MCU#mcu程序开发

    mcu
    宇凡微电子
    发布于 :2025年06月19日 19:02:28

    如何配置和验证Linux内核参数

    在Linux系统运维和性能优化中,内核参数(sysctl)的配置至关重要。合理的参数调整可以显著提升网络性能、系统稳定性及资源利用率。然而,仅仅修改参数是不够的,如何验证这些
    的头像 发表于 05-29 17:40 ?417次阅读

    DDR3 SDRAM配置教程

    DDR3 SDRAM(Double-Data-Rate ThreeSynchronous Dynamic Random Access Memory)是DDR SDRAM的第三代产品,相较于DDR2,DDR3有更高的运行性能与更低的电压。
    的头像 发表于 04-10 09:42 ?3228次阅读
    DDR3 <b class='flag-5'>SDRAM</b><b class='flag-5'>配置</b>教程

    rt1052 sdram从32mb更换到8mb不能使用问题

    使用的sdram型号是IS42S16160 32mb的是正常的但是更改到IS4216400 8mb的sdram后不能使用,请问1052支持吗?需要修改哪些配置,请大神讲解一下
    发表于 04-08 19:40

    SDRAM控制器的设计——Sdram_Control.v代码解析(异步FIFO读写模块、读写SDRAM过程)

    前言 SDRAM控制器里面包含5个主要的模块,分别是PLL模块,异步FIFO 写模块,异步FIFO读模块,SDRAM接口控制模块,SDRAM指令执行模块。 其中异步FIFO模块解读
    的头像 发表于 03-04 10:49 ?1675次阅读
    <b class='flag-5'>SDRAM</b>控制器的设计——<b class='flag-5'>Sdram</b>_Control.v代码解析(异步FIFO读写模块、读写<b class='flag-5'>SDRAM</b>过程)

    SDRAM控制器设计异步FIFO的调用

    为了加深读者对 FPGA 端控制架构的印象,在数据读取的控制部分,首先我们可以将SDRAM 想作是一个自来水厂,清水得先送至用户楼上的水塔中存放,在家里转开水龙头要用水时,才能及时供应,相同
    的头像 发表于 02-26 15:27 ?1392次阅读
    <b class='flag-5'>SDRAM</b>控制器设计<b class='flag-5'>之</b>异步FIFO的调用

    SDRAM控制器设计command.v代码解析

    command.v文件对应图中SDRAM指令执行模块,它会从SDRAM接口控制模块接收指令,然后产生控制信号直接输出到SDRAM器件来完成所接收指令的动作。
    的头像 发表于 02-25 10:32 ?592次阅读
    <b class='flag-5'>SDRAM</b>控制器设计<b class='flag-5'>之</b>command.v代码解析

    驱动板的参数配置需要考虑哪些因素

    驱动板的参数配置是一个复杂且关键的过程,涉及多个方面。以下是一些主要的参数配置步骤和考虑因素。
    的头像 发表于 02-14 14:53 ?656次阅读

    关于hpm6364的femc同时使用外接sdram和sram的问题

    femc连接32Mb的sdram,同时连接fpga,用sram方式与fpga通信。 配置上IO口都配置了IOC_PAD_FUNC_CTL_ALT_SELECT_SET(12);当作femc接口
    发表于 11-20 14:45

    如何在PURE PATH里得到相应的PCM512X不同参数配置代码?

    如何在PURE PATH里得到相应的PCM512X 不同参数配置代码?采样率不能选,只有44.1K和48K吗? 我打算使用MCU配置PCM512X ,但不知道如何能得到PCM512
    发表于 10-28 06:05

    屏驱可触摸TFT-LCD mcu(专用开发板方案)

    屏驱MCU概述 华芯微特屏驱MCU支持多种尺寸和分辨率的TFT-LCD, 最高分辨率:1024*1024,该系列MCU主要参数概述如下: 内核:Cortex ^?^ -M0,Corte
    发表于 09-27 09:53