RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

RA6快速設(shè)計指南 [11] 存儲器 (3)

瑞薩MCU小百科 ? 來源:未知 ? 2023-06-28 12:10 ? 次閱讀
02b53b9e-1569-11ee-962d-dac502259ad0.gif

8

存儲器

8.5 外部存儲器

RA6 MCU包含用于連接到外部存儲器和器件的外部數(shù)據(jù)總線。某些產(chǎn)品還包括一個內(nèi)置的SDRAM控制器,可通過該控制器使用最高達(dá)128MB的外部SDRAM。八個可編程片選提供了許多選項,可以在每個片選上設(shè)置這些選項,以允許連接到各種外部器件。存儲器映射的外部片選區(qū)域地址從0x60000000開始。有關(guān)更多詳細(xì)信息,請參見《硬件用戶手冊》。

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

連接具有字節(jié)選擇線的外部16位存儲器器件時,將MCU的A1連接到存儲器的A0,將MCU的A0連接到字節(jié)選擇線。

8.5.2 SDRAM初始化示例

Renesas FSP提供了采用CMSIS數(shù)據(jù)結(jié)構(gòu)的C語言頭文件,此文件映射了所有外部總線控制寄存器。以下函數(shù)是在Renesas FSP中使用CMSIS寄存器結(jié)構(gòu)初始化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 數(shù)據(jù)對齊

沒有對齊數(shù)據(jù)方面的限制。MCU能夠?qū)ζ鏀?shù)存儲地址執(zhí)行字節(jié)、字和長整型訪問。雖然對齊數(shù)據(jù)訪問仍然是最佳選擇,但并不是必須的。

8.7 字節(jié)順序限制

存儲器空間必須采用小尾數(shù)法才能在Cortex-M內(nèi)核上執(zhí)行代碼。

下一章:寄存器寫保護(hù)


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    17123

    瀏覽量

    350983
  • 瑞薩
    +關(guān)注

    關(guān)注

    35

    文章

    22308

    瀏覽量

    86239

原文標(biāo)題:RA6快速設(shè)計指南 [11] 存儲器 (3)

