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

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

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

MIMXRT1176支持8位列地址的SDRAM器件W9864G6

li1756686189 ? 來源:嵌入式 MCU ? 作者:嵌入式 MCU ? 2022-12-01 15:04 ? 次閱讀

MIMXRT1176的開發(fā)板配套的 SDRAM是W9825G6KH,對應(yīng)的列地址是9位的。

b4e76dd2-7145-11ed-8abf-dac502259ad0.png

MIMXRT1176支持的列地址是 8/9/10/11/12位。

b51d9d58-7145-11ed-8abf-dac502259ad0.png

SDRAM 替換成 W9864G6后,Column地址變?yōu)?8位的。

b54f6fc2-7145-11ed-8abf-dac502259ad0.png

SDK中例程目錄 evkmimxrt1170driver_examplessemcsdramcm7,修改semc_sdram.c文件配置如下。

status_t BOARD_InitSEMC(void)

{

semc_config_t config;

semc_sdram_config_t sdramconfig;

uint32_t clockFrq = EXAMPLE_SEMC_CLK_FREQ;

/* Initializes the MAC configure structure to zero. */

memset(&config, 0, sizeof(semc_config_t));

memset(&sdramconfig, 0, sizeof(semc_sdram_config_t));

/* Initialize SEMC. */

SEMC_GetDefaultConfig(&config);

config.dqsMode = kSEMC_Loopbackdqspad; /* For more accurate timing. */

SEMC_Init(SEMC, &config);

/* Configure SDRAM. */

sdramconfig.csxPinMux = kSEMC_MUXCSX0;

sdramconfig.address = 0x80000000;

sdramconfig.memsize_kbytes = 1 * 8* 1024; /* 8MB*/

sdramconfig.portSize = kSEMC_PortSize16Bit;

sdramconfig.burstLen = kSEMC_Sdram_BurstLen8;

sdramconfig.columnAddrBitNum = kSEMC_SdramColunm_8bit;

sdramconfig.casLatency = kSEMC_LatencyThree;

sdramconfig.tPrecharge2Act_Ns = 15; /* tRP 15ns */

sdramconfig.tAct2ReadWrite_Ns = 15; /* tRCD 15ns */

sdramconfig.tRefreshRecovery_Ns = 70; /* Use the maximum of the (Trfc , Txsr). */

sdramconfig.tWriteRecovery_Ns = 2; /* tWR 2ns */

sdramconfig.tCkeOff_Ns =

42; /* The minimum cycle of SDRAM CLK off state. CKE is off in self refresh at a minimum period tRAS.*/

sdramconfig.tAct2Prechage_Ns = 40; /* tRAS 40ns */

sdramconfig.tSelfRefRecovery_Ns = 70;

sdramconfig.tRefresh2Refresh_Ns = 60;

sdramconfig.tAct2Act_Ns = 2; /* tRC/tRDD 2ns */

sdramconfig.tPrescalePeriod_Ns = 160 * (1000000000 / clockFrq);

sdramconfig.refreshPeriod_nsPerRow = 64 * 1000000 / 8192; /* 64ms/8192 */

sdramconfig.refreshUrgThreshold = sdramconfig.refreshPeriod_nsPerRow;

sdramconfig.refreshBurstLen = 1;

sdramconfig.delayChain = 6; /* For all tempeatures. */

return SEMC_ConfigureSDRAM(SEMC, kSEMC_SDRAM_CS0, &sdramconfig, clockFrq);

}

static void SEMC_SDRAMReadWrite8Bit(void)

{

uint32_t index;

uint32_t datalen = SEMC_EXAMPLE_DATALEN;

uint8_t *sdram = (uint8_t *)EXAMPLE_SEMC_START_ADDRESS; /* SDRAM start address. */

bool result = true;

PRINTF(" SEMC SDRAM Memory 8 bit Write Start, Start Address 0x%x, Data Length %d ! ", sdram, datalen);

memset(sdram_writeBuffer, 0, sizeof(sdram_writeBuffer));

memset(sdram_readBuffer, 0, sizeof(sdram_readBuffer));

/* Prepare data and write to SDRAM. */

for (index = 0; index < datalen; index++)

{

sdram_writeBuffer[index] = index % 0x100;

sdram[index] = sdram_writeBuffer[index];

}

PRINTF(" SEMC SDRAM Read 8 bit Data Start, Start Address 0x%x, Data Length %d ! ", sdram, datalen);

#if defined(CACHE_MAINTAIN) && CACHE_MAINTAIN

DCACHE_InvalidateByRange(EXAMPLE_SEMC_START_ADDRESS, 4U * SEMC_EXAMPLE_DATALEN);

#endif

/* Read data from the SDRAM. */

for (index = 0; index < datalen; index++)

{

sdram_readBuffer[index] = sdram[index];

}

PRINTF(" SEMC SDRAM 8 bit Data Write and Read Compare Start! ");

/* Compare the two buffers. */

while (datalen--)

{

if (sdram_writeBuffer[datalen] != sdram_readBuffer[datalen])

{

result = false;

break;

}

}

if (!result)

{

PRINTF(" SEMC SDRAM 8 bit Data Write and Read Compare Failed! ");

}

else

{

PRINTF(" SEMC SDRAM 8 bit Data Write and Read Compare Succeed! ");

}

}

