<?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 LPC4370 DMA SDRAM in LPC Microcontrollers</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC4370-DMA-SDRAM/m-p/639128#M25273</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN style="font-size: 15px;"&gt;&lt;STRONG&gt;I use the EMC of LPC4370 to transfer data to SDRAM, it is right when I write and read the data using for loop.&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;piAddr = (uint32_t *)SDRAM_ADDR_BASE + 0;&lt;BR /&gt; for (i = 0; i &amp;lt; 12 * 1024 * 1024; i++) {&lt;BR /&gt; *piAddr++ = EMCData; &lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;piAddr = (uint32_t *)SDRAM_ADDR_BASE + 0;&lt;BR /&gt; &lt;BR /&gt; for (i = 0; i &amp;lt; 12 * 1024 * 1024; i++) {&amp;nbsp;&lt;BR /&gt; EMCtemp = *piAddr++;&lt;BR /&gt; if (EMCtemp != EMCData) { &lt;BR /&gt; SPIDataToSend = 1 ; &lt;BR /&gt; }&lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;But I need to transfer the data from HSADC to SDRAM through DMA, I found the write operation failed.&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;Can some one help me with the problem?&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Below&amp;nbsp;is the config for the SDRAM&amp;amp;DMA, &amp;nbsp;the&amp;nbsp;burst size of DMA is 8.&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void DMALLISET(uint16_t DataTotal,unsigned char SingleDMA)&lt;BR /&gt;{ &lt;BR /&gt; DMA_LLI_Struct[0].SrcAddr = (uint32_t)&amp;amp;LPC_ADCHS-&amp;gt;FIFO_OUTPUT[0] ;&lt;BR /&gt; DMA_LLI_Struct[0].DstAddr = (uint32_t )SDRAM_ADDR_BASE ;&lt;BR /&gt; DMA_LLI_Struct[0].NextLLI = (uint32_t)&amp;amp;DMA_LLI_Struct[1];&lt;BR /&gt; DMA_LLI_Struct[0].Control = (GPDMA_DMACCxControl_TransferSize(DataTotal)|GPDMA_DMACCxControl_SBSize(8)|GPDMA_DMACCxControl_DBSize(8)\&lt;BR /&gt; |GPDMA_DMACCxControl_SWidth(GPDMA_WIDTH_WORD)|GPDMA_DMACCxControl_DWidth(GPDMA_WIDTH_WORD)\&lt;BR /&gt; |GPDMA_DMACCxControl_SrcTransUseAHBMaster1|GPDMA_DMACCxControl_DI);&lt;/P&gt;&lt;P&gt;&lt;BR /&gt; DMA_LLI_Struct[1].SrcAddr = (uint32_t)&amp;amp;LPC_ADCHS-&amp;gt;FIFO_OUTPUT[0] ;&lt;BR /&gt; DMA_LLI_Struct[1].DstAddr = (uint32_t)(SDRAM_ADDR_BASE+DataTotal) ;&lt;BR /&gt; DMA_LLI_Struct[1].NextLLI = (uint32_t)&amp;amp;DMA_LLI_Struct[2];&lt;BR /&gt; DMA_LLI_Struct[1].Control = (GPDMA_DMACCxControl_TransferSize(DataTotal)|GPDMA_DMACCxControl_SBSize(8)|GPDMA_DMACCxControl_DBSize(8)\&lt;BR /&gt; |GPDMA_DMACCxControl_SWidth(GPDMA_WIDTH_WORD)|GPDMA_DMACCxControl_DWidth(GPDMA_WIDTH_WORD)\&lt;BR /&gt; |GPDMA_DMACCxControl_SrcTransUseAHBMaster1|GPDMA_DMACCxControl_DI);&lt;/P&gt;&lt;P&gt;&lt;BR /&gt; DMA_LLI_Struct[2].SrcAddr = (uint32_t)&amp;amp;LPC_ADCHS-&amp;gt;FIFO_OUTPUT[0] ;&lt;BR /&gt; DMA_LLI_Struct[2].DstAddr = (uint32_t)(SDRAM_ADDR_BASE+DataTotal*2) ;&lt;BR /&gt; DMA_LLI_Struct[2].NextLLI = (uint32_t)&amp;amp;DMA_LLI_Struct[3];&lt;BR /&gt; DMA_LLI_Struct[2].Control = (GPDMA_DMACCxControl_TransferSize(DataTotal)|GPDMA_DMACCxControl_SBSize(8)|GPDMA_DMACCxControl_DBSize(8)\&lt;BR /&gt; |GPDMA_DMACCxControl_SWidth(GPDMA_WIDTH_WORD)|GPDMA_DMACCxControl_DWidth(GPDMA_WIDTH_WORD)\&lt;BR /&gt; |GPDMA_DMACCxControl_SrcTransUseAHBMaster1|GPDMA_DMACCxControl_DI);&lt;/P&gt;&lt;P&gt;&lt;BR /&gt; DMA_LLI_Struct[3].SrcAddr = (uint32_t)&amp;amp;LPC_ADCHS-&amp;gt;FIFO_OUTPUT[0] ;&lt;BR /&gt; DMA_LLI_Struct[3].DstAddr = (uint32_t)(SDRAM_ADDR_BASE+DataTotal*3) ;&lt;BR /&gt; DMA_LLI_Struct[3].NextLLI = 0;&lt;BR /&gt; DMA_LLI_Struct[3].Control = (GPDMA_DMACCxControl_TransferSize(DataTotal)|GPDMA_DMACCxControl_SBSize(8)|GPDMA_DMACCxControl_DBSize(8)\&lt;BR /&gt; |GPDMA_DMACCxControl_SWidth(GPDMA_WIDTH_WORD)|GPDMA_DMACCxControl_DWidth(GPDMA_WIDTH_WORD)\&lt;BR /&gt; |GPDMA_DMACCxControl_SrcTransUseAHBMaster1|GPDMA_DMACCxControl_DI|GPDMA_DMACCxControl_I); &lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void SDRAM_Init(void) &lt;BR /&gt;{&lt;BR /&gt; uint32_t pclk, temp;&lt;BR /&gt; uint64_t tmpclk;&lt;BR /&gt;&lt;BR /&gt; scu_pinmux( 1 , 0 , MD_PLN_FAST , 2 );//A5&lt;BR /&gt; scu_pinmux( 1 , 1 , MD_PLN_FAST , 2 );//A6&lt;BR /&gt; scu_pinmux( 1 , 2 , MD_PLN_FAST , 2 );//A7&lt;BR /&gt; scu_pinmux( 1 , 6 , MD_PLN_FAST , 3 );//WE&lt;BR /&gt; scu_pinmux( 1 , 7 , MD_PLN_FAST , 3 );//D0&lt;BR /&gt; scu_pinmux( 1 , 8 , MD_PLN_FAST , 3 );//D1&lt;BR /&gt; scu_pinmux( 1 , 9 , MD_PLN_FAST , 3 );//D2&lt;BR /&gt; scu_pinmux( 1 , 10 , MD_PLN_FAST , 3 );//D3&lt;BR /&gt; scu_pinmux( 1 , 11 , MD_PLN_FAST , 3 );//D4&lt;BR /&gt; scu_pinmux( 1 , 12 , MD_PLN_FAST , 3 );//D5&lt;BR /&gt; scu_pinmux( 1 , 13 , MD_PLN_FAST , 3 );//D6&lt;BR /&gt; scu_pinmux( 1 , 14 , MD_PLN_FAST , 3 );//D7&lt;BR /&gt; scu_pinmux( 2 , 0 , MD_PLN_FAST , 2 );//A13&lt;BR /&gt; scu_pinmux( 2 , 1 , MD_PLN_FAST , 2 );//A12&lt;BR /&gt; scu_pinmux( 2 , 2 , MD_PLN_FAST , 2 );//A11&lt;BR /&gt; scu_pinmux( 2 , 6 , MD_PLN_FAST , 2 );//A10&lt;BR /&gt; scu_pinmux( 2 , 7 , MD_PLN_FAST , 3 );//A9&lt;BR /&gt; scu_pinmux( 2 , 8 , MD_PLN_FAST , 3 );//A8&lt;BR /&gt; scu_pinmux( 2 , 9 , MD_PLN_FAST , 3 );//A0&lt;BR /&gt; scu_pinmux( 2 , 10 , MD_PLN_FAST , 3 );//A1&lt;BR /&gt; scu_pinmux( 2 , 11 , MD_PLN_FAST , 3 );//A2&lt;BR /&gt; scu_pinmux( 2 , 12 , MD_PLN_FAST , 3 );//A3&lt;BR /&gt; scu_pinmux( 2 , 13 , MD_PLN_FAST , 3 );//A4&lt;BR /&gt; scu_pinmux( 5 , 0 , MD_PLN_FAST , 2 );//D12&lt;BR /&gt; scu_pinmux( 5 , 1 , MD_PLN_FAST , 2 );//D13&lt;BR /&gt; scu_pinmux( 5 , 2 , MD_PLN_FAST , 2 );//D14&lt;BR /&gt; scu_pinmux( 5 , 3 , MD_PLN_FAST , 2 );//D15&lt;BR /&gt; scu_pinmux( 5 , 4 , MD_PLN_FAST , 2 );//D8&lt;BR /&gt; scu_pinmux( 5 , 5 , MD_PLN_FAST , 2 );//D9&lt;BR /&gt; scu_pinmux( 5 , 6 , MD_PLN_FAST , 2 );//D10&lt;BR /&gt; scu_pinmux( 5 , 7 , MD_PLN_FAST , 2 );//D11&lt;BR /&gt; scu_pinmux( 6 , 4 , MD_PLN_FAST , 3 );//CAS&lt;BR /&gt; scu_pinmux( 6 , 5 , MD_PLN_FAST , 3 );//RAS&lt;BR /&gt; scu_pinmux( 6 , 8 , MD_PLN_FAST , 1 );//A14&lt;BR /&gt; scu_pinmux( 6 , 9 , MD_PLN_FAST , 3 );//DYCS0&lt;BR /&gt; scu_pinmux( 6 , 10 , MD_PLN_FAST , 3 );//DQMOUT1&lt;BR /&gt; scu_pinmux( 6 , 11 , MD_PLN_FAST , 3 );//CKEOUT0&lt;BR /&gt; scu_pinmux( 6 , 12 , MD_PLN_FAST , 3 );//DQMOUT0&lt;/P&gt;&lt;P&gt;LPC_SCU-&amp;gt;SFSCLK_0 = MD_PLN_FAST; /* Select EMC clock-out */&lt;BR /&gt; LPC_SCU-&amp;gt;SFSCLK_1 = MD_PLN_FAST;&lt;BR /&gt; LPC_SCU-&amp;gt;SFSCLK_2 = MD_PLN_FAST;&lt;BR /&gt; LPC_SCU-&amp;gt;SFSCLK_3 = MD_PLN_FAST;&lt;/P&gt;&lt;P&gt;LPC_EMC-&amp;gt;CONTROL = 0x00000001;&lt;BR /&gt; LPC_EMC-&amp;gt;CONFIG = 0x00000000;&lt;BR /&gt; LPC_EMC-&amp;gt;DYNAMICCONFIG0 = 0&amp;lt;&amp;lt;14 | 3&amp;lt;&amp;lt;9 | 1&amp;lt;&amp;lt;7; /* 64Mb, 4Mx16, 4 banks, row=12, column=8 */&lt;/P&gt;&lt;P&gt;pclk = CGU_GetPCLKFrequency(CGU_PERIPHERAL_M4CORE);&lt;/P&gt;&lt;P&gt;LPC_EMC-&amp;gt;DYNAMICRASCAS0 = 0x00000303; //0x00000303; /* 1 RAS, 3 CAS latency */&lt;BR /&gt; LPC_EMC-&amp;gt;DYNAMICREADCONFIG = 0x00000001; /* Command delayed strategy, using EMCCLKDELAY */&lt;/P&gt;&lt;P&gt;LPC_EMC-&amp;gt;DYNAMICRP = NS2CLK(pclk, 20);&lt;BR /&gt; LPC_EMC-&amp;gt;DYNAMICRAS = NS2CLK(pclk, 42);&lt;BR /&gt; LPC_EMC-&amp;gt;DYNAMICSREX = NS2CLK(pclk, 63);&lt;BR /&gt; LPC_EMC-&amp;gt;DYNAMICAPR = 0x00000005;&lt;BR /&gt; LPC_EMC-&amp;gt;DYNAMICDAL = 0x00000005;&lt;BR /&gt; LPC_EMC-&amp;gt;DYNAMICWR = 2;&lt;BR /&gt; LPC_EMC-&amp;gt;DYNAMICRC = NS2CLK(pclk, 63);&lt;BR /&gt; LPC_EMC-&amp;gt;DYNAMICRFC = NS2CLK(pclk, 63);&lt;BR /&gt; LPC_EMC-&amp;gt;DYNAMICXSR = NS2CLK(pclk, 63);&lt;BR /&gt; LPC_EMC-&amp;gt;DYNAMICRRD = NS2CLK(pclk, 14);&lt;BR /&gt; LPC_EMC-&amp;gt;DYNAMICMRD = 0x00000002;&lt;/P&gt;&lt;P&gt;Delay_us(100); /* wait 100ms */&lt;BR /&gt; LPC_EMC-&amp;gt;DYNAMICCONTROL = 0x00000183; /* Issue NOP command */&lt;/P&gt;&lt;P&gt;Delay_us(200); /* wait 200ms */&lt;BR /&gt; LPC_EMC-&amp;gt;DYNAMICCONTROL = 0x00000103; /* Issue PALL command */&lt;/P&gt;&lt;P&gt;LPC_EMC-&amp;gt;DYNAMICREFRESH = EMC_SDRAM_REFRESH(pclk,20); /* ( n * 16 ) -&amp;gt; 32 clock cycles */&lt;/P&gt;&lt;P&gt;Delay_us(200); /* wait 200ms */&lt;/P&gt;&lt;P&gt;tmpclk = (uint64_t)15625*(uint64_t)pclk/1000000000/16; //15625&lt;BR /&gt; LPC_EMC-&amp;gt;DYNAMICREFRESH = tmpclk; /* ( n * 16 ) -&amp;gt; 736 clock cycles -&amp;gt; 15.330uS at 48MHz &amp;lt;= 15.625uS ( 64ms / 4096 row ) */&lt;/P&gt;&lt;P&gt;LPC_EMC-&amp;gt;DYNAMICCONTROL = 0x00000083; /* Issue MODE command */&lt;/P&gt;&lt;P&gt;temp = *((volatile uint32_t *)(SDRAM_ADDR_BASE | (3&amp;lt;&amp;lt;4| 3)&amp;lt;&amp;lt;12)); //3&amp;lt;&amp;lt;4 /* 8 burst, 3 CAS latency */&lt;BR /&gt; temp = temp;&lt;BR /&gt; LPC_EMC-&amp;gt;DYNAMICCONTROL = 0x00000000; /* Issue NORMAL command */&lt;/P&gt;&lt;P&gt;LPC_EMC-&amp;gt;DYNAMICCONFIG0 |= 1&amp;lt;&amp;lt;19;&lt;BR /&gt; LPC_EMC-&amp;gt;DYNAMICCONFIG1 |= 1&amp;lt;&amp;lt;19;&lt;BR /&gt; LPC_EMC-&amp;gt;DYNAMICCONFIG2 |= 1&amp;lt;&amp;lt;19;&lt;BR /&gt; LPC_EMC-&amp;gt;DYNAMICCONFIG3 |= 1&amp;lt;&amp;lt;19; &lt;BR /&gt;}&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 08 Nov 2016 05:47:52 GMT</pubDate>
    <dc:creator>wsinter</dc:creator>
    <dc:date>2016-11-08T05:47:52Z</dc:date>
    <item>
      <title>LPC4370 DMA SDRAM</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC4370-DMA-SDRAM/m-p/639128#M25273</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN style="font-size: 15px;"&gt;&lt;STRONG&gt;I use the EMC of LPC4370 to transfer data to SDRAM, it is right when I write and read the data using for loop.&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;piAddr = (uint32_t *)SDRAM_ADDR_BASE + 0;&lt;BR /&gt; for (i = 0; i &amp;lt; 12 * 1024 * 1024; i++) {&lt;BR /&gt; *piAddr++ = EMCData; &lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;piAddr = (uint32_t *)SDRAM_ADDR_BASE + 0;&lt;BR /&gt; &lt;BR /&gt; for (i = 0; i &amp;lt; 12 * 1024 * 1024; i++) {&amp;nbsp;&lt;BR /&gt; EMCtemp = *piAddr++;&lt;BR /&gt; if (EMCtemp != EMCData) { &lt;BR /&gt; SPIDataToSend = 1 ; &lt;BR /&gt; }&lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;But I need to transfer the data from HSADC to SDRAM through DMA, I found the write operation failed.&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;Can some one help me with the problem?&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Below&amp;nbsp;is the config for the SDRAM&amp;amp;DMA, &amp;nbsp;the&amp;nbsp;burst size of DMA is 8.&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void DMALLISET(uint16_t DataTotal,unsigned char SingleDMA)&lt;BR /&gt;{ &lt;BR /&gt; DMA_LLI_Struct[0].SrcAddr = (uint32_t)&amp;amp;LPC_ADCHS-&amp;gt;FIFO_OUTPUT[0] ;&lt;BR /&gt; DMA_LLI_Struct[0].DstAddr = (uint32_t )SDRAM_ADDR_BASE ;&lt;BR /&gt; DMA_LLI_Struct[0].NextLLI = (uint32_t)&amp;amp;DMA_LLI_Struct[1];&lt;BR /&gt; DMA_LLI_Struct[0].Control = (GPDMA_DMACCxControl_TransferSize(DataTotal)|GPDMA_DMACCxControl_SBSize(8)|GPDMA_DMACCxControl_DBSize(8)\&lt;BR /&gt; |GPDMA_DMACCxControl_SWidth(GPDMA_WIDTH_WORD)|GPDMA_DMACCxControl_DWidth(GPDMA_WIDTH_WORD)\&lt;BR /&gt; |GPDMA_DMACCxControl_SrcTransUseAHBMaster1|GPDMA_DMACCxControl_DI);&lt;/P&gt;&lt;P&gt;&lt;BR /&gt; DMA_LLI_Struct[1].SrcAddr = (uint32_t)&amp;amp;LPC_ADCHS-&amp;gt;FIFO_OUTPUT[0] ;&lt;BR /&gt; DMA_LLI_Struct[1].DstAddr = (uint32_t)(SDRAM_ADDR_BASE+DataTotal) ;&lt;BR /&gt; DMA_LLI_Struct[1].NextLLI = (uint32_t)&amp;amp;DMA_LLI_Struct[2];&lt;BR /&gt; DMA_LLI_Struct[1].Control = (GPDMA_DMACCxControl_TransferSize(DataTotal)|GPDMA_DMACCxControl_SBSize(8)|GPDMA_DMACCxControl_DBSize(8)\&lt;BR /&gt; |GPDMA_DMACCxControl_SWidth(GPDMA_WIDTH_WORD)|GPDMA_DMACCxControl_DWidth(GPDMA_WIDTH_WORD)\&lt;BR /&gt; |GPDMA_DMACCxControl_SrcTransUseAHBMaster1|GPDMA_DMACCxControl_DI);&lt;/P&gt;&lt;P&gt;&lt;BR /&gt; DMA_LLI_Struct[2].SrcAddr = (uint32_t)&amp;amp;LPC_ADCHS-&amp;gt;FIFO_OUTPUT[0] ;&lt;BR /&gt; DMA_LLI_Struct[2].DstAddr = (uint32_t)(SDRAM_ADDR_BASE+DataTotal*2) ;&lt;BR /&gt; DMA_LLI_Struct[2].NextLLI = (uint32_t)&amp;amp;DMA_LLI_Struct[3];&lt;BR /&gt; DMA_LLI_Struct[2].Control = (GPDMA_DMACCxControl_TransferSize(DataTotal)|GPDMA_DMACCxControl_SBSize(8)|GPDMA_DMACCxControl_DBSize(8)\&lt;BR /&gt; |GPDMA_DMACCxControl_SWidth(GPDMA_WIDTH_WORD)|GPDMA_DMACCxControl_DWidth(GPDMA_WIDTH_WORD)\&lt;BR /&gt; |GPDMA_DMACCxControl_SrcTransUseAHBMaster1|GPDMA_DMACCxControl_DI);&lt;/P&gt;&lt;P&gt;&lt;BR /&gt; DMA_LLI_Struct[3].SrcAddr = (uint32_t)&amp;amp;LPC_ADCHS-&amp;gt;FIFO_OUTPUT[0] ;&lt;BR /&gt; DMA_LLI_Struct[3].DstAddr = (uint32_t)(SDRAM_ADDR_BASE+DataTotal*3) ;&lt;BR /&gt; DMA_LLI_Struct[3].NextLLI = 0;&lt;BR /&gt; DMA_LLI_Struct[3].Control = (GPDMA_DMACCxControl_TransferSize(DataTotal)|GPDMA_DMACCxControl_SBSize(8)|GPDMA_DMACCxControl_DBSize(8)\&lt;BR /&gt; |GPDMA_DMACCxControl_SWidth(GPDMA_WIDTH_WORD)|GPDMA_DMACCxControl_DWidth(GPDMA_WIDTH_WORD)\&lt;BR /&gt; |GPDMA_DMACCxControl_SrcTransUseAHBMaster1|GPDMA_DMACCxControl_DI|GPDMA_DMACCxControl_I); &lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void SDRAM_Init(void) &lt;BR /&gt;{&lt;BR /&gt; uint32_t pclk, temp;&lt;BR /&gt; uint64_t tmpclk;&lt;BR /&gt;&lt;BR /&gt; scu_pinmux( 1 , 0 , MD_PLN_FAST , 2 );//A5&lt;BR /&gt; scu_pinmux( 1 , 1 , MD_PLN_FAST , 2 );//A6&lt;BR /&gt; scu_pinmux( 1 , 2 , MD_PLN_FAST , 2 );//A7&lt;BR /&gt; scu_pinmux( 1 , 6 , MD_PLN_FAST , 3 );//WE&lt;BR /&gt; scu_pinmux( 1 , 7 , MD_PLN_FAST , 3 );//D0&lt;BR /&gt; scu_pinmux( 1 , 8 , MD_PLN_FAST , 3 );//D1&lt;BR /&gt; scu_pinmux( 1 , 9 , MD_PLN_FAST , 3 );//D2&lt;BR /&gt; scu_pinmux( 1 , 10 , MD_PLN_FAST , 3 );//D3&lt;BR /&gt; scu_pinmux( 1 , 11 , MD_PLN_FAST , 3 );//D4&lt;BR /&gt; scu_pinmux( 1 , 12 , MD_PLN_FAST , 3 );//D5&lt;BR /&gt; scu_pinmux( 1 , 13 , MD_PLN_FAST , 3 );//D6&lt;BR /&gt; scu_pinmux( 1 , 14 , MD_PLN_FAST , 3 );//D7&lt;BR /&gt; scu_pinmux( 2 , 0 , MD_PLN_FAST , 2 );//A13&lt;BR /&gt; scu_pinmux( 2 , 1 , MD_PLN_FAST , 2 );//A12&lt;BR /&gt; scu_pinmux( 2 , 2 , MD_PLN_FAST , 2 );//A11&lt;BR /&gt; scu_pinmux( 2 , 6 , MD_PLN_FAST , 2 );//A10&lt;BR /&gt; scu_pinmux( 2 , 7 , MD_PLN_FAST , 3 );//A9&lt;BR /&gt; scu_pinmux( 2 , 8 , MD_PLN_FAST , 3 );//A8&lt;BR /&gt; scu_pinmux( 2 , 9 , MD_PLN_FAST , 3 );//A0&lt;BR /&gt; scu_pinmux( 2 , 10 , MD_PLN_FAST , 3 );//A1&lt;BR /&gt; scu_pinmux( 2 , 11 , MD_PLN_FAST , 3 );//A2&lt;BR /&gt; scu_pinmux( 2 , 12 , MD_PLN_FAST , 3 );//A3&lt;BR /&gt; scu_pinmux( 2 , 13 , MD_PLN_FAST , 3 );//A4&lt;BR /&gt; scu_pinmux( 5 , 0 , MD_PLN_FAST , 2 );//D12&lt;BR /&gt; scu_pinmux( 5 , 1 , MD_PLN_FAST , 2 );//D13&lt;BR /&gt; scu_pinmux( 5 , 2 , MD_PLN_FAST , 2 );//D14&lt;BR /&gt; scu_pinmux( 5 , 3 , MD_PLN_FAST , 2 );//D15&lt;BR /&gt; scu_pinmux( 5 , 4 , MD_PLN_FAST , 2 );//D8&lt;BR /&gt; scu_pinmux( 5 , 5 , MD_PLN_FAST , 2 );//D9&lt;BR /&gt; scu_pinmux( 5 , 6 , MD_PLN_FAST , 2 );//D10&lt;BR /&gt; scu_pinmux( 5 , 7 , MD_PLN_FAST , 2 );//D11&lt;BR /&gt; scu_pinmux( 6 , 4 , MD_PLN_FAST , 3 );//CAS&lt;BR /&gt; scu_pinmux( 6 , 5 , MD_PLN_FAST , 3 );//RAS&lt;BR /&gt; scu_pinmux( 6 , 8 , MD_PLN_FAST , 1 );//A14&lt;BR /&gt; scu_pinmux( 6 , 9 , MD_PLN_FAST , 3 );//DYCS0&lt;BR /&gt; scu_pinmux( 6 , 10 , MD_PLN_FAST , 3 );//DQMOUT1&lt;BR /&gt; scu_pinmux( 6 , 11 , MD_PLN_FAST , 3 );//CKEOUT0&lt;BR /&gt; scu_pinmux( 6 , 12 , MD_PLN_FAST , 3 );//DQMOUT0&lt;/P&gt;&lt;P&gt;LPC_SCU-&amp;gt;SFSCLK_0 = MD_PLN_FAST; /* Select EMC clock-out */&lt;BR /&gt; LPC_SCU-&amp;gt;SFSCLK_1 = MD_PLN_FAST;&lt;BR /&gt; LPC_SCU-&amp;gt;SFSCLK_2 = MD_PLN_FAST;&lt;BR /&gt; LPC_SCU-&amp;gt;SFSCLK_3 = MD_PLN_FAST;&lt;/P&gt;&lt;P&gt;LPC_EMC-&amp;gt;CONTROL = 0x00000001;&lt;BR /&gt; LPC_EMC-&amp;gt;CONFIG = 0x00000000;&lt;BR /&gt; LPC_EMC-&amp;gt;DYNAMICCONFIG0 = 0&amp;lt;&amp;lt;14 | 3&amp;lt;&amp;lt;9 | 1&amp;lt;&amp;lt;7; /* 64Mb, 4Mx16, 4 banks, row=12, column=8 */&lt;/P&gt;&lt;P&gt;pclk = CGU_GetPCLKFrequency(CGU_PERIPHERAL_M4CORE);&lt;/P&gt;&lt;P&gt;LPC_EMC-&amp;gt;DYNAMICRASCAS0 = 0x00000303; //0x00000303; /* 1 RAS, 3 CAS latency */&lt;BR /&gt; LPC_EMC-&amp;gt;DYNAMICREADCONFIG = 0x00000001; /* Command delayed strategy, using EMCCLKDELAY */&lt;/P&gt;&lt;P&gt;LPC_EMC-&amp;gt;DYNAMICRP = NS2CLK(pclk, 20);&lt;BR /&gt; LPC_EMC-&amp;gt;DYNAMICRAS = NS2CLK(pclk, 42);&lt;BR /&gt; LPC_EMC-&amp;gt;DYNAMICSREX = NS2CLK(pclk, 63);&lt;BR /&gt; LPC_EMC-&amp;gt;DYNAMICAPR = 0x00000005;&lt;BR /&gt; LPC_EMC-&amp;gt;DYNAMICDAL = 0x00000005;&lt;BR /&gt; LPC_EMC-&amp;gt;DYNAMICWR = 2;&lt;BR /&gt; LPC_EMC-&amp;gt;DYNAMICRC = NS2CLK(pclk, 63);&lt;BR /&gt; LPC_EMC-&amp;gt;DYNAMICRFC = NS2CLK(pclk, 63);&lt;BR /&gt; LPC_EMC-&amp;gt;DYNAMICXSR = NS2CLK(pclk, 63);&lt;BR /&gt; LPC_EMC-&amp;gt;DYNAMICRRD = NS2CLK(pclk, 14);&lt;BR /&gt; LPC_EMC-&amp;gt;DYNAMICMRD = 0x00000002;&lt;/P&gt;&lt;P&gt;Delay_us(100); /* wait 100ms */&lt;BR /&gt; LPC_EMC-&amp;gt;DYNAMICCONTROL = 0x00000183; /* Issue NOP command */&lt;/P&gt;&lt;P&gt;Delay_us(200); /* wait 200ms */&lt;BR /&gt; LPC_EMC-&amp;gt;DYNAMICCONTROL = 0x00000103; /* Issue PALL command */&lt;/P&gt;&lt;P&gt;LPC_EMC-&amp;gt;DYNAMICREFRESH = EMC_SDRAM_REFRESH(pclk,20); /* ( n * 16 ) -&amp;gt; 32 clock cycles */&lt;/P&gt;&lt;P&gt;Delay_us(200); /* wait 200ms */&lt;/P&gt;&lt;P&gt;tmpclk = (uint64_t)15625*(uint64_t)pclk/1000000000/16; //15625&lt;BR /&gt; LPC_EMC-&amp;gt;DYNAMICREFRESH = tmpclk; /* ( n * 16 ) -&amp;gt; 736 clock cycles -&amp;gt; 15.330uS at 48MHz &amp;lt;= 15.625uS ( 64ms / 4096 row ) */&lt;/P&gt;&lt;P&gt;LPC_EMC-&amp;gt;DYNAMICCONTROL = 0x00000083; /* Issue MODE command */&lt;/P&gt;&lt;P&gt;temp = *((volatile uint32_t *)(SDRAM_ADDR_BASE | (3&amp;lt;&amp;lt;4| 3)&amp;lt;&amp;lt;12)); //3&amp;lt;&amp;lt;4 /* 8 burst, 3 CAS latency */&lt;BR /&gt; temp = temp;&lt;BR /&gt; LPC_EMC-&amp;gt;DYNAMICCONTROL = 0x00000000; /* Issue NORMAL command */&lt;/P&gt;&lt;P&gt;LPC_EMC-&amp;gt;DYNAMICCONFIG0 |= 1&amp;lt;&amp;lt;19;&lt;BR /&gt; LPC_EMC-&amp;gt;DYNAMICCONFIG1 |= 1&amp;lt;&amp;lt;19;&lt;BR /&gt; LPC_EMC-&amp;gt;DYNAMICCONFIG2 |= 1&amp;lt;&amp;lt;19;&lt;BR /&gt; LPC_EMC-&amp;gt;DYNAMICCONFIG3 |= 1&amp;lt;&amp;lt;19; &lt;BR /&gt;}&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 08 Nov 2016 05:47:52 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC4370-DMA-SDRAM/m-p/639128#M25273</guid>
      <dc:creator>wsinter</dc:creator>
      <dc:date>2016-11-08T05:47:52Z</dc:date>
    </item>
    <item>
      <title>Re: LPC4370 DMA SDRAM</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC4370-DMA-SDRAM/m-p/639129#M25274</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Can someone help for teh problem,still I can not find the solution, the Transfer through DMA to SDRAM.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 12 Nov 2016 04:00:02 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC4370-DMA-SDRAM/m-p/639129#M25274</guid>
      <dc:creator>wsinter</dc:creator>
      <dc:date>2016-11-12T04:00:02Z</dc:date>
    </item>
    <item>
      <title>Re: LPC4370 DMA SDRAM</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC4370-DMA-SDRAM/m-p/639130#M25275</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi John,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Maybe the DMA implementation could be causing the problem, have you tried using the DMA timer trigger example from LPCOpen as base for your application? You can download the package from this link:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A class="link-titled" href="http://www.nxp.com/products/microcontrollers-and-processors/arm-processors/lpc-cortex-m-mcus/lpc-cortex-m4/lpc4300-cortex-m4-m0/lpcopen-software-development-platform-lpc43xx:LPCOPEN-SOFTWARE-FOR-LPC43XX" title="http://www.nxp.com/products/microcontrollers-and-processors/arm-processors/lpc-cortex-m-mcus/lpc-cortex-m4/lpc4300-cortex-m4-m0/lpcopen-software-development-platform-lpc43xx:LPCOPEN-SOFTWARE-FOR-LPC43XX"&gt;LPCOpen Software for LPC43XX|NXP&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Hope it helps!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best Regards,&lt;BR /&gt;Carlos Mendoza&lt;BR /&gt;Technical Support Engineer&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 23 Nov 2016 02:31:31 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC4370-DMA-SDRAM/m-p/639130#M25275</guid>
      <dc:creator>Carlos_Mendoza</dc:creator>
      <dc:date>2016-11-23T02:31:31Z</dc:date>
    </item>
    <item>
      <title>Re: LPC4370 DMA SDRAM</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC4370-DMA-SDRAM/m-p/639131#M25276</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;Carlos，thanks for your reply. &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;I use HSADC DMA trigger to sample the data, and it is right when I &amp;nbsp;use internal RAM (Address starts from&amp;nbsp;0x10000000).&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;But when I use EMC to transfer data to external SDRAM, it is wrong ,the trigger source is also HSADC.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;You mean that I need to use DMA timer trigger when use EMC SDRAM?&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 23 Nov 2016 07:45:10 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC4370-DMA-SDRAM/m-p/639131#M25276</guid>
      <dc:creator>wsinter</dc:creator>
      <dc:date>2016-11-23T07:45:10Z</dc:date>
    </item>
    <item>
      <title>Re: LPC4370 DMA SDRAM</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC4370-DMA-SDRAM/m-p/639132#M25277</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV class=""&gt;&lt;P&gt;Hi John,&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks for your response.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;No, I just mentioned the example to make sure the DMA was correctly initialized. Could you tell us which SDRAM are you using? There is an example included in the LPC1857 LPCOpen package that you can use as reference for your application, it is the GPDMA speed example, tt transfers data from memory to memory. Depending on the SDRAM being used you can also take a look to the EMC control signals setup:&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&lt;A class="link-titled" href="http://www.nxp.com/products/reference-designs/lpcopen-software-development-platform-lpc18xx:LPCOPEN-SOFTWARE-FOR-LPC18XX" title="http://www.nxp.com/products/reference-designs/lpcopen-software-development-platform-lpc18xx:LPCOPEN-SOFTWARE-FOR-LPC18XX"&gt;LPCOpen Software for LPC18XX|NXP&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Let me know if it helps!&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Best Regards,&lt;BR /&gt;Carlos Mendoza&lt;BR /&gt;Technical Support Engineer&lt;/P&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 29 Nov 2016 02:17:27 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC4370-DMA-SDRAM/m-p/639132#M25277</guid>
      <dc:creator>Carlos_Mendoza</dc:creator>
      <dc:date>2016-11-29T02:17:27Z</dc:date>
    </item>
    <item>
      <title>Re: LPC4370 DMA SDRAM</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC4370-DMA-SDRAM/m-p/639133#M25278</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;Carlos:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The SDRAM is MT48LC16M16A2, I will check the&amp;nbsp;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;example and try to modify my project.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;Thank you&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 30 Nov 2016 01:46:02 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC4370-DMA-SDRAM/m-p/639133#M25278</guid>
      <dc:creator>wsinter</dc:creator>
      <dc:date>2016-11-30T01:46:02Z</dc:date>
    </item>
  </channel>
</rss>

