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
    +关注

    关注

    146

    文章

    16016

    浏览量

    343620
  • 寄存器
    +关注

    关注

    30

    文章

    5028

    浏览量

    117720
  • RFC
    RFC
    +关注

    关注

    0

    文章

    16

    浏览量

    10066
  • SDRAM控制器
    +关注

    关注

    0

    文章

    28

    浏览量

    8075

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

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

收藏 人收藏

    评论

    相关推荐

    DDR SDRAMSDRAM功能及结构差异

    在计算机运算速度发展的过程中,需要提高内存的读写速率,只能通过提高时钟频率来提高SDRAM的读写速率。由于温度等因素的影响,SDRAM的内核时钟频率受限,无法进一步提升。
    发表于 04-06 09:26 158次阅读
    DDR <b class='flag-5'>SDRAM</b>和<b class='flag-5'>SDRAM</b>功能及结构差异

    想用STM32F427VGT6 100Pin的MCU外扩SDRAM,要怎么操作?

    新手请教大家,我现在想用STM32F427VGT6 100Pin的MCU 外扩SDRAM,现在发现这个单片机FMC地址线A16-A23,而SDRAM的地址线是A0-A12,这个需要怎么办
    发表于 03-20 07:43

    GD32 MCU如何将烧录口配置为GPIO使用?

    如果大家在进行GD32 MCU开发时发现GPIO引脚使用不足,可以尝试将烧录口配置为GPIO使用,这样就可以多出几个引脚使用,但使用的时候如何配置以及有哪些注意事项,本视频将会为大家进行解答。
    的头像 发表于 02-20 10:18 478次阅读
    GD32 <b class='flag-5'>MCU</b>如何将烧录口<b class='flag-5'>配置</b>为GPIO使用?

    MCU如何配置固定TDC?

    的是 MCU 是否支持 Auto TDC,如果支持,如何对其进行配置。 如果 MCU 不支持自动 TDC,那么如何配置固定 TDC。
    发表于 01-22 07:29

    smt32h750扩展sdram

    STM32H750是STMicroelectronics推出的一款高性能微控制器,其特点之一是可扩展的SDRAM(同步动态随机存储器)接口。本文将详细介绍STM32H750扩展SDRAM的相关知识
    的头像 发表于 01-04 14:09 491次阅读

    浅谈DDR SDRAM的Timing具体时序参数

    通过 SDRAM 的 7 个模式寄存器,可以对 SDRAM 的特性,功能以及设置进行编程。这些寄存器本身通过 MRS 命令编辑。模式寄存器一般在初始化期间进行设定,但也可以在后续正常工作期间进行修改。
    发表于 12-02 13:44 1522次阅读
    浅谈DDR <b class='flag-5'>SDRAM</b>的Timing具体时序<b class='flag-5'>参数</b>

    AT32 MCU DMA通道的灵活配置

    AT32 MCU DMA通道的灵活配置
    的头像 发表于 10-26 17:51 460次阅读
    AT32 <b class='flag-5'>MCU</b> DMA通道的灵活<b class='flag-5'>配置</b>

    AT32 MCU SDRAM应用说明

    AT32 MCU SDRAM Application Note本文主要讲解AT32 SDRAM 控制器的使用。
    发表于 10-25 06:37

    MCU微课堂 | CKS32F4xx系列产品GPIO口配置

    MCU微课堂 | CKS32F4xx系列产品GPIO口配置
    的头像 发表于 10-24 15:14 480次阅读
    <b class='flag-5'>MCU</b>微课堂 | CKS32F4xx系列产品GPIO口<b class='flag-5'>配置</b>

    菱沃铂MCU的时钟配置

    对于单片机来说,时钟是必不可少的模块,如果将MCU比作是人,那时钟就是人的心脏。没有时钟,MCU是动不起来的,所以时钟是非常重要的。时钟单元是MCU工作的基础单元。今天就来分享一下菱沃铂MCU
    发表于 07-18 16:45 419次阅读
    菱沃铂<b class='flag-5'>MCU</b>的时钟<b class='flag-5'>配置</b>

    验证组件配置参数

    一些典型 的 验证组件 配 置参数示例:  一个agent可以被配置为 active 或者 passive 模式。在active模式下agent驱动DUT,在passive模式下agent被动地检查
    的头像 发表于 06-14 10:20 357次阅读
    验证组件<b class='flag-5'>配置</b><b class='flag-5'>参数</b>

    如何使用RT1176为SDRAM配置SEMC的参数

    我正在尝试使用 RT1176 为我的 SDRAM配置 SEMC 的参数。 在各种参数中,EVB 设置值 “ sdramconfig.tPrescalePeriod_Ns ”为“16
    发表于 06-05 10:31

    如何让板卡SDRAM与RT1050EVKB一起工作?

    我的程序超出了内部 RT1050 RAM 的容量,我需要在 EVK 上使用外部 SDRAM。我尝试使用示例 FreeRTOS Hello World 项目作为已知的好项目。我的项目和 Hello
    发表于 05-17 07:20

    如何使用MCU配置工具启用“pwmchannelenable”字段?

    在为 RT1172 更新到 MCU 配置工具 v 13.1 和 SDK 2.13.0 后,我注意到我们的 PWM 不工作。 检查发现,`_pwm_signal_param`结构中增加了
    发表于 05-05 10:19

    i.MXRT1024可以从A0配置8位SDRAM的地址引脚吗?

    在 i.MXRT1024 的评估板中,一个 16 位 SDRAM (IS42S16160J-6TLI) 连接到控制器。其中,地址线配置为 A0 到 A13。 我们正在
    发表于 04-28 08:58