<?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>LPC Microcontrollers中的主题 Re: LPC178x EMC and SDRAM</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC178x-EMC-and-SDRAM/m-p/517913#M2408</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Ariekanarie on Fri Sep 07 02:10:05 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hey John,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I was sure about the fact that pull-up resistors were enabled at my settings.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;As you can see above, I were able to fix my problem by changing the shiftvalue from 12 &amp;amp; 10 to respectively 10 &amp;amp; 9.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks anyway for your thoughts.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Kind regards,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Arjan&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 15 Jun 2016 17:31:13 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-15T17:31:13Z</dc:date>
    <item>
      <title>LPC178x EMC and SDRAM</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC178x-EMC-and-SDRAM/m-p/517908#M2403</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Ariekanarie on Thu Sep 06 06:54:38 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hey Hello you all,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm kind of new at this forum and I'm facing problems with my setup of the EMC and the used microcontroller lpc1787FBD208.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&lt;SPAN&gt;The SDRAM which I want to interface with is a A43L0616B of AMIC. (&lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="https://community.nxp.com/external-link.jspa?url=http%3A%2F%2Fwww.amictechnology.com%2Fpdf%2FA43L0616B.pdf" rel="nofollow" target="_blank"&gt;http://www.amictechnology.com/pdf/A43L0616B.pdf&lt;/A&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;This is a 512k x 16 bit x 2 banks chip (16 Mbit)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Unfortunately I can't find some requested settings in the Datasheet, like tXSR and tSREX. I made up the value for those. &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I've set up the remaining values as they are stated in the Datasheet of the SDRAM.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm running the CPU clock at 120 MHz and therefore it will devide it to 60 MHz for the EMCClock. All EMC pins have the IOCON value "0x00000031" which means: Pull-up enabled, Hysteresis enabled, EMC function selected.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The initialize code for the SDRAM is stated down here:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;code&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#include "SDRAM.h"&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;extern Delay(uint32_t);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;#define NS_2_CLKS(ns) ((((EMCClock/10000) * ns)/100000))&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#define ROW_BANK_COLUMN&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#define SDRAM_BASE_ADDR&amp;nbsp;&amp;nbsp;&amp;nbsp; (0xA0000000)&amp;nbsp;&amp;nbsp;&amp;nbsp; /* SDRAM Bank 0&amp;nbsp; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#define SDRAM_SIZE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (0x200000)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 16Mbit Length */&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;uint32_t EMC_SDRAM_REFRESH(uint32_t time)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;uint32_t emc_freq = CLKPWR_GetCLK(CLKPWR_CLKTYPE_EMC);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;if((LPC_SC-&amp;gt;EMCCLKSEL &amp;amp;0x01)&amp;amp;0x01)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;return (((uint64_t)((uint64_t)time * (emc_freq/2))/16000000ull)+1);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;else&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;return (((uint64_t)((uint64_t)time * emc_freq)/16000000ull)+1);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;void init_SDRAM()&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; uint32_t Temp = Temp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;uint32_t CAS_Latency, RAS_Latency;&amp;nbsp; // these can be 1, 2, or 3 clks&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;int i; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_SC-&amp;gt;PCONP&amp;nbsp;&amp;nbsp; |= 0x00000800;//Enable Power EMC&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_EMC-&amp;gt;Control = 0x00000001;//EMC enable&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_EMC-&amp;gt;Config&amp;nbsp; = 0x00000000;//Little Endian &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_EMC-&amp;gt;DynamicConfig0 = 0;//buffers disabled&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_SC-&amp;gt;EMCDLYCTL |= (8&amp;lt;&amp;lt;0);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;/*Set data read delay*/&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_SC-&amp;gt;EMCDLYCTL |=(8&amp;lt;&amp;lt;8);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_SC-&amp;gt;EMCDLYCTL |= (0x08 &amp;lt;&amp;lt;16);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;//&amp;nbsp; LPC1787FBD208Amic A43L0616B&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;//&amp;nbsp; PinDescriptionPinDescription&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_IOCON-&amp;gt;P2_16 |= 0x01; //&amp;nbsp; 87EMC_CAS&amp;lt;--&amp;gt;16nCAS&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_IOCON-&amp;gt;P2_17 |= 0x01; //&amp;nbsp; 95EMC_RAS&amp;lt;--&amp;gt;17nRAS&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_IOCON-&amp;gt;P2_18 |= 0x01; //&amp;nbsp; 59EMC_CLK0&amp;lt;--&amp;gt;35CLK&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_IOCON-&amp;gt;P2_20 |= 0x01; //&amp;nbsp; 73EMC_DYCS0&amp;lt;--&amp;gt;18nCS&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_IOCON-&amp;gt;P2_24 |= 0x01; //&amp;nbsp; 53EMC_CKE0&amp;lt;--&amp;gt;34CKE&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_IOCON-&amp;gt;P2_28 |= 0x01; //&amp;nbsp; 49EMC_DQM0&amp;lt;--&amp;gt;14LDQM&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_IOCON-&amp;gt;P2_29 |= 0x01; //&amp;nbsp; 43EMC_DQM1&amp;lt;--&amp;gt;36UDQM&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;// D0-15&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_IOCON-&amp;gt;P3_0 |= 0x01; //&amp;nbsp; 197EMC_D[0]&amp;lt;--&amp;gt;2DQ0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_IOCON-&amp;gt;P3_1 |= 0x01; //&amp;nbsp; 201EMC_D[1]&amp;lt;--&amp;gt;3DQ1&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_IOCON-&amp;gt;P3_2 |= 0x01; //&amp;nbsp; 207EMC_D[2]&amp;lt;--&amp;gt;5DQ2&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_IOCON-&amp;gt;P3_3 |= 0x01; //&amp;nbsp; 3EMC_D[3]&amp;lt;--&amp;gt;6DQ3&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_IOCON-&amp;gt;P3_4 |= 0x01; //&amp;nbsp; 13EMC_D[4]&amp;lt;--&amp;gt;8DQ4&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_IOCON-&amp;gt;P3_5 |= 0x01; //&amp;nbsp; 17EMC_D[5]&amp;lt;--&amp;gt;9DQ5&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_IOCON-&amp;gt;P3_6 |= 0x01; //&amp;nbsp; 23EMC_D[6]&amp;lt;--&amp;gt;11DQ6&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_IOCON-&amp;gt;P3_7 |= 0x01; //&amp;nbsp; 27EMC_D[7]&amp;lt;--&amp;gt;12DQ7&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_IOCON-&amp;gt;P3_8 |= 0x01; //&amp;nbsp; 191EMC_D[8]&amp;lt;--&amp;gt;39DQ8&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_IOCON-&amp;gt;P3_9 |= 0x01; //&amp;nbsp; 199EMC_D[9]&amp;lt;--&amp;gt;40DQ9&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_IOCON-&amp;gt;P3_10 |= 0x01;//&amp;nbsp; 205EMC_D[10]&amp;lt;--&amp;gt;42DQ10&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_IOCON-&amp;gt;P3_11 |= 0x01;//&amp;nbsp; 208EMC_D[11]&amp;lt;--&amp;gt;43DQ11&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_IOCON-&amp;gt;P3_12 |= 0x01;//&amp;nbsp; 1EMC_D[12]&amp;lt;--&amp;gt;45DQ12&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_IOCON-&amp;gt;P3_13 |= 0x01;//&amp;nbsp; 7EMC_D[13]&amp;lt;--&amp;gt;46DQ13&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_IOCON-&amp;gt;P3_14 |= 0x01;//&amp;nbsp; 21EMC_D[14]&amp;lt;--&amp;gt;48DQ14&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_IOCON-&amp;gt;P3_15 |= 0x01;//&amp;nbsp; 28EMC_D[15]&amp;lt;--&amp;gt;49DQ15&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;//A0-13&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_IOCON-&amp;gt;P4_0 |= 0x01; //&amp;nbsp; 75EMC_A[0]&amp;lt;--&amp;gt;21A0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_IOCON-&amp;gt;P4_1 |= 0x01; //&amp;nbsp; 79EMC_A[1]&amp;lt;--&amp;gt;22A1&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_IOCON-&amp;gt;P4_2 |= 0x01; //&amp;nbsp; 83EMC_A[2]&amp;lt;--&amp;gt;23A2&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_IOCON-&amp;gt;P4_3 |= 0x01; //&amp;nbsp; 97EMC_A[3]&amp;lt;--&amp;gt;24A3&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_IOCON-&amp;gt;P4_4 |= 0x01; //&amp;nbsp; 103EMC_A[4]&amp;lt;--&amp;gt;27A4&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_IOCON-&amp;gt;P4_5 |= 0x01; //&amp;nbsp; 107EMC_A[5]&amp;lt;--&amp;gt;28A5&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_IOCON-&amp;gt;P4_6 |= 0x01; //&amp;nbsp; 113EMC_A[6]&amp;lt;--&amp;gt;29A6&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_IOCON-&amp;gt;P4_7 |= 0x01; //&amp;nbsp; 121EMC_A[7]&amp;lt;--&amp;gt;30A7&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_IOCON-&amp;gt;P4_8 |= 0x01; //&amp;nbsp; 127EMC_A[8]&amp;lt;--&amp;gt;31A8&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_IOCON-&amp;gt;P4_9 |= 0x01; //&amp;nbsp; 131EMC_A[9]&amp;lt;--&amp;gt;32A9&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_IOCON-&amp;gt;P4_10 |= 0x01;//&amp;nbsp; 135EMC_A[10]&amp;lt;--&amp;gt;20A10/AP&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_IOCON-&amp;gt;P4_13 |= 0x01;//&amp;nbsp; 155EMC_A[13]&amp;lt;--&amp;gt;19BA&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_IOCON-&amp;gt;P4_25 |= 0x01; //&amp;nbsp; 179EMC_WE&amp;lt;--&amp;gt;15nWE&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;if( SystemCoreClock &amp;gt; 80000000 )&amp;nbsp;&amp;nbsp; // longer delay constant, and shorter CAS and RAS latency&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_SC-&amp;gt;EMCCLKSEL = 0x00000001;&amp;nbsp; // EMC uses a clock rate at 1/2 CPU clock rate... &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; else&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_SC-&amp;gt;EMCCLKSEL = 0x00000000;&amp;nbsp; // EMC uses a clock rate equal to CPU clock rate...&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;CAS_Latency = 2;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; RAS_Latency = 2;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;//Configure memory layout, but MUST DISABLE BUFFERs during configuration&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; #ifdef ROW_BANK_COLUMN&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_EMC-&amp;gt;DynamicConfig0 = 0x00000080;&amp;nbsp; // row, bank, column, 16Mb(1Mx16), 2 banks, row length=11, column length= 8&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; #else&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_EMC-&amp;gt;DynamicConfig0 = 0x00001080;&amp;nbsp; // bank, row, column, 16Mb(1Mx16), 2 banks, row length=11, column length= 8&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; #endif&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_EMC-&amp;gt;DynamicRasCas0 = RAS_Latency + (CAS_Latency&amp;lt;&amp;lt;8);&amp;nbsp;&amp;nbsp;&amp;nbsp; // reset value is 3 and 3 &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_EMC-&amp;gt;DynamicReadConfig = 0x00000001;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Command delayed strategy, using EMCCLKDELAY */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_EMC-&amp;gt;DynamicRP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = NS_2_CLKS(20);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //20ns from datasheet tRP(min)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_EMC-&amp;gt;DynamicRAS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = NS_2_CLKS(44);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //44ns from datasheet tRAS(min)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_EMC-&amp;gt;DynamicSREX&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = NS_2_CLKS(70);&amp;nbsp;&amp;nbsp;&amp;nbsp; //Made up value????&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_EMC-&amp;gt;DynamicAPR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = NS_2_CLKS(20);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //20ns from datasheet tRCD(min)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_EMC-&amp;gt;DynamicDAL&amp;nbsp; = 0x00000002;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //1 tCK from datasheet tCDL(min)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_EMC-&amp;gt;DynamicWR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x00000001; //n+1 tCK = 2 / From datasheet tRDL(min)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_EMC-&amp;gt;DynamicRC&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = NS_2_CLKS(64);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //64ns from datasheet tRC(min)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_EMC-&amp;gt;DynamicRFC&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = NS_2_CLKS(64);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //64ns from datasheet tRC(min)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_EMC-&amp;gt;DynamicXSR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = NS_2_CLKS(70);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Made up value&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_EMC-&amp;gt;DynamicRRD&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = NS_2_CLKS(14);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //14ns from datasheet tRRD(min)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_EMC-&amp;gt;DynamicMRD&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x00000001;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //n+1 tCK =2 tCK&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_EMC-&amp;gt;DynamicControl&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x00000183; /* Issue NOP command */&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Delay(2);//2 ms delay, datasheet stated minimum 200 us&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_EMC-&amp;gt;DynamicControl&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x00000103;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Issue PALL command */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_EMC-&amp;gt;DynamicRefresh&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x00000001;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* ( n * 16 ) -&amp;gt; 16 clock cycles */&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;for(i = 0; i &amp;lt; 0x80; i++);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* wait 128 AHB clock cycles */&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_EMC-&amp;gt;DynamicRefresh&amp;nbsp;&amp;nbsp;&amp;nbsp; = EMC_SDRAM_REFRESH(15);&amp;nbsp;&amp;nbsp;&amp;nbsp; //57 at 60MHz &amp;lt;= 15.625uS ( 32ms / 2048 row ) */&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;for(i = 0; i &amp;lt; 0x80; i++);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* wait 128 AHB clock cycles */&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; LPC_EMC-&amp;gt;DynamicControl&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x00000083;&amp;nbsp; /* Issue MODE command */&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;#ifdef ROW_BANK_COLUMN&amp;nbsp; // shift includes bank&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Temp = *((volatile uint32_t *)(SDRAM_BASE_ADDR|((0x03+(CAS_Latency&amp;lt;&amp;lt;4))&amp;lt;&amp;lt;12))); &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; #else&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // shift excludes bank&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Temp = *((volatile uint32_t *)(SDRAM_BASE_ADDR|((0x03+(CAS_Latency&amp;lt;&amp;lt;4))&amp;lt;&amp;lt;10))); &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; #endif &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;for(i = 0; i &amp;lt; 0x80; i++);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* wait 128 AHB clock cycles */&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_EMC-&amp;gt;DynamicControl&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x00000000;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Issue NORMAL command */&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;//[re]enable buffers&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; LPC_EMC-&amp;gt;DynamicConfig0 |= 0x00080000;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 16Mbit, 1Mx16, 2 banks, row=11, column=8 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_SC-&amp;gt;EMCCAL = (1&amp;lt;&amp;lt;14);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;while((LPC_SC-&amp;gt;EMCCAL &amp;amp; (1&amp;lt;&amp;lt;15))!=(1&amp;lt;&amp;lt;15));//After calibration start, the value 0x9A (154) is saved&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;//but not used&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;/code&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;At the end of above code I start the calibration. When I read the value out of the register I see value 0x9A. The datasheet of the Microcontroller stated that 0x86 is normal at room temperature( which it is in here). At this point I don;t know what it means and what I must do with this fact. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The function which I'm using to verify the working of my code is as follows:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;code&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;void App_DoMain()&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;uint32_t i=0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; volatile uint32_t *wr_ptr;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; volatile uint16_t *short_wr_ptr;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; uint16_t temp1[1000];&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;debug_frmwrk_init();&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; print_menu();&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;_DBG_("Init SDRAM...");&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;init_SDRAM();&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;wr_ptr = (uint32_t *)SDRAM_BASE_ADDR;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;short_wr_ptr = (uint16_t *)wr_ptr;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;/* Clear content before 16 bit access test */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;_DBG_("Clear content of SRAM...");&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;for ( i= 0; i &amp;lt; SDRAM_SIZE/2; i++ )&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;*short_wr_ptr++ = 0x0000;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;/* 16 bit write */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;_DBG_("Writing in 16 bits format...");&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;for (i=0; i&amp;lt;(SDRAM_SIZE/2); i++)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;if(i%2==0)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;*short_wr_ptr++ = 0x5AA5;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;else&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;*short_wr_ptr++ = 0xA55A;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;/* Verifying */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;short_wr_ptr = (uint16_t *)wr_ptr;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;for ( i= 0; i &amp;lt; SDRAM_SIZE/2; i++ )&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;if(i&amp;lt;1000)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;temp1&lt;/SPAN&gt;&lt;I&gt;=*short_wr_ptr;&lt;BR /&gt;&lt;BR /&gt;short_wr_ptr++;&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;/* 16-bit half word comparison succeed. */&lt;BR /&gt;&lt;BR /&gt;_DBG_("Verifying complete, testing terminated!");&lt;BR /&gt;while(1);&lt;BR /&gt;}&lt;BR /&gt;&amp;lt;/code&amp;gt;&lt;BR /&gt;&lt;BR /&gt;First I try to clear the chip, &lt;BR /&gt;than I try to fill the chip with the given values&lt;BR /&gt;After that I try to read out the values.&lt;BR /&gt;&lt;BR /&gt;Unfortunately the only values that are read out is 0xFFFF, while I wrote values like 0xA55A and 0x5AA5 to the SDRAM.&lt;BR /&gt;I've connected a oscilloscope to one address line and data line and see that there are signals transmitted to the chip. During the reading period I can confirm that the Data line is High the whole time.&lt;BR /&gt;&lt;BR /&gt;Cause of the effect that the Microcontroller receives 0xFFFF I think that I may conclude that the writing cyclus isn't set up properly in anyway.&lt;BR /&gt;&lt;BR /&gt;I've double checked the connections between the SDRAM and the LPC1787 which is on a self designed PCB. Besides that I've tried to get it to work at 24 Mhz, but this wasn't helping me either. The final application for this is to drive a GLCD, but this will not work until the SDRAM with EMC is fixed :)&lt;BR /&gt;&lt;BR /&gt;I hope you guys can help me out of this in any way with your vision.&lt;BR /&gt;I'm trying to fix this problem for a few days now.&lt;BR /&gt;The topic by Dave (http://www.lpcware.com/content/forum/dk-57vts-lpc1788-configuring-emc-sdram) and Scieslik (http://www.lpcware.com/content/forum/sdram-write-issue) have helped me to understand a lot of the working of the EMC Pherhiperal. Thanks for that!&lt;BR /&gt;Unfortunately it is not enough to understand the problem I'm facing. &lt;BR /&gt;&lt;BR /&gt;Thanks in advance.&lt;BR /&gt;&lt;BR /&gt;With Kind regards,&lt;BR /&gt;Arjan&lt;BR /&gt;&lt;BR /&gt;&lt;/I&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 17:31:09 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC178x-EMC-and-SDRAM/m-p/517908#M2403</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T17:31:09Z</dc:date>
    </item>
    <item>
      <title>Re: LPC178x EMC and SDRAM</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC178x-EMC-and-SDRAM/m-p/517909#M2404</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Karl on Thu Sep 06 13:51:18 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi Arjan,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;A personal favorite of mine:&amp;nbsp; :-)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Shifting the mode register content is incorrect. Eight columns and a 16-bit data bus require shifting nine bits (9 instead of 10 for BANK-ROW-COLUMN). If the single bank bit must be included, shift ten bits (10 instead of 12 for ROW-BANK-COLUMN).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;code&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#ifdef ROW_BANK_COLUMN&amp;nbsp; // shift includes bank&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Temp = *((volatile uint32_t *)(SDRAM_BASE_ADDR|((0x03+(CAS_Latency&amp;lt;&amp;lt;4)) &amp;lt;&amp;lt; 10)));&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#else&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // shift excludes bank&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Temp = *((volatile uint32_t *)(SDRAM_BASE_ADDR|((0x03+(CAS_Latency&amp;lt;&amp;lt;4)) &amp;lt;&amp;lt; 9)));&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#endif&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;/code&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Best Regards,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Karl&lt;/SPAN&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 17:31:10 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC178x-EMC-and-SDRAM/m-p/517909#M2404</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T17:31:10Z</dc:date>
    </item>
    <item>
      <title>Re: LPC178x EMC and SDRAM</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC178x-EMC-and-SDRAM/m-p/517910#M2405</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Dave on Thu Sep 06 14:21:47 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;:-) - Thanks Karl...&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 17:31:10 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC178x-EMC-and-SDRAM/m-p/517910#M2405</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T17:31:10Z</dc:date>
    </item>
    <item>
      <title>Re: LPC178x EMC and SDRAM</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC178x-EMC-and-SDRAM/m-p/517911#M2406</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by John Sinclair on Thu Sep 06 23:07:45 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hello Arjan,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;do you sure to enable the pull up? I have set my ICON registers to&amp;nbsp; "0x00000021". And it works.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Try it&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Best regards&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;John&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 17:31:11 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC178x-EMC-and-SDRAM/m-p/517911#M2406</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T17:31:11Z</dc:date>
    </item>
    <item>
      <title>Re: LPC178x EMC and SDRAM</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC178x-EMC-and-SDRAM/m-p/517912#M2407</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Ariekanarie on Fri Sep 07 01:29:44 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hey Karl,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks for your response.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;This totally fix my problem and I'm running now a working interface.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I wasn't aware of the dependence of the chosen chipsize and bankcount.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;So I just copied it from another topic with the thought that the shifting is always 10 or 12 in the register.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thank you very much! Now I can develop the rest of the software for the rest of the application.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Best Regards,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Arjan&lt;/SPAN&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 17:31:12 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC178x-EMC-and-SDRAM/m-p/517912#M2407</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T17:31:12Z</dc:date>
    </item>
    <item>
      <title>Re: LPC178x EMC and SDRAM</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC178x-EMC-and-SDRAM/m-p/517913#M2408</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Ariekanarie on Fri Sep 07 02:10:05 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hey John,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I was sure about the fact that pull-up resistors were enabled at my settings.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;As you can see above, I were able to fix my problem by changing the shiftvalue from 12 &amp;amp; 10 to respectively 10 &amp;amp; 9.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks anyway for your thoughts.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Kind regards,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Arjan&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 17:31:13 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC178x-EMC-and-SDRAM/m-p/517913#M2408</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T17:31:13Z</dc:date>
    </item>
  </channel>
</rss>

