<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: IMXRT1064 External SRAM Usage in i.MX RT Crossover MCUs</title>
    <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/IMXRT1064-External-SRAM-Usage/m-p/1626591#M24399</link>
    <description>&lt;P&gt;Hi Dear&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/14969"&gt;@Hui_Ma&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;My Question 1:&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;Actually, I look &lt;SPAN&gt;IOMUXC_SetPinMux function&amp;nbsp;&lt;/SPAN&gt;for details. But, there is no reference values for any specific functionality even if the default values are 0x0. For example, why below line uses "0x110F9U" ? Can I use 0x0 for everything which will I newly configure?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="c"&gt;IOMUXC_SetPinConfig(IOMUXC_GPIO_EMC_40_SEMC_RDY, 0x0110F9U); &lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;My Question 2:&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;I have additional blurry points for configuring my SRAM.&amp;nbsp;You said about related PADs for&amp;nbsp;&lt;SPAN&gt;SEMC_CLK5 and&amp;nbsp;SEMC_CLK6 in your answer.&lt;/SPAN&gt;&amp;nbsp;(SEMC_CLKX0 and SEMC_CLKX1). I can't use SYNC mode due to some bugs in code. There is no definition for SEMC_SRAMCR4_SYNCEN_MASK in code. This is why I can't use SYNC Mode. And it is not fixed when I configure by "Config Tool". When I select SYNC mode option "Config Tool" is not recommending any code change related about it. Is this not the real purpose of "Config Tool" ? I find the corresponding definitions&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;For &lt;STRONG&gt;IMXRT1170:&lt;/STRONG&gt;&lt;/P&gt;&lt;LI-CODE lang="c"&gt;#define SEMC_SRAMCR4_SYNCEN_MASK                 (0x2U)
#define SEMC_SRAMCR4_SYNCEN_SHIFT                (1U)
/*! SYNCEN - Select SRAM controller mode.
 *  0b0..ASYNC mode is enabled.
 *  0b1..SYNC mode is enabled.
 */
#define SEMC_SRAMCR4_SYNCEN(x)                   (((uint32_t)(((uint32_t)(x)) &amp;lt;&amp;lt; SEMC_SRAMCR4_SYNCEN_SHIFT)) &amp;amp; SEMC_SRAMCR4_SYNCEN_MASK)&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;For &lt;STRONG&gt;IMXRT1064:&lt;/STRONG&gt;&lt;/P&gt;&lt;LI-CODE lang="c"&gt;#define SEMC_SRAMCR0_SYNCEN_MASK                 (0x2U)
#define SEMC_SRAMCR0_SYNCEN_SHIFT                (1U)
/*! SYNCEN - Synchronous Mode Enable
 *  0b0..Asynchronous mode is enabled.
 *  0b1..Synchronous mode is enabled. Only fixed latency mode is supported.
 */
#define SEMC_SRAMCR0_SYNCEN(x)                   (((uint32_t)(((uint32_t)(x)) &amp;lt;&amp;lt; SEMC_SRAMCR0_SYNCEN_SHIFT)) &amp;amp; SEMC_SRAMCR0_SYNCEN_MASK)&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;And there are too many points which requires change (&lt;STRONG&gt;*prefix*&lt;/STRONG&gt;_SRAMCR4_&lt;STRONG&gt;*postfix*&lt;/STRONG&gt; to &lt;STRONG&gt;*prefix*&lt;/STRONG&gt;_SRAMCR0_&lt;STRONG&gt;*postfix*&lt;/STRONG&gt; ) to use SYNC mode. Why these definition based differences is not suitable for IMXRT1064 and why they are not configuring by Config Tools when I set SYNC Mode option?&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;fsl_semc.c&amp;nbsp;&amp;nbsp;&lt;/STRONG&gt;&lt;STRONG&gt;(Original for IMXRT1064) :&lt;/STRONG&gt;&lt;/P&gt;&lt;LI-CODE lang="c"&gt;        else
#endif /* FSL_FEATURE_SEMC_SUPPORT_SRAM_COUNT */
        {
            tempCtrlVal = SEMC_SRAMCR0_PS(config-&amp;gt;portSize) |
#if defined(SEMC_SRAMCR4_SYNCEN_MASK) &amp;amp;&amp;amp; (SEMC_SRAMCR4_SYNCEN_MASK)
                          SEMC_SRAMCR0_SYNCEN(config-&amp;gt;syncMode) |
#endif /* SEMC_SRAMCR4_SYNCEN_MASK */
                          SEMC_SRAMCR0_BL(config-&amp;gt;burstLen) | SEMC_SRAMCR0_AM(config-&amp;gt;addrMode) |
                          SEMC_SRAMCR0_ADVP(config-&amp;gt;advActivePolarity) |
#if defined(SEMC_SRAMCR4_ADVH_MASK) &amp;amp;&amp;amp; (SEMC_SRAMCR4_ADVH_MASK)
                          SEMC_SRAMCR4_ADVH(config-&amp;gt;advLevelCtrl) |
#endif /* SEMC_SRAMCR4_ADVH_MASK */
                          SEMC_SRAMCR0_COL_MASK;
        }&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;fsl_semc.c&amp;nbsp;&amp;nbsp;&lt;/STRONG&gt;&lt;STRONG&gt;(Configured by me for IMXRT1064) :&lt;/STRONG&gt;&lt;/P&gt;&lt;LI-CODE lang="c"&gt;        else