文章出處:【微信號:瑞薩MCU小百科,微信公眾號:瑞薩MCU小百科】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

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

    電子發(fā)燒友網(wǎng)站提供《TMS320VC5503/5507/5509 DSP外部存儲器接口(EMIF)參考指南.pdf》資料免費(fèi)下載
    發(fā)表于 12-21 09:42 ?0次下載
    TMS320VC5503/5507/5509 DSP外部<b class='flag-5'>存儲器</b>接口(EMIF)參考<b class='flag-5'>指南</b>

    TMS320C672x DSP外部存儲器接口(EMIF)用戶指南

    電子發(fā)燒友網(wǎng)站提供《TMS320C672x DSP外部存儲器接口(EMIF)用戶指南.pdf》資料免費(fèi)下載
    發(fā)表于 12-21 09:38 ?0次下載
    TMS320C672x DSP外部<b class='flag-5'>存儲器</b>接口(EMIF)用戶<b class='flag-5'>指南</b>

    MSP430存儲器編程用戶指南

    電子發(fā)燒友網(wǎng)站提供《MSP430存儲器編程用戶指南.pdf》資料免費(fèi)下載
    發(fā)表于 12-19 15:34 ?0次下載
    MSP430<b class='flag-5'>存儲器</b>編程用戶<b class='flag-5'>指南</b>

    什么是ROM存儲器的定義

    一、ROM存儲器的定義 ROM存儲器是一種在計算機(jī)和電子設(shè)備中用于存儲固定數(shù)據(jù)的存儲器。與RAM(隨機(jī)存取存儲器)不同,ROM
    的頭像 發(fā)表于 11-04 09:59 ?492次閱讀

    內(nèi)存儲器的分類和特點(diǎn)是什么

    內(nèi)存儲器(Internal Memory),也稱為主存儲器或隨機(jī)存取存儲器(RAM),是計算機(jī)系統(tǒng)中用于存儲數(shù)據(jù)和程序的硬件組件。它是計算機(jī)運(yùn)行過程中最直接、最
    的頭像 發(fā)表于 10-14 10:09 ?607次閱讀

    內(nèi)存儲器分為隨機(jī)存儲器和什么

    ,Read-Only Memory)。 一、隨機(jī)存儲器(RAM) 隨機(jī)存儲器的定義和特點(diǎn) 隨機(jī)存儲器(RAM)是一種可讀寫的存儲器,其特點(diǎn)是可以隨機(jī)訪問
    的頭像 發(fā)表于 10-14 09:54 ?898次閱讀

    ram存儲器和rom存儲器的區(qū)別是什么

    定義: RAM(Random Access Memory):隨機(jī)存取存儲器,是一種易失性存儲器,主要用于計算機(jī)和其他設(shè)備的臨時存儲。 ROM(Read-Only Memory):只讀存儲器
    的頭像 發(fā)表于 08-06 09:17 ?659次閱讀

    RA6T2的16位模數(shù)轉(zhuǎn)換操作 [11] 配置RA6T2 ADC模塊 (8)

    RA6T2的16位模數(shù)轉(zhuǎn)換操作 [11] 配置RA6T2 ADC模塊 (8)
    的頭像 發(fā)表于 05-24 08:06 ?351次閱讀
    <b class='flag-5'>RA6</b>T2的16位模數(shù)轉(zhuǎn)換<b class='flag-5'>器</b>操作 [<b class='flag-5'>11</b>] 配置<b class='flag-5'>RA6</b>T2 ADC模塊 (8)

    內(nèi)存儲器與外存儲器的主要區(qū)別

    在計算機(jī)系統(tǒng)中,存儲器是不可或缺的核心部件,它負(fù)責(zé)存儲和處理各種數(shù)據(jù)和信息。根據(jù)存儲位置和功能的不同,存儲器可大致分為內(nèi)存儲器(簡稱內(nèi)存)和
    的頭像 發(fā)表于 05-22 18:16 ?5211次閱讀

    RA6T2的16位模數(shù)轉(zhuǎn)換操作 [6] 配置RA6T2 ADC模塊 (3)

    RA6T2的16位模數(shù)轉(zhuǎn)換操作 [6] 配置RA6T2 ADC模塊 (3)
    的頭像 發(fā)表于 04-12 08:06 ?298次閱讀
    <b class='flag-5'>RA6</b>T2的16位模數(shù)轉(zhuǎn)換<b class='flag-5'>器</b>操作 [<b class='flag-5'>6</b>] 配置<b class='flag-5'>RA6</b>T2 ADC模塊 (<b class='flag-5'>3</b>)

    淺談存儲器層次結(jié)構(gòu)

    通過多級存儲器的設(shè)計,存儲器層次結(jié)構(gòu)能夠在存儲容量和訪問速度之間找到一個平衡點(diǎn)。高速緩存存儲器和主存儲器提供了
    發(fā)表于 02-19 13:54 ?819次閱讀
    淺談<b class='flag-5'>存儲器</b>層次結(jié)構(gòu)

    CK-RA6M5上的RA AWS云連接,帶蜂窩網(wǎng)絡(luò)-入門指南

    電子發(fā)燒友網(wǎng)站提供《CK-RA6M5上的RA AWS云連接,帶蜂窩網(wǎng)絡(luò)-入門指南.pdf》資料免費(fèi)下載
    發(fā)表于 02-19 10:50 ?0次下載
    CK-<b class='flag-5'>RA6</b>M5上的<b class='flag-5'>RA</b> AWS云連接,帶蜂窩網(wǎng)絡(luò)-入門<b class='flag-5'>指南</b>

    RA8D1微控制組評估套件快速入門指南

    電子發(fā)燒友網(wǎng)站提供《RA8D1微控制組評估套件快速入門指南.pdf》資料免費(fèi)下載
    發(fā)表于 01-31 10:15 ?1次下載
    <b class='flag-5'>RA</b>8D1微控制<b class='flag-5'>器</b>組評估套件<b class='flag-5'>快速</b>入門<b class='flag-5'>指南</b>

    MCK-RA8T1快速入門指南

    電子發(fā)燒友網(wǎng)站提供《MCK-RA8T1快速入門指南.pdf》資料免費(fèi)下載
    發(fā)表于 01-29 14:07 ?0次下載
    MCK-<b class='flag-5'>RA</b>8T1<b class='flag-5'>快速</b>入門<b class='flag-5'>指南</b>

    CK-RA6M5上的RA AWS云連接(帶以太網(wǎng))入門指南

    電子發(fā)燒友網(wǎng)站提供《CK-RA6M5上的RA AWS云連接(帶以太網(wǎng))入門指南.pdf》資料免費(fèi)下載
    發(fā)表于 01-03 10:10 ?0次下載
    CK-<b class='flag-5'>RA6</b>M5上的<b class='flag-5'>RA</b> AWS云連接(帶以太網(wǎng))入門<b class='flag-5'>指南</b>
    RM新时代网站-首页