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

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

3天内不再提示

RA6快速设计指南 [11] 存储器 (3)

瑞萨嵌入式小百科 来源:未知 2023-06-28 12:10 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

02b53b9e-1569-11ee-962d-dac502259ad0.gif

8

存储器

8.5 外部存储器

RA6 MCU包含用于连接到外部存储器和器件的外部数据总线。某些产品还包括一个内置的SDRAM控制器,可通过该控制器使用最高达128MB的外部SDRAM。八个可编程片选提供了许多选项,可以在每个片选上设置这些选项,以允许连接到各种外部器件。存储器映射的外部片选区域地址从0x60000000开始。有关更多详细信息,请参见《硬件用户手册》。

8.5.1 使用外部16位存储器器件

连接具有字节选择线的外部16位存储器器件时,将MCU的A1连接到存储器的A0,将MCU的A0连接到字节选择线。

8.5.2 SDRAM初始化示例

Renesas FSP提供了采用CMSIS数据结构的C语言头文件,此文件映射了所有外部总线控制寄存器。以下函数是在Renesas FSP中使用CMSIS寄存器结构初始化SDRAM存储器控制器的示例。

左右滑动查看更多

void bsp_sdram_init (void)
{
  /** Delay at least 100uS after SDCLK active */ 
  R_BSP_SoftwareDelay(100U, BSP_DELAY_UNITS_MICROSECONDS);


  /** Setting for SDRAM initialization sequence */
#if (BSP_PRV_SDRAM_TRP < 3)
  R_BUS->SDRAM.SDIR_b.PRC = 3U;
#else
  R_BUS->SDRAM.SSDIR_b.PRC = BSP_PRV_SDRAM_TRP - 3U;
#endif


  while(R_BUS->SDRAM.SDSR)
  {
    /* According to h/w maual, need to confirm that all the status bits in SDSR are 0 before SDIR modification. */
  }


  R_BUS->SDRAM.SDIR_b.ARFC = BSP_PRV_SDRAM_SDIR_REF_TIMES; 


  while(R_BUS->SDRAM.SDSR)
  {
    /* According to h/w maual, need to confirm that all the status bits in SDSR are 0 before SDIR modification. */
  }


#if (BSP_PRV_SDRAM_TRFC < 3)
  R_BUS->SDRAM.SDIR_b.ARFI = 0U;
#else
  R_BUS->SDRAM.SDIR_b.ARFI = BSP_PRV_SDRAM_TRFC - 3U;
#endif


  while(R_BUS->SDRAM.SDSR)
  {
    /* According to h/w maual, need to confirm that all the status bits in SDSR are 0 before SDICR modification. */
  }


  /** Start SDRAM initialization sequence.
   * Following operation is automatically done when set SDICR.INIRQ bit.
   * Perform a PRECHARGE ALL command and wait at least tRP time.
   * Issue an AUTO REFRESH command and wait at least tRFC time.
   * Issue an AUTO REFRESH command and wait at least tRFC time.
   */
  R_BUS->SDRAM.SDICR_b.INIRQ = 1U; 
  while(R_BUS->SDRAM.SDSR_b.INIST)
  {
    /* Wait the end of initialization sequence. */
  }


  /** Setting for SDRAM controller */
  R_BUS->SDRAM.SDCCR_b.BSIZE = BSP_PRV_SDRAM_BUS_WIDTH;       /* set SDRAM bus width */
  R_BUS->SDRAM.SDAMOD_b.BE = BSP_PRV_SDRAM_CONTINUOUS_ACCESSMODE;  /* enable continuous access */
  R_BUS->SDRAM.SDCMOD_b.EMODE = BSP_PRV_SDRAM_ENDIAN_MODE;     /* set endian mode for SDRAM address space */


  while(R_BUS->SDRAM.SDSR)
  {
    /* According to h/w maual, need to confirm that all the status bits in SDSR are 0 before SDMOD modification. */
  }
  
  /** Using LMR command, program the mode register */
  R_BUS->SDRAM.SDMOD = ((((uint16_t)(BSP_PRV_SDRAM_MR_WB_SINGLE_LOC_ACC  << 9)
      |(uint16_t)(BSP_PRV_SDRAM_MR_OP_MODE     << 7))
      |(uint16_t)(BSP_PRV_SDRAM_CL         << 4))
      |(uint16_t)(BSP_PRV_SDRAM_MR_BT_SEQUENCTIAL << 3))
      |(uint16_t)(BSP_PRV_SDRAM_MR_BURST_LENGTH  << 0);


  /** wait at least tMRD time */ 
  while(R_BUS-
  >SDRAM.SDSR_b.MRSST)
  {
    /* Wait until Mode Register setting done. */
  }


  /** Set timing parameters for SDRAM */
  R_BUS->SDRAM.SDTR_b.RAS = BSP_PRV_SDRAM_TRAS - 1U;  /* set ACTIVE-to-PRECHARGE command cycles*/
  R_BUS->SDRAM.SDTR_b.RCD = BSP_PRV_SDRAM_TRCD - 1U;  /* set ACTIVEto READ/WRITE delay cycles */
  R_BUS->SDRAM.SDTR_b.RP = BSP_PRV_SDRAM_TRP - 1U;  /* set PRECHARGE command period cycles */
  R_BUS->SDRAM.SDTR_b.WR = BSP_PRV_SDRAM_TWR - 1U;  /* set write recovery cycles */
  R_BUS->SDRAM.SDTR_b.CL = BSP_PRV_SDRAM_CL;     /* set SDRAM column latency cycles */


  /** Set row address offset for target SDRAM */
  R_BUS->SDRAM.SDADR_b.MXC = BSP_PRV_SDRAM_SDADR_ROW_ADDR_OFFSET - 8U;


  R_BUS->SDRAM.SDRFCR_b.REFW = (uint16_t)(BSP_PRV_SDRAM_TRFC - 1U);  /* set Auto-Refresh issuing cycle */
  R_BUS->SDRAM.SDRFCR_b.RFC = BSP_PRV_SDRAM_REF_CMD_INTERVAL - 1U;  /* set Auto-Refresh period */


  /** Start Auto-refresh */
  R_BUS->SDRAM.SDRFEN_b.RFEN = 1U;


  /** Enable SDRAM access */
  R_BUS->SDRAM.SDCCR_b.EXENB = 1U;
}