#endif /* FSL_FEATURE_SEMC_SUPPORT_SRAM_COUNT */
        {
            tempCtrlVal = SEMC_SRAMCR0_PS(config-&amp;gt;portSize) |
//#if defined(SEMC_SRAMCR4_SYNCEN_MASK) &amp;amp;&amp;amp; (SEMC_SRAMCR4_SYNCEN_MASK)
#if defined(SEMC_SRAMCR0_SYNCEN_MASK) &amp;amp;&amp;amp; (SEMC_SRAMCR0_SYNCEN_MASK)
                          SEMC_SRAMCR0_SYNCEN(config-&amp;gt;syncMode) |
#endif /* SEMC_SRAMCR0_SYNCEN_MASK */
//#endif /* SEMC_SRAMCR4_SYNCEN_MASK */
                          SEMC_SRAMCR0_BL(config-&amp;gt;burstLen) | SEMC_SRAMCR0_AM(config-&amp;gt;addrMode) |
                          SEMC_SRAMCR0_ADVP(config-&amp;gt;advActivePolarity) |
#if defined(SEMC_SRAMCR4_ADVH_MASK) &amp;amp;&amp;amp; (SEMC_SRAMCR4_ADVH_MASK)
                          SEMC_SRAMCR4_ADVH(config-&amp;gt;advLevelCtrl) |
#endif /* SEMC_SRAMCR4_ADVH_MASK */
                          SEMC_SRAMCR0_COL_MASK;
        }&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I just want to ask you: What is the reason this bug is exist even I have&amp;nbsp;&lt;STRONG&gt;"fsl_semc.c" &lt;/STRONG&gt;which&amp;nbsp;is belong to &lt;STRONG&gt;IMXRT1064 SDK.&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am asking detailly because I don't want to fluctuate in configuration phase.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks and Regards.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Mon, 03 Apr 2023 06:15:21 GMT</pubDate>
    <dc:creator>Lukas_Frank</dc:creator>
    <dc:date>2023-04-03T06:15:21Z</dc:date>
    <item>
      <title>IMXRT1064 External SRAM Usage</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/IMXRT1064-External-SRAM-Usage/m-p/1602650#M23831</link>
      <description>&lt;P&gt;Hi Dear Authorized,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am looking for some informations related to external SRAM usage with IMXRT1064. For example, EVK has 256Mbit 166MHz SDRAM. 166MHz is related with used SDRAM. I am trying to find frequency limitations of SEMC Controller. Also, looking for SRAM usage.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Question 1 : Is there an upper frequency (like 166MHz, below or above) limitation for SEMC Controller while using external SRAM?&lt;/P&gt;&lt;P&gt;Question 2 : Is there a specific document which describes SRAM usage and implementation in IMXRT by using SEMC Controller?&lt;/P&gt;&lt;P&gt;Question 3 : Could you please share me example code for SRAM usage with SEMC Controller?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks and Regards.&lt;/P&gt;</description>
      <pubDate>Tue, 21 Feb 2023 08:07:13 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/IMXRT1064-External-SRAM-Usage/m-p/1602650#M23831</guid>
      <dc:creator>Lukas_Frank</dc:creator>
      <dc:date>2023-02-21T08:07:13Z</dc:date>
    </item>
    <item>
      <title>Re: IMXRT1064 External SRAM Usage</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/IMXRT1064-External-SRAM-Usage/m-p/1604365#M23870</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I would like to share some infromation to you.&lt;/P&gt;
&lt;P&gt;1. The Max frequency of SEMC is 166MHz, you can find it in datasheet.&lt;/P&gt;
&lt;P&gt;2. I am not sure for this&lt;/P&gt;
&lt;P&gt;3. The demo code, you can find in our SDK code, path :&amp;nbsp;boards\evkbmimxrt1060\driver_examples\semc\sdram&lt;/P&gt;</description>
      <pubDate>Thu, 23 Feb 2023 07:34:13 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/IMXRT1064-External-SRAM-Usage/m-p/1604365#M23870</guid>
      <dc:creator>lucas_cao</dc:creator>
      <dc:date>2023-02-23T07:34:13Z</dc:date>
    </item>
    <item>
      <title>Re: IMXRT1064 External SRAM Usage</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/IMXRT1064-External-SRAM-Usage/m-p/1606828#M23925</link>
      <description>&lt;P&gt;Hi Dear&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/151313"&gt;@lucas_cao&lt;/a&gt;,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Could you please help me about my Question 2 ? I want to you to prepare a document about the issue if possible.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;thank and regards.&lt;/P&gt;</description>
      <pubDate>Tue, 28 Feb 2023 12:07:05 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/IMXRT1064-External-SRAM-Usage/m-p/1606828#M23925</guid>
      <dc:creator>Lukas_Frank</dc:creator>
      <dc:date>2023-02-28T12:07:05Z</dc:date>
    </item>
    <item>
      <title>Re: IMXRT1064 External SRAM Usage</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/IMXRT1064-External-SRAM-Usage/m-p/1606878#M23926</link>
      <description>&lt;P&gt;Hi Lukas,&lt;/P&gt;
&lt;P&gt;Please refer below knowledge thread about using SEMC module with external SRAM memory device.&lt;/P&gt;
&lt;P&gt;&lt;A href="https://community.nxp.com/t5/i-MX-RT-Knowledge-Base/How-to-configure-SRAM-in-SEMC-modules-for-RT-devices/ta-p/1559581" target="_blank"&gt;https://community.nxp.com/t5/i-MX-RT-Knowledge-Base/How-to-configure-SRAM-in-SEMC-modules-for-RT-devices/ta-p/1559581&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Wish it helps.&lt;/P&gt;
&lt;P&gt;Mike&lt;/P&gt;</description>
      <pubDate>Tue, 28 Feb 2023 13:38:43 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/IMXRT1064-External-SRAM-Usage/m-p/1606878#M23926</guid>
      <dc:creator>Hui_Ma</dc:creator>
      <dc:date>2023-02-28T13:38:43Z</dc:date>
    </item>
    <item>
      <title>Re: IMXRT1064 External SRAM Usage</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/IMXRT1064-External-SRAM-Usage/m-p/1616704#M24149</link>
      <description>&lt;P&gt;Hi Dear&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/14969"&gt;@Hui_Ma&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am appreciate for your help. I will try it on my board and share my results.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Best wishes.&lt;/P&gt;</description>
      <pubDate>Thu, 16 Mar 2023 11:32:35 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/IMXRT1064-External-SRAM-Usage/m-p/1616704#M24149</guid>
      <dc:creator>Lukas_Frank</dc:creator>
      <dc:date>2023-03-16T11:32:35Z</dc:date>
    </item>
    <item>
      <title>Re: IMXRT1064 External SRAM Usage</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/IMXRT1064-External-SRAM-Usage/m-p/1619867#M24216</link>
      <description>&lt;P&gt;Hi Dear&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/14969"&gt;@Hui_Ma&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I tested the code and I stucked at some points. Here is the steps which I follow:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;First of all, I directly tried the code which you &lt;A title="How to configure SRAM in SEMC modules for RT devices" href="https://community.nxp.com/t5/i-MX-RT-Knowledge-Base/How-to-configure-SRAM-in-SEMC-modules-for-RT-devices/ta-p/1559581" target="_blank" rel="noopener"&gt;share&lt;/A&gt; with me. It errors due to some enums such as "BOARD_INITPINS_WAIT_CTRL_PERIPHERAL" , "BOARD_INITPINS_WAIT_CTRL_CHANNEL" which belongs to RT1170. So, I simplified the code like below. I tried it like official SDRAM EVK example.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The code is not able to write data to memory address 0x80000000 while I am using SRAM configuration despite it is successfully write SDRAM. The successful tests which are achieved uses SDK example "evkmimxrt1064\driver_examples\semc\sdram". It works well but the code below is not writing data to address.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;My card includes both SRAM and SDRAM. I just want to use SEMC for both of them. Could you help me please what is wrong with the below code?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks and Regards.&lt;/P&gt;&lt;LI-CODE lang="c"&gt;#include "fsl_debug_console.h"
