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

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

3天内不再提示

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

li1756686189 来源:嵌入式 MCU 作者:嵌入式 MCU 2022-12-01 15:04 次阅读

MIMXRT1176的开发板配套的 SDRAM是W9825G6KH,对应的列地址是9位的。

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

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

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

SDRAM 替换成 W9864G6后,Column地址变为 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


审核编辑 :李倩


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

    关注

    7

    文章

    409

    浏览量

    54729
  • 开发板
    +关注

    关注

    25

    文章

    4429

    浏览量

    93993

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

文章出处:【微信号:嵌入式 MCU,微信公众号:嵌入式 MCU】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    请问stm32 foc5.0支持哪些MCU?

    stm32 foc5.0支持哪些MCU, 怎么FOC5.0以上的库,MCU只是固定的几个,不是全系列的,比如stm103 MD系列,只能选stm32f103VB这个。。其他也是。是不是只支持固定的一些MCU。求高手讲解一下。
    发表于 04-26 07:36

    STM32L476支持高速USB通信吗?

    我的板子是STM32L476的,现在要做一个usb通信,如果只是做全速USB的话不如直接用串口,所以想做高速USB,这就出现我现在的问题: 1.STM32L476支持高速USB通信吗? 2.如果支持,应该如何切换 3.PC端如果是WIN10应该使用什么驱动程序
    发表于 04-12 07:52

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

    STM32F427VIT6支持HyperBus或者Octal xSPI接口的PSRAM吗
    发表于 03-20 07:32

    请问CYBLE-214009-00支持支持改uuid吗?

    如题所述: CYBLE-214009-00支持支持改uuid吗? 另外我可以在哪里找到CYBLE-214009-00的指令集 Does CYBLE-214009-00 support uuid?
    发表于 02-21 06:18

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

    现在PSOC6支持的屏幕分辨率最大能到600*600吗?
    发表于 02-19 08:24

    请问AD9914支持AM以及MSK调制吗?

    请问 AD9914支持AM以及MSK调制吗? 如果支持 怎么操作呢 谢谢了
    发表于 12-13 09:35

    请问AD7606支持差分输入吗?

    请问ADC采集芯片——AD7606支持差分输入吗? 差分输入或者单端输入都可以吗?哪种可以,哪种不可以?
    发表于 12-01 08:19

    MAX32660支持哪些系统平台?

    MAX32660支持哪些系统平台
    发表于 11-09 08:13

    RT1064支持DDR吗?

    RT1064支持DDR吗?
    发表于 10-08 08:39

    请问K210支持的最大FLASH容量是多少?

    请问K210支持的最大FLASH容量是多少?SPI-FLASH访问的地址长度是多少?数据长度是多少?
    发表于 09-14 08:57

    求助,请问mini58支持IAP升级吗?

    请问mini58支持IAP升级吗?
    发表于 08-21 07:09

    如何使用RT1176SDRAM组配置SEMC的参数?

    * (1000000000 / clockFrq)”。 注意:EVB 使用 2x16 SDRAM mod.W9825G6KH-5I,CLK=200MHz。 我使用不同的 166MHz CLOCK
    发表于 06-05 10:31

    HPM6750IVM1是否可以支持华邦的SDRAM W9825G2JB?

    HPM6750IVM1是否可以支持华邦的SDRAM W9825G2JB? 如果支持,是否需要修改软件?
    发表于 05-26 06:00

    MIMXRT1176生成的.bin文件加载到MIMXRT1171处理器中,无法从MCUExpresso IDE加载代码怎么解决?

    大家好, 我试图将为 MIMXRT1176 生成的 .bin 文件加载到 MIMXRT1171 处理器中。但是我收到一个错误并且无法从 MCUExpresso IDE 加载代码。 谁可以帮我这个事?
    发表于 05-18 07:07

    可以在不使用外部SDRAM的情况下运行i.MXRT1176 (MIMXRT1176DVMAA) 控制器吗?

    我们想在我们的一个物联网应用项目中使用 MIMXRT1176DVMAA。为此,我们不需要外部 SDRAM。所以,我们想在没有 SDRAM 的情况下运行这个控制器。 根据数据表,该控制器具有内部 2MB
    发表于 05-04 08:12