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

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

3天内不再提示

AT32 MCU SDRAM控制器的使用

0739hhbb 来源:AT32 MCU 雅特力科技 作者:AT32 MCU 雅特力科技 2022-12-19 15:07 次阅读

SDRAM介绍

同步动态随机存储器(SDRAM)特点:

同步:memory工作时需要同步时钟

动态:存储阵列需要不断刷新

随机:自由指定地址读写数据

容量大价格便宜

SDRAM存储结构

SDRAM支持多BANK,通过指定BANK号,行地址,列地址找到目标存储单元。

图1 存储结构

0a0f2246-7d26-11ed-8abf-dac502259ad0.png    

SDRAM信号线

0a347910-7d26-11ed-8abf-dac502259ad0.png

SDRAM内部框图

如下以W9825G6KH内部框图举例:

图2 W9825G6KH框图

0a61b498-7d26-11ed-8abf-dac502259ad0.png

1时钟控制

2命令控制

3地址控制

4存储阵列,4个BANK

5数据

SDRAM常用命令表

SDRAM通过信号线上的不同状态来产生各种命令。

表1 SDRAM命令表

0af65a62-7d26-11ed-8abf-dac502259ad0.png  

注意:L=Low Level H=High Level X=don't Care A10=H表示Precharge all bank,A10=L表示Precharge选择的BANK

No-Operation 表示选中当前设备,当前没有操作。

Bank/Row active 在对SDRAM进行读写时,需要先激活对应的bank和行,该命令用于选择一个bank的一行进行激活,以便接下来进行读写访问。

Read 激活的行有效之后,对列地址进行寻址,读出数据。

Write 激活的行有效之后,对列地址进行寻址,写入数据。

Precharge 预充电命令,在某一行上的读写完成之后,关闭现有的行,准备激活新行。

Refresh 刷新命令,SDRAM需要不断的刷新操作才能保存数据,根据SDRAM设备参数按照固定周期进行刷新。

Load Mode Register 加载模式寄存器,修改SDRAM设备的功能参数,burst模式,latency等。

图3 mode register

0b1abce0-7d26-11ed-8abf-dac502259ad0.png    

SDRAM Power On Sequence

图4 SDRAM Power On

0b6149da-7d26-11ed-8abf-dac502259ad0.png

AT32 SDRAM控制器

SDRAM控制器主要特点如下:

同时支持两个SDRAM设备

支持8位/16位数据总线宽度

支持13位行地址,11位列地址(最大可以支持4x16Mx16bit=128MB)

支持4个内部Bank

支持word/half word/byte访问

支持Burst Read,有6x32bit读FIFO缓存

SDRAM时钟支持HCLK/2, HCLK/3, HCLK/4

支持低功耗模式(自刷新模式,掉电模式)

地址映射

图5 SDRAM地址映射

0b8f8b4c-7d26-11ed-8abf-dac502259ad0.png  

SDRAM Device1起始地址:0xC0000000 SDRAM Device2起始地址:0xD0000000

I/O引脚配置

表2 SDRAM IO引脚列表

0bacc7d4-7d26-11ed-8abf-dac502259ad0.png

使用SDRAM IO引脚初始化如下,可根据具体使用引脚进行修改:

0bdaeef2-7d26-11ed-8abf-dac502259ad0.png

SDRAM读写时序

写SDRAM时序

0c71e85c-7d26-11ed-8abf-dac502259ad0.png

读SDRAM时序

0ca6b438-7d26-11ed-8abf-dac502259ad0.png    

SDRAM配置

通过配置寄存器SDRAM_CTRLx来设置SDRAM设备的容量,访问方式等,详细信息可参考RM。此寄存器包括如下配置:(W9825G6KH作为示例)

行地址/列地址配置

0cdda29a-7d26-11ed-8abf-dac502259ad0.png  

行地址和列地址根据SDRAM设备地址位数进行配置,如下示例:

0d021c6a-7d26-11ed-8abf-dac502259ad0.png

数据总线宽度

0d2c2190-7d26-11ed-8abf-dac502259ad0.png  

根据SDRAM设备支持数据总线宽度进行配置,如下示例支持16bit数据宽度:
0d497fce-7d26-11ed-8abf-dac502259ad0.png

内部区块个数

0d5e34d2-7d26-11ed-8abf-dac502259ad0.png  

SDRAM设备支持内部bank个数:

0d7e7058-7d26-11ed-8abf-dac502259ad0.png