#include "fsl_device_registers.h"
#include "pin_mux.h"
#include "clock_config.h"
#include "board.h"
#include "fsl_semc.h"

/*******************************************************************************
 * Definitions
 ******************************************************************************/
#define EXAMPLE_SEMC               SEMC
#define EXAMPLE_SEMC_START_ADDRESS (0x80000000U)
#define EXAMPLE_SEMC_CLK_FREQ      CLOCK_GetFreq(kCLOCK_SemcClk)

#define SEMC_EXAMPLE_DATALEN    (0x1000U)
#define SEMC_EXAMPLE_WRITETIMES (1000U)

/*******************************************************************************
 * Prototypes
 ******************************************************************************/
extern status_t BOARD_InitSEMC(void);
static void SEMC_SDRAMReadWrite32Bit(void);
/*******************************************************************************
 * Variables
 ******************************************************************************/

uint32_t sram_writeBuffer[SEMC_EXAMPLE_DATALEN];
uint32_t sram_readBuffer[SEMC_EXAMPLE_DATALEN];

/*******************************************************************************
 * Code
 ******************************************************************************/
void SEMC_SRAMReadWrite32Bit(void);
#define SRAM_BASE EXAMPLE_SEMC_START_ADDRESS //0x90000000
status_t BOARD_InitSRAM(void)
{
    semc_config_t config;
    semc_sram_config_t sram_config;
    uint32_t clockFrq = EXAMPLE_SEMC_CLK_FREQ;

    /* Initializes the MAC configure structure to zero. */
    memset(&amp;amp;config, 0, sizeof(semc_config_t));
    memset(&amp;amp;sram_config, 0, sizeof(semc_sram_config_t));

    /* Initialize SEMC. */
    SEMC_GetDefaultConfig(&amp;amp;config);
    config.dqsMode = kSEMC_Loopbackdqspad; /* For more accurate timing. */
    SEMC_Init(SEMC, &amp;amp;config);

// config SRAM
    sram_config.cePinMux           = kSEMC_MUXA8;        	// SEMC_ADDR08 is CE0# (IOCR[MUX_A8])
    sram_config.address            = SRAM_BASE;          	// Base address 0x90000000 (BR6[BA])
    sram_config.memsize_kbytes     = 0x10000;				// SRAM0 space size 64MB (BR6[MS])
    sram_config.addrPortWidth      = 8;                    	// Port width (SRAMCR0[COL]) Don't care in SRAM.
    sram_config.advActivePolarity  = kSEMC_AdvActiveLow;   	// ADV# polarity (SRAMCR0[ADVP]) Don't care if not use ADV.
    sram_config.addrMode           = kSEMC_AddrDataNonMux; 	// Non Mux mode (SRAMCR0[AM])
    sram_config.burstLen           = kSEMC_Nor_BurstLen1;	// Burst length (SRAMCR0[BL])
    sram_config.portSize           = kSEMC_PortSize16Bit;	// Port size 16bit (SRAMCR0[PS])
    //sram_config.syncMode           = kSEMC_AsyncMode;		// ASYNC mode (SRAMCR0[SYNCEN])
    //sram_config.waitEnable         = true;				// WAIT enable (SRAMCR0[WAITEN])
    //sram_config.waitSample         = 0; 					// WAIT sample (SRAMCR0[WAITSP])
    //sram_config.advLevelCtrl       = kSEMC_AdvHigh; 		// ADV# level control (SRAMCR0[ADVH]) Don't care if not use ADV.
    sram_config.tCeSetup_Ns        = 20; 					// CE# setup time [nsec] (SRAMCR1[CES]) Need tuning.
    sram_config.tCeHold_Ns         = 20;					// CE# hold time [nsec] (SRAMCR1[CEH]) Need tuning.
    sram_config.tCeInterval_Ns     = 20; 					// CE# interval time [nsec] (SRAMCR2[CEITV]) Need tuning.
    //sram_config.readHoldTime_Ns    = 20; 					// Read hold time [nsec] (SRAMCR2[RDH]) Only for SYNC mode.
    sram_config.tAddrSetup_Ns      = 20; 					// ADDR setup time [nsec] (SRAMCR1[AS]) Need tuning.
    sram_config.tAddrHold_Ns       = 20;					// ADDR hold time [nsec] (SRAMCR1[AH]) Need tuning.
    sram_config.tWeLow_Ns          = 20; 					// WE low time [nsec] (SRAMCR1[WEL]) Need tuning.
    sram_config.tWeHigh_Ns         = 20; 					// WE high time [nsec] (SRAMCR1[WEH]) Need tuning.
    sram_config.tReLow_Ns          = 20; 					// RE low time [nsec] (SRAMCR1[REL]) Need tuning.
    sram_config.tReHigh_Ns         = 20;					// RE high time [nsec] (SRAMCR1[REH]) Need tuning.
    sram_config.tTurnAround_Ns     = 20; 					// Turnaround time [nsec] (SRAMCR2[TA]) Need tuning but don't set it to be 0.
    sram_config.tAddr2WriteHold_Ns = 20;					// Address to write data hold time [nsec] (SRAMCR2[AWDH]) Need tuning.
    sram_config.tWriteSetup_Ns     = 20; 					// Write Data setup time [nsec] (SRAMCR2[WDS]) Only for SYNC mode.
    sram_config.tWriteHold_Ns      = 20; 					// Write Data hold time [nsec] (SRAMCR2[WDH]) Only for SYNC mode.
    sram_config.latencyCount       = 20; 					// Latency count [nsec] (SRAMCR2[LC]) Only for SYNC mode.
    sram_config.readCycle          = 20; 					// read time [nsec] (SRAMCR2[RD]) Only for SYNC mode.
    //sram_config.delayChain         = 20; 					// typically not used in SRAM. (DCCR [SRAMXVAL], DCCR [SRAMXEN], DCCR [SRAM0VAL], DCCR [SRAM0EN])

    return SEMC_ConfigureSRAM(SEMC, &amp;amp;sram_config, clockFrq);
}