備注:在 MIMXRT1050 MCU 上只支持9/10/11/12位,不支持 8位的。

b8651036-7145-11ed-8abf-dac502259ad0.png

SDRAM 配置參考文檔:

https://www.nxp.com.cn/docs/en/nxp/application-notes/AN12026.pdf


審核編輯 :李倩


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

    關(guān)注

    7

    文章

    421

    瀏覽量

    55110
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    4846

    瀏覽量

    96899

原文標題:MIMXRT1176 支持8位列地址的SDRAM器件W9864G6

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

收藏 人收藏

    評論

    相關(guān)推薦

    請問PCM9211支持HDMI音頻輸入嗎?

    請問PCM9211支持HDMI 2.1 eARC 標準的幀的專用輸入,是否同時支持HDMI音頻輸入。
    發(fā)表于 10-17 07:53

    請問TAS5727支持幾段EQ?

    TAS5727支持幾段EQ? 比如PCM5121支持7段以上,TAS5727可以么?
    發(fā)表于 10-14 07:02

    請問OPA2541支持單電源嗎?如果支持此時功放范圍是多少?

    請問OPA2541支持單電源嗎?如果支持此時功放范圍是多少?
    發(fā)表于 09-02 07:42

    TUBS8041支持從設(shè)備嗎?

    TUBS8041支持從設(shè)備么?
    發(fā)表于 08-19 06:22

    ESP32支持OpenHarmony嗎?

    ESP32支持OpenHarmony嗎,可以用AT命令卡控制鴻蒙智聯(lián)的連接嗎,使用ESP32模組的情況下帶寬是否能支持視頻流的上傳
    發(fā)表于 07-19 06:07

    請問visionFive2支持哪些操作系統(tǒng)?

    visionFive2支持哪些操作系統(tǒng)?
    發(fā)表于 07-03 07:30

    esp32支持經(jīng)典藍牙嗎?

    kconfig里面經(jīng)典藍牙依賴IDF_TARGET_ESP32,只有esp32支持經(jīng)典藍牙嗎? \"depends_on\": \"
    發(fā)表于 06-13 06:54

    求助,請問ESP32支持MIMO嗎?

    請問ESP32支持MIMO嗎?
    發(fā)表于 06-13 06:00

    請問stm32 foc5.0支持哪些MCU?

    stm32 foc5.0支持哪些MCU, 怎么FOC5.0以上的庫,MCU只是固定的幾個,不是全系列的,比如stm103 MD系列,只能選stm32f103VB這個。。其他也是。是不是只支持固定的一些MCU。求高手講解一下。
    發(fā)表于 04-26 07:36

    STM32L476支持高速USB通信嗎?

    我的板子是STM32L476的,現(xiàn)在要做一個usb通信,如果只是做全速USB的話不如直接用串口,所以想做高速USB,這就出現(xiàn)我現(xiàn)在的問題: 1.STM32L476支持高速USB通信嗎? 2.如果支持,應(yīng)該如何切換 3.PC端如果是WIN10應(yīng)該使用什么驅(qū)動程序
    發(fā)表于 04-12 07:52

    STM32F427VIT6支持HyperBus或者Octal xSPI接口的PSRAM嗎?

    STM32F427VIT6支持HyperBus或者Octal xSPI接口的PSRAM嗎
    發(fā)表于 03-20 07:32

    PSOC6支持的屏幕分辨率最大能到600*600嗎?

    現(xiàn)在PSOC6支持的屏幕分辨率最大能到600*600嗎?
    發(fā)表于 02-19 08:24

    請問AD9914支持AM以及MSK調(diào)制嗎?

    請問 AD9914支持AM以及MSK調(diào)制嗎? 如果支持 怎么操作呢 謝謝了
    發(fā)表于 12-13 09:35

    請問AD7606支持差分輸入嗎?

    請問ADC采集芯片——AD7606支持差分輸入嗎? 差分輸入或者單端輸入都可以嗎?哪種可以,哪種不可以?
    發(fā)表于 12-01 08:19

    MAX32660支持哪些系統(tǒng)平臺?

    MAX32660支持哪些系統(tǒng)平臺
    發(fā)表于 11-09 08:13