列地址选通延迟(CAS)

0da4cbe0-7d26-11ed-8abf-dac502259ad0.png  

SDRAM设备支持延迟:

0dc919c8-7d26-11ed-8abf-dac502259ad0.png

写保护配置(WRP)

如果配置了写保护,在写SDRAM设备时会参数Bus error。

XMC_SDCLK时钟分频(CLKDIV)

BSTR(连续读)

RD(读延时)

配置代码例程:

0df3afe4-7d26-11ed-8abf-dac502259ad0.png    

SDRAM时序参数配置

要正常使用SDRAM设备,需要正确配置此部分的实现参数,此参数可在SDRAM设备的datasheet中找到对应值。

配置寄存器SDRAM_TMx:

TMRD(加载模式寄存器到激活延迟)

TXSR(退出自刷新延迟)

TRAS(自刷新周期)

TRC(刷新命令到激活命令延迟)

TWR(写命令到预充电命令延迟)

TRP(预充电到激活命令延迟)

TRCD(行激活到列延迟)

例TRCD:最小18ns,SDRAM时钟144MHz,一个SDRAM时钟大约为7ns,因此TRCD至少要配置为延迟3个SDRAM时钟周期。 例TWR:SDRAM设备要求2个SDRAM时钟,因此配置为2

SDRAM设备对时序要求:(W9825G6KH作为示例)

0e21ab6a-7d26-11ed-8abf-dac502259ad0.png

配置代码例程:

0e5ab342-7d26-11ed-8abf-dac502259ad0.png    

SDRAM启动序列配置

Clock enable时钟使能

0e7d6644-7d26-11ed-8abf-dac502259ad0.png

预充电

0f14ac98-7d26-11ed-8abf-dac502259ad0.png

设置刷新计数器

0f374afa-7d26-11ed-8abf-dac502259ad0.png

计算方法:counter=(SDRAM resfresh period / number of rows)-20;

刷新速率=64ms/8K=7.8125us; counter=7.8125us*144MHz–20=1105;

0f5b0b8e-7d26-11ed-8abf-dac502259ad0.png

自动刷新

0f83707e-7d26-11ed-8abf-dac502259ad0.png

加载模式寄存器

0f9cf7b0-7d26-11ed-8abf-dac502259ad0.png

SDRAM例程

SDRAM Basic 此例程配置SDRAM设备之后,对SDRAM设备进行读写操作,并判断读写数据是否正确,包括如下步骤:

GPIO初始化

SDRAM配置

0fb5b944-7d26-11ed-8abf-dac502259ad0.png

SDRAM启动序列

0fea6522-7d26-11ed-8abf-dac502259ad0.png

SDRAM读写访问

1022e762-7d26-11ed-8abf-dac502259ad0.png  

SDRAM DMA

此例程配置SDRAM设备之后,使用对SDRAM设备进行读写操作,并判断读写数据是否正确,包括如下步骤:

GPIO初始化(同SDRAM Basic)

SDRAM配置(同SDRAM Basic)

SDRAM启动序列(同SDRAM Basic)

SDRAN DMA读写

1047fe44-7d26-11ed-8abf-dac502259ad0.png      


审核编辑:汤梓红

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

    关注

    146

    文章

    16017

    浏览量

    343631
  • 控制器
    +关注

    关注

    112

    文章

    15223

    浏览量

    171192
  • SDRAM
    +关注

    关注

    7

    文章

    409

    浏览量

    54729
  • 存储器
    +关注

    关注

    38

    文章

    7148

    浏览量

    161992
  • AT32
    +关注

    关注

    1

    文章

    97

    浏览量

    1827

原文标题:AT32讲堂039 | AT32 MCU SDRAM控制器的使用