#if defined(CACHE_MAINTAIN) &amp;amp;&amp;amp; CACHE_MAINTAIN
#include "fsl_cache.h"
#endif

/*!
 * @brief Main function
 */
int main(void)
{
    /* Hardware initialize. */
    BOARD_ConfigMPU();
    BOARD_InitBootPins();
    BOARD_InitBootClocks();

    CLOCK_InitSysPfd(kCLOCK_Pfd2, 29);
    /* Set semc clock to 163.86 MHz */
    CLOCK_SetMux(kCLOCK_SemcMux, 1);
    CLOCK_SetDiv(kCLOCK_SemcDiv, 1);
    BOARD_InitDebugConsole();

    if (BOARD_InitSRAM() != kStatus_Success)
    {
        PRINTF("\r\n SEMC SRAM Init Failed\r\n");
    }

    SEMC_SRAMReadWrite32Bit();

}

void SEMC_SRAMReadWrite32Bit(void)
{
    uint32_t index;
    uint32_t datalen = SEMC_EXAMPLE_DATALEN;
    uint32_t *sram  = (uint32_t *)EXAMPLE_SEMC_START_ADDRESS; /* SDRAM start address. */
    bool result      = true;

    PRINTF("\r\n SEMC SDRAM Memory 32 bit Write Start, Start Address 0x%x, Data Length %d !\r\n", sram, datalen);
    /* Prepare data and write to SDRAM. */
    for (index = 0; index &amp;lt; datalen; index++)
    {
        sram_writeBuffer[index] = index;
        sram[index]             = sram_writeBuffer[index];
    }

    PRINTF("\r\n SEMC SDRAM Read 32 bit Data Start, Start Address 0x%x, Data Length %d !\r\n", sram, datalen);

#if defined(CACHE_MAINTAIN) &amp;amp;&amp;amp; CACHE_MAINTAIN
    DCACHE_InvalidateByRange(EXAMPLE_SEMC_START_ADDRESS, 4U * SEMC_EXAMPLE_DATALEN);
#endif

    for (index = 0; index &amp;lt; datalen; index++)
    {
    	sram_readBuffer[index] = sram[index];
    }

    PRINTF("\r\n SEMC SDRAM 32 bit Data Write and Read Compare Start!\r\n");
    /* Compare the two buffers. */
    while (datalen--)
    {
        if (sram_writeBuffer[datalen] != sram_readBuffer[datalen])
        {
            result = false;
            break;
        }
    }

    if (!result)
    {
        PRINTF("\r\n SEMC SRAM 32 bit Data Write and Read Compare Failed!\r\n");
    }
    else
    {
        PRINTF("\r\n SEMC SRAM 32 bit Data Write and Read Compare Succeed!\r\n");
    }
}&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 22 Mar 2023 13:40:47 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/IMXRT1064-External-SRAM-Usage/m-p/1619867#M24216</guid>
      <dc:creator>Lukas_Frank</dc:creator>
      <dc:date>2023-03-22T13:40:47Z</dc:date>
    </item>
    <item>
      <title>Re: IMXRT1064 External SRAM Usage</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/IMXRT1064-External-SRAM-Usage/m-p/1621293#M24246</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;Please make sure external SRAM base address is different with SDRAM setting (SEMC BR0 register BA value different with SEMC BR6 BA value).&lt;/P&gt;