8.6 数据对齐

没有对齐数据方面的限制。MCU能够对奇数存储地址执行字节、字和长整型访问。虽然对齐数据访问仍然是最佳选择,但并不是必须的。

8.7 字节顺序限制

存储器空间必须采用小尾数法才能在Cortex-M内核上执行代码。

下一章:寄存器写保护


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

    关注

    147

    文章

    18618

    浏览量

    387354
  • 瑞萨
    +关注

    关注

    36

    文章

    22431

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    【瑞萨RA6E2地奇星开发板试用】介绍、环境搭建、工程测试

    基于100MHz Arm® Cortex®-M33 内核架构的核心板; 主控芯片为 48 引脚的 R7FA6E2BB3CNE; RA6E2 组是 RA6 系列中最新的入门级微控制
    发表于 12-07 15:27

    【免费试用】瑞萨 RA6E2 开发板免费试用

    RA-Eco-RA6E2-64PIN-V1.0是一款基于100MHzArmCortex-M33内核架构的核心板,主控芯片为R7FA6E2BB3CFM。RA6E2组是RA6系列中最新的入
    的头像 发表于 10-01 10:15 444次阅读
    【免费试用】瑞萨 <b class='flag-5'>RA6</b>E2 开发板免费试用

    简单认识高带宽存储器

    HBM(High Bandwidth Memory)即高带宽存储器,是一种基于 3D 堆叠技术的高性能 DRAM(动态随机存取存储器)。其核心设计是通过硅通孔(TSV)和微凸块(Microbump
    的头像 发表于 07-18 14:30 2391次阅读

    瑞萨RA系列MCU FSP库开发实战指南(09)存储器映射

    3.3 存储器映射 前文所述,寄存与RAM、FLASH一样都是芯片内部的一种存储设备。那么,当我们需要访问它们的时候,我们需要知道它们的存储地址。 3.3.1
    的头像 发表于 04-16 15:52 1273次阅读
    瑞萨<b class='flag-5'>RA</b>系列MCU FSP库开发实战<b class='flag-5'>指南</b>(09)<b class='flag-5'>存储器</b>映射

    存储器的分类及其区别

    初学者要了解SDRAM需要先了解存储器分类。按照存储器存储功能划分,可将其分为RAM 和 ROM 两大类。
    的头像 发表于 02-08 11:24 3775次阅读
    <b class='flag-5'>存储器</b>的分类及其区别

    闪速存储器属于RAM还是ROM,闪速存储器一般用来做什么的

    在数字存储技术的快速发展中,闪速存储器(Flash Memory)以其独特的性能和广泛的应用领域,成为了连接随机存取存储器(RAM)与只读存储器
    的头像 发表于 01-29 16:53 1559次阅读

    闪速存储器的闪速是指什么,闪速存储器的速度比内存快吗

    存储器则通过引入创新的擦除编程电路技术和高速灵敏度放大器,实现了对所有存储单元的同时、快速擦除。这种高效的擦除速度,使得闪速存储器在数据更新和维护方面具有显著优势,因此被形象地称为“闪
    的头像 发表于 01-29 15:14 1290次阅读

    高速缓冲存储器是内存还是外存,高速缓冲存储器是为了解决什么

    高速缓冲存储器(Cache)是内存的一种特殊形式,但它与通常所说的主存储器(RAM)有所不同。在计算机存储体系中,Cache位于CPU和主存储器之间,用于
    的头像 发表于 01-29 11:48 3119次阅读

    EE-349:ADSP-2146xDDR2存储器电路板设计指南

    电子发烧友网站提供《EE-349:ADSP-2146xDDR2存储器电路板设计指南.pdf》资料免费下载
    发表于 01-05 09:21 0次下载
    EE-349:ADSP-2146xDDR2<b class='flag-5'>存储器</b>电路板设计<b class='flag-5'>指南</b>

    EMMC存储器故障检测及解决方案

    随着技术的发展,EMMC存储器因其高速、大容量和低功耗的特性,已经成为移动设备和嵌入式系统的首选存储解决方案。然而,任何技术都有可能出现故障,EMMC存储器也不例外。 一、EMMC存储器
    的头像 发表于 12-25 09:39 7249次阅读

    EMMC存储器应用场景分析

    的可靠性和更低的功耗。 应用场景分析 1. 移动设备 智能手机和平板电脑: EMMC存储器因其高速读写能力和紧凑的尺寸,成为智能手机和平板电脑的理想选择。它们需要快速访问大量数据,同时保持设备的轻薄设计。 优势: 高速数据传输、低功耗、紧凑的尺寸。 挑战:
    的头像 发表于 12-25 09:26 3819次阅读

    TMS320C6000 DSP外部存储器接口(EMIF)参考指南

    电子发烧友网站提供《TMS320C6000 DSP外部存储器接口(EMIF)参考指南.pdf》资料免费下载
    发表于 12-24 16:17 1次下载
    TMS320C6000 DSP外部<b class='flag-5'>存储器</b>接口(EMIF)参考<b class='flag-5'>指南</b>

    TMS320VC5503/5507/5509 DSP外部存储器接口(EMIF)参考指南

    电子发烧友网站提供《TMS320VC5503/5507/5509 DSP外部存储器接口(EMIF)参考指南.pdf》资料免费下载
    发表于 12-21 09:42 1次下载
    TMS320VC5503/5507/5509 DSP外部<b class='flag-5'>存储器</b>接口(EMIF)参考<b class='flag-5'>指南</b>

    TMS320C672x DSP外部存储器接口(EMIF)用户指南

    电子发烧友网站提供《TMS320C672x DSP外部存储器接口(EMIF)用户指南.pdf》资料免费下载
    发表于 12-21 09:38 0次下载
    TMS320C672x DSP外部<b class='flag-5'>存储器</b>接口(EMIF)用户<b class='flag-5'>指南</b>

    MSP430存储器编程用户指南

    电子发烧友网站提供《MSP430存储器编程用户指南.pdf》资料免费下载
    发表于 12-19 15:34 0次下载
    MSP430<b class='flag-5'>存储器</b>编程用户<b class='flag-5'>指南</b>