文章出处:【微信号:AT32 MCU 雅特力科技,微信公众号:AT32 MCU 雅特力科技】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    MCU的嵌入式系统设计,如何运行SDRAM

    时,开发者通常考虑使用 SDRAM。别问我为什么你的 MCU 不支持 SDRAMSDRAM 是同步动态随机存取存储的缩写。在微
    发表于 11-04 08:03

    Gowin SDRAM控制器的参考设计

    本次发布三例 SDRAM 控制器参考设计及 IP Core Generator 支持调用SDRAM 控制器 IP。 1. 32-bit SDRAM
    发表于 10-08 07:59

    识别AT32 MCU的应用笔记

    本应用笔记介绍了在AT32控制器上如何实现当前使用内核版本、MCU厂商及型号的识别
    发表于 10-24 06:37

    AT32控制器上创建Multi MCU IAP应用程序的方法

    对于大多数基于闪存的系统,一项重要要求是能够在最终产品中安装固件时进行更新。此功能称为应用程序内编程(IAP)。本应用笔记的目的是提供在AT32控制器上创建Multi MCU IAP应用程序的方法
    发表于 10-24 06:48

    AT32控制器硬件设计指南及抗EMC设计要点

    本应用笔记为使用AT32系列微控制器芯片的硬件设计人员提供参考设计,包括供电电源要求、时钟管理、复位管理、调试接口的管理。它说明了使用AT32系列微控制器芯片所需的最低硬件资源。文中介
    发表于 10-25 07:54

    AT32控制器上移植ThreadX操作系统

    AT32控制器上移植ThreadX操作系统主要演示ThreadX操作系统移植到AT32 MCU的过程和方法。
    发表于 10-25 06:46

    AT32 MCU SDRAM应用说明

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

    使用Verilog实现基于FPGA的SDRAM控制器

    摘 要:介绍了SDRAM的特点和工作原理,提出了一种基于FPGA的SDRAM控制器的设计方法,使用该方法实现的控制器可非常方便地对SDRAM
    发表于 06-20 13:04 2088次阅读

    基于VHDL的SDRAM控制器的实现

    基于VHDL的SDRAM控制器的实现
    发表于 01-22 13:43 12次下载

    FPGA读写SDRAM的实例和SDRAM的相关文章及一些SDRAM控制器设计论文

    本文档的主要内容详细介绍的是FPGA读写SDRAM的实例和SDRAM的相关文章及一些SDRAM控制器设计论文主要包括了:FPGA读写SDRAM
    发表于 12-25 08:00 56次下载
    FPGA读写<b class='flag-5'>SDRAM</b>的实例和<b class='flag-5'>SDRAM</b>的相关文章及一些<b class='flag-5'>SDRAM</b><b class='flag-5'>控制器</b>设计论文

    基于SDRAM控制器软核的Verilog设计

    SDRAM控制逻辑复杂,使用很不方便。 为了解决这个矛盾,需要设计专用的SDRAM控制器,使系统用户象使用SRAM一样方便的使用SDRAM
    的头像 发表于 06-30 09:16 2375次阅读
    基于<b class='flag-5'>SDRAM</b><b class='flag-5'>控制器</b>软核的Verilog设计

    雅特力携高性能AT32 MCU精彩亮相全球MCU生态发展大会

    8月26日,由Aspencore主办的全球MCU生态发展大会在深圳圣淘沙酒店圆满落幕,本次会议以“把握「芯」基建,共绘MCU生态”为主题,汇聚了众多微控制器领域的技术和应用专家,共同探讨最新处理器
    的头像 发表于 08-30 10:04 4269次阅读
    雅特力携高性能<b class='flag-5'>AT32</b> <b class='flag-5'>MCU</b>精彩亮相全球<b class='flag-5'>MCU</b>生态发展大会

    MCU如何在扩展的SDRAM上运行程序?

    的缩写。在微控制器应用中,微控制器通过使用外部存储控制器(EMC)操作访问SDRAMSDRAM时钟频率通常为100MHz或133MHz。
    发表于 10-26 19:20 12次下载
    <b class='flag-5'>MCU</b>如何在扩展的<b class='flag-5'>SDRAM</b>上运行程序?

    AT32讲堂039 | AT32 MCU SDRAM控制器的使用

    SDRAM介绍同步动态随机存储器(SDRAM)特点:同步:memory工作时需要同步时钟动态:存储阵列需要不断刷新随机:自由指定地址读写数据容量大价格便宜SDRAM存储结构SDRAM
    的头像 发表于 12-19 11:46 814次阅读
    <b class='flag-5'>AT32</b>讲堂039 | <b class='flag-5'>AT32</b> <b class='flag-5'>MCU</b> <b class='flag-5'>SDRAM</b><b class='flag-5'>控制器</b>的使用

    如何使用AT32 MCU WDT和WWDT?

    如何使用AT32 MCU WDT和WWDT?
    的头像 发表于 11-10 18:26 540次阅读
    如何使用<b class='flag-5'>AT32</b> <b class='flag-5'>MCU</b> WDT和WWDT?