&lt;P&gt;Could you please provide the SRAM device related schematics for double check?&lt;/P&gt;
&lt;P&gt;best regards,&lt;/P&gt;
&lt;P&gt;Mike&lt;/P&gt;</description>
      <pubDate>Fri, 24 Mar 2023 02:41:45 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/IMXRT1064-External-SRAM-Usage/m-p/1621293#M24246</guid>
      <dc:creator>Hui_Ma</dc:creator>
      <dc:date>2023-03-24T02:41:45Z</dc:date>
    </item>
    <item>
      <title>Re: IMXRT1064 External SRAM Usage</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/IMXRT1064-External-SRAM-Usage/m-p/1623135#M24288</link>
      <description>&lt;P&gt;Hi Dear&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/14969"&gt;@Hui_Ma&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;First of all, I have a long answer and thank you for your patience. I really need SRAM usage for my&amp;nbsp; startup's mass production.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I set SRAM base address as 0x80000000. You are right. I will share the schematics when my colleague forward it.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I find two problem related to my issue.&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;STRONG&gt;First&lt;/STRONG&gt; is in my Board_Init during setting clock configurations. I am setting pinmux as below line for clock:&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="c"&gt;IOMUXC_SetPinMux(IOMUXC_GPIO_EMC_26_SEMC_CLK, 0U);&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;But I should use SEMC_CLKX0 or CLKX1 according to Table 25-6 in Reference Manual (RT1064).&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;STRONG&gt;Question 1&lt;/STRONG&gt;: According to this table I will fail when I use "IOMUXC_GPIO_EMC_26_SEMC_CLK".&amp;nbsp;Is that true?&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Lukas_Frank_5-1679988636709.png" style="width: 999px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/216543i6DC7FA93309524A7/image-size/large?v=v2&amp;amp;px=999" role="button" title="Lukas_Frank_5-1679988636709.png" alt="Lukas_Frank_5-1679988636709.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;STRONG&gt;Second&lt;/STRONG&gt; problem is in my card. I am using GPIO_EMC_26 pin for SRAM CLK.&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;STRONG&gt;Question 2 :&lt;/STRONG&gt; Which physical pin should I use for RT1064 is there an alternative for SEMC_CLK (GPIO_EMC26). I can't find SEMC_CLKX0 (Not Found in RM) and SEMC_CLKX1 (Not Found in RM) ? There is physical pins &lt;STRONG&gt;for RT1170 SRAM Usage&lt;/STRONG&gt; in below figure for the clocks sequentially GPIO_EMC_B2_19 and&amp;nbsp;GPIO_EMC_B2_20. But there is no physical pins for RT1064. I compare my Board_Init and the officials example's (&lt;A title="https://community.nxp.com/t5/i-MX-RT-Knowledge-Base/How-to-configure-SRAM-in-SEMC-modules-for-RT-devices/ta-p/1559581" href="https://community.nxp.com/t5/i-MX-RT-Knowledge-Base/How-to-configure-SRAM-in-SEMC-modules-for-RT-devices/ta-p/1559581" target="_self"&gt;RT1170 SRAM Example&lt;/A&gt;) Board_Init, I have also attached them.&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Lukas_Frank_1-1679987962601.png" style="width: 999px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/216538iFFF21DEEDCB6E7E7/image-size/large?v=v2&amp;amp;px=999" role="button" title="Lukas_Frank_1-1679987962601.png" alt="Lukas_Frank_1-1679987962601.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Lukas_Frank_6-1679988996867.png" style="width: 999px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/216548i554450FF336D5A06/image-size/large?v=v2&amp;amp;px=999" role="button" title="Lukas_Frank_6-1679988996867.png" alt="Lukas_Frank_6-1679988996867.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;STRONG&gt;Question 3:&amp;nbsp;&lt;/STRONG&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;Could you please help me about the second parameter for IOMUXC_SetPinConfig method ? In the official RT1170 example second parameter is set as "0x08U" but I don't know where to look it for RT1064. Below is what I mention in this question.&lt;/P&gt;&lt;P&gt;IOMUXC_SetPinMux(IOMUXC_GPIO_EMC_26_SEMC_CLK, 0U);&lt;BR /&gt;//IOMUXC_SetPinMux(IOMUXC_GPIO_SD_B0_02_SEMC_CLK5, 0U);&lt;BR /&gt;//IOMUXC_SetPinConfig(IOMUXC_GPIO_SD_B0_02_SEMC_CLK5, this is set "0x08U" for 1170. what should I set it for 1064);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;As a summary&amp;nbsp;I don't both&amp;nbsp;have reference value for&amp;nbsp; and also example for RT1064. How can I use SRAM in these conditions?&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks and Regards.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 28 Mar 2023 07:56:24 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/IMXRT1064-External-SRAM-Usage/m-p/1623135#M24288</guid>
      <dc:creator>Lukas_Frank</dc:creator>
      <dc:date>2023-03-28T07:56:24Z</dc:date>
    </item>
    <item>
      <title>Re: IMXRT1064 External SRAM Usage</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/IMXRT1064-External-SRAM-Usage/m-p/1623685#M24309</link>
      <description>&lt;P&gt;Hi Lukas,&lt;/P&gt;
&lt;P&gt;You are right. When SEMC connects with external SRAM device, it needs to use SEMC_CLKX0 or SEMC_CLKX1.&lt;BR /&gt;There with below note about SEMC_CLKX0 or SEMC_CLKX1 related pad:&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Hui_Ma_0-1680052301570.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/216707i7C4C3DF46F102D24/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Hui_Ma_0-1680052301570.png" alt="Hui_Ma_0-1680052301570.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;SEMC_CLK5 related PAD is&amp;nbsp; GPIO_EMC_40 or GPIO_SD_B0_02 with MUX_MODE ALT9:&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Hui_Ma_1-1680052434493.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/216708i1653ED25736AC9E6/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Hui_Ma_1-1680052434493.png" alt="Hui_Ma_1-1680052434493.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;or&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Hui_Ma_2-1680052659017.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/216712i0DAC785B50E278A5/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Hui_Ma_2-1680052659017.png" alt="Hui_Ma_2-1680052659017.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;SEMC_CLK6 related pad is GPIO_AD_B0_11 or GPIO_SD_B0_03, both MUX_MODE is ALT9&lt;/P&gt;
&lt;P&gt;Just use SEMC_CLKX0 as an example, related code would be:&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;IOMUXC_SetPinMux(IOMUXC_GPIO_EMC_40_SEMC_CLK5, 0U);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;The last parameter Software input on field, which default valie is 0x0.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;More detailed info, please refer IOMUXC_SetPinMux() funtion in &amp;lt;fsl_iomuxc.h&amp;gt; file.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Wish it helps.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Mike&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 29 Mar 2023 01:27:57 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/IMXRT1064-External-SRAM-Usage/m-p/1623685#M24309</guid>
      <dc:creator>Hui_Ma</dc:creator>
      <dc:date>2023-03-29T01:27:57Z</dc:date>
    </item>
    <item>
      <title>Re: IMXRT1064 External SRAM Usage</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/IMXRT1064-External-SRAM-Usage/m-p/1626591#M24399</link>
      <description>&lt;P&gt;Hi Dear&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/14969"&gt;@Hui_Ma&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;My Question 1:&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;Actually, I look &lt;SPAN&gt;IOMUXC_SetPinMux function&amp;nbsp;&lt;/SPAN&gt;for details. But, there is no reference values for any specific functionality even if the default values are 0x0. For example, why below line uses "0x110F9U" ? Can I use 0x0 for everything which will I newly configure?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="c"&gt;IOMUXC_SetPinConfig(IOMUXC_GPIO_EMC_40_SEMC_RDY, 0x0110F9U); &lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;My Question 2:&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;I have additional blurry points for configuring my SRAM.&amp;nbsp;You said about related PADs for&amp;nbsp;&lt;SPAN&gt;SEMC_CLK5 and&amp;nbsp;SEMC_CLK6 in your answer.&lt;/SPAN&gt;&amp;nbsp;(SEMC_CLKX0 and SEMC_CLKX1). I can't use SYNC mode due to some bugs in code. There is no definition for SEMC_SRAMCR4_SYNCEN_MASK in code. This is why I can't use SYNC Mode. And it is not fixed when I configure by "Config Tool". When I select SYNC mode option "Config Tool" is not recommending any code change related about it. Is this not the real purpose of "Config Tool" ? I find the corresponding definitions&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;For &lt;STRONG&gt;IMXRT1170:&lt;/STRONG&gt;&lt;/P&gt;&lt;LI-CODE lang="c"&gt;#define SEMC_SRAMCR4_SYNCEN_MASK                 (0x2U)
