RT1176 CUSTOM BOARD DCD CONFIGURATION

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

RT1176 CUSTOM BOARD DCD CONFIGURATION

1,414 Views
Wobaffet
Senior Contributor I

Hello, 

We are trying to create a DCD table for our custom board with RT1176. Our sdram configuration is same with SLN-TLHMI kit from NXP but with different size and brand SDRAM. We've verified our RAM with example sdram test codes from SDK.

In terms of DCD, is our configration looks okay? Can you check? I've attached DCD from the HMI kit and our custom version. Also you can find our RAM timing parameters that tested with example sdk code.

''

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_Loopbackinternal; /* For more accurate timing. */

    SEMC_Init(SEMC, &config);

 

    /* Configure SDRAM. */

    sdramconfig.csxPinMux           = kSEMC_MUXCSX0;

    sdramconfig.address             = 0x80000000;

    sdramconfig.memsize_kbytes      = 2 * 4 * 1024;       /* 64MB = 2*32*1024*1KBytes*/

    sdramconfig.portSize            = kSEMC_PortSize16Bit; /*two 16-bit SDRAMs make up 32-bit portsize*/

    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   = 12;  /* 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            = 12; /* 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);

}''

0 Kudos
Reply
4 Replies

1,381 Views
Wobaffet
Senior Contributor I

Hello, SDK_2_14_0_MIMXRT1170-EVK\boards\evkmimxrt1170\driver_examples\semc\sdram tested and works, we have provided our timings from the tested code and prepared a custom dcd, attached it on the initial code. Can you check please?

0 Kudos
Reply

1,298 Views
Wobaffet
Senior Contributor I

We have taken DCD register values for our custom board from SDK example with our board timing values and some of these values differ from the SLN_TLHMI_IOT kit. Some of these registers are differing due to timings and size but what is the reason SEMC_MCR and SEMC_BMCR0,  SEMC_BMCR1 different from the SLN_TLHMI_IOT kit DCD? Below is the differing values for the DCD between SLN_TLHMI_IOT and our board. I've also attached our latest DCD file. 

Wobaffet_0-1696234476651.png

Thank you in advance!

Best Regards.

0 Kudos
Reply

1,255 Views
kerryzhou
NXP TechSupport
NXP TechSupport

Hi @Wobaffet ,

  Thanks for your updated information.

   So, if your sdk semc already works with the time parameter modification, then you can also modify the related DCD register for your tested semc project, whether that works or not?

  For the SEMC_MCR and SEMC_BMCR0,  SEMC_BMCR1 register data, you can use the SDK debug result data in the DCD, please try it.

  If you still have issues, just kindly let me know.

Best Regards,

Kerry

0 Kudos
Reply

1,396 Views
kerryzhou
NXP TechSupport
NXP TechSupport

Hi @Wobaffet ,

  Thank you for your interest in the NXP MIMXRT product, I would like to provide service for you.

 You mentioned:We've verified our RAM with example sdram test codes from SDK

 Do you already make this code:

\SDK_2_14_0_MIMXRT1170-EVK\boards\evkmimxrt1170\driver_examples\semc\sdram

working or not?

If yes, it means your hardware is already working.

Then, you just need to modify the DCD file, the related size, the time parameter is Ok.

You can refer to the SLN-TLHMI DCD table, just need to change the related size and the time parameter configiuration, which is matching to your SDRAM datasheet.

 

Wish it helps you!

Best Regads,

Kerry

0 Kudos
Reply