#define SEMC_SRAMCR4_SYNCEN_SHIFT                (1U)
/*! SYNCEN - Select SRAM controller mode.
 *  0b0..ASYNC mode is enabled.
 *  0b1..SYNC mode is enabled.
 */
#define SEMC_SRAMCR4_SYNCEN(x)                   (((uint32_t)(((uint32_t)(x)) &amp;lt;&amp;lt; SEMC_SRAMCR4_SYNCEN_SHIFT)) &amp;amp; SEMC_SRAMCR4_SYNCEN_MASK)&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;For &lt;STRONG&gt;IMXRT1064:&lt;/STRONG&gt;&lt;/P&gt;&lt;LI-CODE lang="c"&gt;#define SEMC_SRAMCR0_SYNCEN_MASK                 (0x2U)
#define SEMC_SRAMCR0_SYNCEN_SHIFT                (1U)
/*! SYNCEN - Synchronous Mode Enable
 *  0b0..Asynchronous mode is enabled.
 *  0b1..Synchronous mode is enabled. Only fixed latency mode is supported.
 */
#define SEMC_SRAMCR0_SYNCEN(x)                   (((uint32_t)(((uint32_t)(x)) &amp;lt;&amp;lt; SEMC_SRAMCR0_SYNCEN_SHIFT)) &amp;amp; SEMC_SRAMCR0_SYNCEN_MASK)&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;And there are too many points which requires change (&lt;STRONG&gt;*prefix*&lt;/STRONG&gt;_SRAMCR4_&lt;STRONG&gt;*postfix*&lt;/STRONG&gt; to &lt;STRONG&gt;*prefix*&lt;/STRONG&gt;_SRAMCR0_&lt;STRONG&gt;*postfix*&lt;/STRONG&gt; ) to use SYNC mode. Why these definition based differences is not suitable for IMXRT1064 and why they are not configuring by Config Tools when I set SYNC Mode option?&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;fsl_semc.c&amp;nbsp;&amp;nbsp;&lt;/STRONG&gt;&lt;STRONG&gt;(Original for IMXRT1064) :&lt;/STRONG&gt;&lt;/P&gt;&lt;LI-CODE lang="c"&gt;        else
#endif /* FSL_FEATURE_SEMC_SUPPORT_SRAM_COUNT */
        {
            tempCtrlVal = SEMC_SRAMCR0_PS(config-&amp;gt;portSize) |
#if defined(SEMC_SRAMCR4_SYNCEN_MASK) &amp;amp;&amp;amp; (SEMC_SRAMCR4_SYNCEN_MASK)
                          SEMC_SRAMCR0_SYNCEN(config-&amp;gt;syncMode) |
#endif /* SEMC_SRAMCR4_SYNCEN_MASK */
                          SEMC_SRAMCR0_BL(config-&amp;gt;burstLen) | SEMC_SRAMCR0_AM(config-&amp;gt;addrMode) |
                          SEMC_SRAMCR0_ADVP(config-&amp;gt;advActivePolarity) |
#if defined(SEMC_SRAMCR4_ADVH_MASK) &amp;amp;&amp;amp; (SEMC_SRAMCR4_ADVH_MASK)
                          SEMC_SRAMCR4_ADVH(config-&amp;gt;advLevelCtrl) |
#endif /* SEMC_SRAMCR4_ADVH_MASK */
                          SEMC_SRAMCR0_COL_MASK;
        }&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;fsl_semc.c&amp;nbsp;&amp;nbsp;&lt;/STRONG&gt;&lt;STRONG&gt;(Configured by me for IMXRT1064) :&lt;/STRONG&gt;&lt;/P&gt;&lt;LI-CODE lang="c"&gt;        else
#endif /* FSL_FEATURE_SEMC_SUPPORT_SRAM_COUNT */
        {
            tempCtrlVal = SEMC_SRAMCR0_PS(config-&amp;gt;portSize) |
//#if defined(SEMC_SRAMCR4_SYNCEN_MASK) &amp;amp;&amp;amp; (SEMC_SRAMCR4_SYNCEN_MASK)
#if defined(SEMC_SRAMCR0_SYNCEN_MASK) &amp;amp;&amp;amp; (SEMC_SRAMCR0_SYNCEN_MASK)
                          SEMC_SRAMCR0_SYNCEN(config-&amp;gt;syncMode) |
#endif /* SEMC_SRAMCR0_SYNCEN_MASK */
//#endif /* SEMC_SRAMCR4_SYNCEN_MASK */
                          SEMC_SRAMCR0_BL(config-&amp;gt;burstLen) | SEMC_SRAMCR0_AM(config-&amp;gt;addrMode) |
                          SEMC_SRAMCR0_ADVP(config-&amp;gt;advActivePolarity) |
#if defined(SEMC_SRAMCR4_ADVH_MASK) &amp;amp;&amp;amp; (SEMC_SRAMCR4_ADVH_MASK)
                          SEMC_SRAMCR4_ADVH(config-&amp;gt;advLevelCtrl) |
#endif /* SEMC_SRAMCR4_ADVH_MASK */
                          SEMC_SRAMCR0_COL_MASK;
        }&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I just want to ask you: What is the reason this bug is exist even I have&amp;nbsp;&lt;STRONG&gt;"fsl_semc.c" &lt;/STRONG&gt;which&amp;nbsp;is belong to &lt;STRONG&gt;IMXRT1064 SDK.&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am asking detailly because I don't want to fluctuate in configuration phase.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks and Regards.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 03 Apr 2023 06:15:21 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/IMXRT1064-External-SRAM-Usage/m-p/1626591#M24399</guid>
      <dc:creator>Lukas_Frank</dc:creator>
      <dc:date>2023-04-03T06:15:21Z</dc:date>
    </item>
    <item>
      <title>Re: IMXRT1064 External SRAM Usage</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/IMXRT1064-External-SRAM-Usage/m-p/1627196#M24416</link>
      <description>&lt;P&gt;Hi, Lukas,&lt;/P&gt;
&lt;P&gt;Answer your Q1:&lt;/P&gt;
&lt;P&gt;There are two different SetPin functions with below definition: IOMUXC_SetPinMux() &amp;amp; IOMUXC_SetPinConfig()&lt;/P&gt;
&lt;LI-CODE lang="markup"&gt;/*!
 * @brief Sets the IOMUXC pin mux mode.
 * @note The first five parameters can be filled with the pin function ID macros.
 *
 * This is an example to set the PTA6 as the lpuart0_tx:
 * &lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/157021"&gt;@code&lt;/a&gt;
 * IOMUXC_SetPinMux(IOMUXC_PTA6_LPUART0_TX, 0);
 * @endcode
 *
 * This is an example to set the PTA0 as GPIOA0:
 * &lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/157021"&gt;@code&lt;/a&gt;
 * IOMUXC_SetPinMux(IOMUXC_PTA0_GPIOA0, 0);
 * @endcode
 *
 * &lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/197964"&gt;@Param&lt;/a&gt; muxRegister  The pin mux register.
 * &lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/197964"&gt;@Param&lt;/a&gt; muxMode      The pin mux mode.
 * &lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/197964"&gt;@Param&lt;/a&gt; inputRegister The select input register.
 * &lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/197964"&gt;@Param&lt;/a&gt; inputDaisy   The input daisy.
 * &lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/197964"&gt;@Param&lt;/a&gt; configRegister  The config register.
 * &lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/197964"&gt;@Param&lt;/a&gt; inputOnfield   Software input on field.
 */
static inline void IOMUXC_SetPinMux(uint32_t muxRegister,
                                    uint32_t muxMode,
                                    uint32_t inputRegister,
                                    uint32_t inputDaisy,
                                    uint32_t configRegister,
                                    uint32_t inputOnfield)
{
    *((volatile uint32_t *)muxRegister) =
        IOMUXC_SW_MUX_CTL_PAD_MUX_MODE(muxMode) | IOMUXC_SW_MUX_CTL_PAD_SION(inputOnfield);

    if (inputRegister != 0UL)
    {
        *((volatile uint32_t *)inputRegister) = inputDaisy;
    }
}&lt;/LI-CODE&gt;
&lt;P&gt;&amp;amp;&lt;/P&gt;
&lt;LI-CODE lang="c"&gt;/*!
 * @brief Sets the IOMUXC pin configuration.
 * @note The previous five parameters can be filled with the pin function ID macros.
 *
 * This is an example to set pin configuration for IOMUXC_PTA3_LPI2C0_SCLS:
 * &lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/157021"&gt;@code&lt;/a&gt;
 * IOMUXC_SetPinConfig(IOMUXC_PTA3_LPI2C0_SCLS,IOMUXC_SW_PAD_CTL_PAD_PUS_MASK|IOMUXC_SW_PAD_CTL_PAD_PUS(2U))
 * @endcode
 *
 * &lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/197964"&gt;@Param&lt;/a&gt; muxRegister  The pin mux register.
 * &lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/197964"&gt;@Param&lt;/a&gt; muxMode      The pin mux mode.
 * &lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/197964"&gt;@Param&lt;/a&gt; inputRegister The select input register.
 * &lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/197964"&gt;@Param&lt;/a&gt; inputDaisy   The input daisy.
 * &lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/197964"&gt;@Param&lt;/a&gt; configRegister  The config register.
 * &lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/197964"&gt;@Param&lt;/a&gt; configValue   The pin config value.
 */
static inline void IOMUXC_SetPinConfig(uint32_t muxRegister,
                                       uint32_t muxMode,
                                       uint32_t inputRegister,
                                       uint32_t inputDaisy,
                                       uint32_t configRegister,
                                       uint32_t configValue)
{
    if (configRegister != 0UL)
    {
        *((volatile uint32_t *)configRegister) = configValue;
    }
}&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Answer your question 2:&lt;/P&gt;
&lt;P&gt;Sorry for our SDK software code error, the SYNCEN bit was located at SRAMCR0 register.&lt;/P&gt;
&lt;P&gt;I will report this issue and our software team will fix it at new released MCUXpresso SDK code.&lt;/P&gt;
&lt;P&gt;Sorry again for that may bring any inconvenience to you.&lt;/P&gt;
&lt;P&gt;best regards,&lt;/P&gt;
&lt;P&gt;Mike&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 04 Apr 2023 01:50:28 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/IMXRT1064-External-SRAM-Usage/m-p/1627196#M24416</guid>
      <dc:creator>Hui_Ma</dc:creator>
      <dc:date>2023-04-04T01:50:28Z</dc:date>
    </item>
    <item>
      <title>Re: IMXRT1064 External SRAM Usage</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/IMXRT1064-External-SRAM-Usage/m-p/1628058#M24441</link>
      <description>&lt;P&gt;Hi Dear&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/14969"&gt;@Hui_Ma&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;For the Question 1:&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;You are right, there are two function. But I just want to ask again about my curiousity related to the reference values. Why below line uses "0x110F9U" ? What is the meaning of value "0x110F9U" ? How can I achieve this type of reference values while using "SetPinConfig" function. What are the reference values for each pin's MuxMode ? Will it require set it manually each time?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;For the Question 2:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Can I configure SYNC mode by manually until new SDK released?&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Thanks and Regards.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 05 Apr 2023 06:11:31 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/IMXRT1064-External-SRAM-Usage/m-p/1628058#M24441</guid>
      <dc:creator>Lukas_Frank</dc:creator>
      <dc:date>2023-04-05T06:11:31Z</dc:date>
    </item>
    <item>
      <title>Re: IMXRT1064 External SRAM Usage</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/IMXRT1064-External-SRAM-Usage/m-p/1628581#M24454</link>
      <description>&lt;P&gt;Hi Lukas,&lt;/P&gt;
&lt;P&gt;1&amp;gt;&amp;nbsp;&lt;SPAN&gt;Why below line uses "0x110F9U" ? What is the meaning of value "0x110F9U" ?&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;TS: Related value was loaded into related pad control register, For example: Address 0x401F_8250 IOMUXC_SW_PAD_CTL_PAD_GPIO_EMC_19&lt;/P&gt;
&lt;P&gt;This register will set Pad Pull-up/down, Hysteresis, Open Drain, Speed, Driver Strength and Slew rate.&lt;/P&gt;
&lt;P&gt;Related register bit info could be found at RT1064 reference manual chapter&amp;nbsp;11.6.144.&lt;/P&gt;
&lt;P&gt;About why need to set pad config value with&amp;nbsp;&lt;SPAN&gt;"0x110F9U",&amp;nbsp; that was based on pad digital function.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Customer also can use &lt;A href="https://www.nxp.com/design/software/development-software/mcuxpresso-config-tools-pins-clocks-and-peripherals:MCUXpresso-Config-Tools" target="_self"&gt;MCUXpresso Configuration Tools&lt;/A&gt; (Pins) to batch handle pads control configuration.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Hui_Ma_0-1680745665066.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/217935i5867AF0254D56DA2/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Hui_Ma_0-1680745665066.png" alt="Hui_Ma_0-1680745665066.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;In general, please use NXP SDK demo provided pad cofiguration as a reference.&lt;/P&gt;
&lt;P&gt;2&amp;gt; The SDK software bug was reported, while there still take time for software team to handle and fix at new released SDK software. The interval could be a few months. I think customer can continue project design without waiting for new version SDK released. Thank you for the understanding.&lt;/P&gt;
&lt;P&gt;Best regards,&lt;/P&gt;
&lt;P&gt;Mike&lt;/P&gt;</description>
      <pubDate>Thu, 06 Apr 2023 01:51:04 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/IMXRT1064-External-SRAM-Usage/m-p/1628581#M24454</guid>
      <dc:creator>Hui_Ma</dc:creator>
      <dc:date>2023-04-06T01:51:04Z</dc:date>
    </item>
    <item>
      <title>Re: IMXRT1064 External SRAM Usage</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/IMXRT1064-External-SRAM-Usage/m-p/1628901#M24472</link>
      <description>&lt;P&gt;Hi Dear&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/14969"&gt;@Hui_Ma&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you for all your helps. I just want to add something related to SDK Update. I have figure out more about errors in "&lt;STRONG&gt;fsl_semc.c&lt;/STRONG&gt;" file.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;STRONG&gt;WAITEN&lt;/STRONG&gt; and &lt;STRONG&gt;RDH &lt;/STRONG&gt;register regions have similar issues in the code as we can see below pictures. WAITEN has no register set property in IMXRT1064 but it required definition in the code &lt;STRONG&gt;--&amp;gt;&lt;/STRONG&gt;&lt;STRONG&gt;[1]&lt;/STRONG&gt;. In addition, &lt;STRONG&gt;RDH&lt;/STRONG&gt; is required configuration for &lt;STRONG&gt;SYNC&lt;/STRONG&gt; mode usage but it is connected to "&lt;STRONG&gt;fsl_semc.c&lt;/STRONG&gt;" by &lt;STRONG&gt;SEMC_SRAMCR6_RDH &lt;/STRONG&gt;although it is the register element of &lt;STRONG&gt;CR2 --&amp;gt;[2]. &lt;/STRONG&gt;Also, I don't know whether I should enable or not enable &lt;STRONG&gt;FSL_FEATURE_SEMC_HAS_SRAM_RDH_TIME --&amp;gt;[3]. &lt;/STRONG&gt;It can be more missing point which I can't realized now.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Has IMXRT1064 RDH feature for SEMC?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks and Regards.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;-------------------------------[1]-------------------------------&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Lukas_Frank_4-1680768949515.png" style="width: 999px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/218040i601A01E516C09002/image-size/large?v=v2&amp;amp;px=999" role="button" title="Lukas_Frank_4-1680768949515.png" alt="Lukas_Frank_4-1680768949515.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;-------------------------------[2]-------------------------------&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Lukas_Frank_3-1680768920929.png" style="width: 999px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/218039iCE18C15DC05E6685/image-size/large?v=v2&amp;amp;px=999" role="button" title="Lukas_Frank_3-1680768920929.png" alt="Lukas_Frank_3-1680768920929.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;-------------------------------[3]-------------------------------&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Lukas_Frank_2-1680768914568.png" style="width: 999px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/218038i1E20AE061FF28379/image-size/large?v=v2&amp;amp;px=999" role="button" title="Lukas_Frank_2-1680768914568.png" alt="Lukas_Frank_2-1680768914568.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 06 Apr 2023 08:19:18 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/IMXRT1064-External-SRAM-Usage/m-p/1628901#M24472</guid>
      <dc:creator>Lukas_Frank</dc:creator>
      <dc:date>2023-04-06T08:19:18Z</dc:date>
    </item>
    <item>
      <title>Re: IMXRT1064 External SRAM Usage</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/IMXRT1064-External-SRAM-Usage/m-p/1630282#M24503</link>
      <description>&lt;P&gt;Hi Lukas,&lt;/P&gt;&lt;P&gt;First of all, sorry for the later reply.&lt;/P&gt;&lt;P&gt;RT1064 SEMC module registers do not have WAITEN bit, which was belongs to eFlexPWM modules.&lt;BR /&gt;&amp;lt;fsl_semc.c&amp;gt; driver file was a general SEMC moudle driver code, which was definied to suitable for SEMC module IP with different versions.&lt;/P&gt;&lt;P&gt;About SEMC module SRAM Control Register 2 (SRAMCR2) [RDH] bit and &amp;lt;MIMXRT1064_features.h&amp;gt; file below marcro definition, I will check with RT product team for double confirm. I will let you know when there with any feedback:&lt;/P&gt;&lt;P&gt;/* @brief Has read hold time feature (register bit field SRAMCR6[RDH]). */&lt;BR /&gt;#define FSL_FEATURE_SEMC_HAS_SRAM_RDH_TIME (0)&lt;/P&gt;&lt;P&gt;best regards,&lt;/P&gt;&lt;P&gt;Mike&lt;/P&gt;</description>
      <pubDate>Mon, 10 Apr 2023 05:36:49 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/IMXRT1064-External-SRAM-Usage/m-p/1630282#M24503</guid>
      <dc:creator>Hui_Ma</dc:creator>
      <dc:date>2023-04-10T05:36:49Z</dc:date>
    </item>
  </channel>
</rss>

