<?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: LCD AHB master interface with SDRAM in row bank colum</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/LCD-AHB-master-interface-with-SDRAM-in-row-bank-colum/m-p/521630#M4295</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by PhilYoung on Tue Jun 12 11:09:50 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;I just noticed the memory test code, this will not test anything.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;writing a repeated pattern to memory and reading it back will never detect any addressing errors, in particular for external memory where the data bus will usually have a bus hold capability.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Try changing the memory test to simply write an ascending number to each location.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;for a simple test I usually start with 0x0102 then add 0x0101 at each address, this gives a reasonable first pass detection as the overflow of the first byte prevents a regular pattern being repeated throughout memory.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;regards&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Phil.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 15 Jun 2016 17:50:06 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-15T17:50:06Z</dc:date>
    <item>
      <title>LCD AHB master interface with SDRAM in row bank colum</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LCD-AHB-master-interface-with-SDRAM-in-row-bank-colum/m-p/521624#M4289</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by tjoAG on Fri Jun 08 05:44:35 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi All&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm using SDRAM as external memory. The address mapping was setup as row,bank,collumn&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I uses the extermal SDRAM as frame buffer location&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;But when I enable the LCD controller, the data in the frame buffer kept changing. Also did the LCD controller read the data wrong!!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have know tried setting up the SDRAM as bank,row,collumn and now everything works with the LCD controller.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Changing the DynamicConfig0 value from 0x00000480 to 0x00001480 did the trick...&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Now the $1 million question. Can someone explain me why?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Has it something to do with how the LCD AHB master DMA works?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Why did it "change" the frame buffer data?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Possible to run the LCD controller with SDRAM setup as row,bank,collumn?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thomas&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 17:50:02 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LCD-AHB-master-interface-with-SDRAM-in-row-bank-colum/m-p/521624#M4289</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T17:50:02Z</dc:date>
    </item>
    <item>
      <title>Re: LCD AHB master interface with SDRAM in row bank colum</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LCD-AHB-master-interface-with-SDRAM-in-row-bank-colum/m-p/521625#M4290</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by wellsk on Fri Jun 08 09:38:55 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;The DRAM and LCD controller will work in both modes. When switching between BRC or RBC modes in the DRAM controller, you'll also need to tweak the mode word operation.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;It sounds like maybe your mode word is statically setup for one specific mapping mode.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;For example, if your mode word is 0x31 (ie, CAS3, burst 1) and you have a device with COLS=10, ROWS=9, BANKS=2 (all in bits)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;In RBC mode, the mode would be programmed as * (volatile unsigned long *) (DRAM_BASE_ADDRESS + (0x31 &amp;lt;&amp;lt; (COLS + BUSSIZE + 0))&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;In BRC mode, the mode would be programmed as * (volatile unsigned long *) (DRAM_BASE_ADDRESS + (0x31 &amp;lt;&amp;lt; (COLS + BUSSIZE + BANKS))&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Note: BUSSIZE = 0, 1, or 2 --for-- 8, 16, or 32-bit DRAM configurations&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;You can also look at the LPC32x0 DRAM application note. It mostly applies to the lpc17xx device too...&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&lt;A class="jive-link-external-small" href="https://community.nxp.com/external-link.jspa?url=http%3A%2F%2Fwww.lpcware.com%2Fcontent%2Fnxpfile%2Fan10935-using-sdrddr-sdram-memories-lpc32xx" rel="nofollow" target="_blank"&gt;http://www.lpcware.com/content/nxpfile/an10935-using-sdrddr-sdram-memories-lpc32xx&lt;/A&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The LPC32x0 code (which uses the same controller) does something like this...&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#if SDRAM_USE_PERFORMANCE_MODE==1&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Performance mode : Row - Bank - Col mapping */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; modeshift = SDRAM_COLS + bus32 + 1 + SDRAM_BANK_BITS;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bankshift = SDRAM_COLS + bus32 + 1;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#else&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Low power mode : Bank - Row - Col mapping */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; modeshift = SDRAM_COLS + bus32 + 1;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bankshift = SDRAM_COLS + SDRAM_ROWS + bus32 + 1;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#endif&lt;/SPAN&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 17:50:03 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LCD-AHB-master-interface-with-SDRAM-in-row-bank-colum/m-p/521625#M4290</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T17:50:03Z</dc:date>
    </item>
    <item>
      <title>Re: LCD AHB master interface with SDRAM in row bank colum</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LCD-AHB-master-interface-with-SDRAM-in-row-bank-colum/m-p/521626#M4291</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by tjoAG on Fri Jun 08 12:58:08 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I see. But Im running the SDRAM in RBC mode so why does the LCD controller not work in that mode??&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Normal SDRAM access work fine. Reading and writting fine.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;But the when the LCD controller is enabled the data is changing in the SDRAM. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Switching to BRC mode makes the LCD controller not alternating the SDRAM contens?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thomas&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 17:50:03 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LCD-AHB-master-interface-with-SDRAM-in-row-bank-colum/m-p/521626#M4291</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T17:50:03Z</dc:date>
    </item>
    <item>
      <title>Re: LCD AHB master interface with SDRAM in row bank colum</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LCD-AHB-master-interface-with-SDRAM-in-row-bank-colum/m-p/521627#M4292</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by wellsk on Fri Jun 08 16:19:00 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;I can guess that the mode word was just programmed wrong when in one of the modes.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;If this happens, DRAM may appear to work, especially for single locations. But once you do a DRAM burst (which the LCD does), you'll see bad data.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;gt;But Im running the SDRAM in RBC mode so why does the LCD controller not work in that mode??&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;If you are not doing it now, try shifting the mode offset for the mode operation right by 2 when in RBC mode to see if it works.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;You can test DRAM burst by using the ARM STM/LDM instructions to write and read DRAM. If this works for RBD and BRC configurations and you are sure you are programming the mode word correctly, I can't tell you what's wrong, but maybe some of the other developers might have some ideas.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 17:50:04 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LCD-AHB-master-interface-with-SDRAM-in-row-bank-colum/m-p/521627#M4292</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T17:50:04Z</dc:date>
    </item>
    <item>
      <title>Re: LCD AHB master interface with SDRAM in row bank colum</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LCD-AHB-master-interface-with-SDRAM-in-row-bank-colum/m-p/521628#M4293</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by tjoAG on Mon Jun 11 02:19:27 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi Kevin&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm not 100% sure I program the MODE correctly, but I think so.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm using MICRON MT48LC8M16A2 128 Mbit SDRAM, R=12, C=9, Banks=4&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Row addressing is A0-A11&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Collumn addressing is A0-A8&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Bank selection is BA0-Ba1&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm running the EMC clock at 120 MHz, so according to the datasheet a CAS latency of 3 must be used.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;RBC mode: &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I set the Dynamic Config mode to 0x480 (RBC mode) and the use mode word is &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;code&amp;gt;wtemp = *((volatile uint32_t *)(SDRAM_BASE_ADDR | (0x33&amp;lt;&amp;lt;(12)))); /* 8 burst, 3 CAS latency */ &amp;lt;/code&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I then use this code, just to verify the SDRAM:&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;// 16 bit write&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;for (i=0; i&amp;lt;(0x01000000/2); i++)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; *short_wr_ptr++ = 0xAAAA;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;/ 16 bit read&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;short_wr_ptr = (uint16_t *)0xA0000000;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;for (i=0; i&amp;lt;(0x01000000/2); i++)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; if(*short_wr_ptr != 0xAAAA)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(1);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; short_wr_ptr++;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&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;When I use the above SDRAM init code (RBC), the RAM validation work.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I know it is not a in depth RAM test, but if that doesn't work something is wrong.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;BRC: &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;In BRC mode I'm doing this instead:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I set the Dynamic Config mode to 0x1480 (BRC mode) and the use mode word is &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;code&amp;gt;wtemp = *((volatile uint32_t *)(SDRAM_BASE_ADDR | (0x33&amp;lt;&amp;lt;(10)))); /* 8 burst, 3 CAS latency */ &amp;lt;/code&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Then I have memory holes at:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;0xA040 0000 - 0xA071 ffff&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;0xA0C0 0000 - 0xA100 0000&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The other location seems to work.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;When I run in the RBC mode, the data in SDRAM keeps changing when the LCD gets enabled&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;When I run in the BRC mode, the data is SDRAM dont keep changing when the LCD gets enabled. Data is shown fine on the display, but I have memory hole where I can write read?!!!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The MODE&amp;nbsp; word can still be wrong?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;What about the MD (LP SDRAM) setting?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Do I read the SDRAM datasheet wrong?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Is the SDRAM connected wrong to the CPU. Maybe I set the wrong collumn, bank, burts length in the MODE word?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Please see below for the used pins and complete init code.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;/Thomas&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;CPU pin | SDRAM&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;-----------------&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; A0 &amp;lt;--------&amp;gt; A0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; A1 &amp;lt;--------&amp;gt; A1&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; A2 &amp;lt;--------&amp;gt; A2&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; A3 &amp;lt;--------&amp;gt; A3&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; A4 &amp;lt;--------&amp;gt; A4&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; A5 &amp;lt;--------&amp;gt; A5&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; A6 &amp;lt;--------&amp;gt; A6&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; A7 &amp;lt;--------&amp;gt; A7&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; A8 &amp;lt;--------&amp;gt; A8&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; A9 &amp;lt;--------&amp;gt; A9&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; A10 &amp;lt;-------&amp;gt; A10&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; A11 &amp;lt;-------&amp;gt; A10&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; A12 &amp;lt;-------&amp;gt; BA0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; A13 &amp;lt;------&amp;gt;&amp;nbsp; BA1&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;uint32_t i, dwtemp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;TIM_TIMERCFG_Type TIM_ConfigStruct;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;/* Initialize EMC */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;InitSDRAMPins();&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;TIM_ConfigStruct.PrescaleOption = TIM_PRESCALE_USVAL;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;TIM_ConfigStruct.PrescaleValue= 1;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;// Set configuration for Tim_config and Tim_MatchConfig&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;TIM_Init(LPC_TIM0, TIM_TIMER_MODE,&amp;amp;TIM_ConfigStruct);&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;LPC_EMC-&amp;gt;DynamicConfig0&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x00000480; /* 128B, 8Mx16, row=12, 4 banks,&amp;nbsp; column=9 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;// Configure timing for&amp;nbsp; Micron SDRAM MT48LC8M16A2-75 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;// Timing for 120MHz Bus: 8.333333 ns/clk&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_EMC-&amp;gt;DynamicRasCas0&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x00000303; // 3 RAS, 3 CAS latency to run more then 100 MHz bus&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_EMC-&amp;gt;DynamicReadConfig = 0x00000001; // 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; = 0x00000002; // Min 20ns. (n + 1) -&amp;gt; 3 clock cycles&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; = 0x00000005; // Min 44 ns.(n + 1) -&amp;gt; 6 clock cycles&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; = 0x00000009; // Min 75 ns. ( n + 1 ) -&amp;gt; 10 clock cycles&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; = 0x00000002; // ??? ( n + 1 ) -&amp;gt; 2 clock cycles&amp;nbsp; 5 &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_EMC-&amp;gt;DynamicDAL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x00000004; // tWR + tRP: min 35 ns (n + 1) -&amp;gt; 5 clock cycles&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; // Min 15 ns. ( n + 1 ) -&amp;gt; 2 clock cycles&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; = 0x00000007; // Min 66 ns. ( n + 1 ) -&amp;gt; 8 clock cycles&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; = 0x00000007; // Min 66 ns. ( n + 1 ) -&amp;gt; 8 clock cycles&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; = 0x00000009; // Min 75 ns. ( n + 1 ) -&amp;gt; 10 clock cycles&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; = 0x00000001; // Min 15 ns. ( n + 1 ) -&amp;gt; 2 clock cycles&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; // 2 tCK. ( n + 1 ) -&amp;gt; 2 clock cycles&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;TIM_Waitms(100);&amp;nbsp;&amp;nbsp; /* wait 100ms */&lt;/SPAN&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;SPAN&gt;TIM_Waitms(200);&amp;nbsp;&amp;nbsp; /* wait 200ms */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_EMC-&amp;gt;DynamicControl&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x00000103; /* Issue PALL command */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_EMC-&amp;gt;DynamicRefresh&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x000007ff; /* ( n * 16 ) -&amp;gt; 32 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;&amp;nbsp;&amp;nbsp; /* wait 128 AHB clock cycles */&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;//Timing for 120MHz Bus&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_EMC-&amp;gt;DynamicRefresh&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x1d; // ( n * 16 ) -&amp;gt; 1872 clock cycles -&amp;gt; 15.60uS at 120MHz &amp;lt;= 15.625uS ( 64ms / 4096 row )&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_EMC-&amp;gt;DynamicControl&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x00000083; /* Issue MODE command */&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;//Timing for 48/60/72MHZ Bus&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;dwtemp = *((volatile uint32_t *)(SDRAM_BASE_ADDR | (0x33&amp;lt;&amp;lt;(12)))); /* 8 burst, 3 CAS latency */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_EMC-&amp;gt;DynamicControl&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x00000000; /* 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;LPC_EMC-&amp;gt;DynamicConfig0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;/code&amp;gt;&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 17:50:05 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LCD-AHB-master-interface-with-SDRAM-in-row-bank-colum/m-p/521628#M4293</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T17:50:05Z</dc:date>
    </item>
    <item>
      <title>Re: LCD AHB master interface with SDRAM in row bank colum</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LCD-AHB-master-interface-with-SDRAM-in-row-bank-colum/m-p/521629#M4294</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by tjoAG on Mon Jun 11 02:48:25 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi Kevin&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Just adding some comments.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;From the LPC1788 data sheet page 179 section 10.12.19: &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;"The SDRAM bank select pins BA1 and BA0 are connected to address lines A14 and A13,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;respectively."&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;On fig 17 on page 188 a 16 bit interface is connected from CPU A[a_b:1] to SDRAM A[a_m:0] where a_b is the higest order address line on the address bus, and on the a_m is the highest order address line on the used SDRAM.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have connected the SDRAM starting from CPU A0 to A13. Must it be moved by one address line so I use A1-A14?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 17:50:05 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LCD-AHB-master-interface-with-SDRAM-in-row-bank-colum/m-p/521629#M4294</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T17:50:05Z</dc:date>
    </item>
    <item>
      <title>Re: LCD AHB master interface with SDRAM in row bank colum</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LCD-AHB-master-interface-with-SDRAM-in-row-bank-colum/m-p/521630#M4295</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by PhilYoung on Tue Jun 12 11:09:50 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;I just noticed the memory test code, this will not test anything.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;writing a repeated pattern to memory and reading it back will never detect any addressing errors, in particular for external memory where the data bus will usually have a bus hold capability.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Try changing the memory test to simply write an ascending number to each location.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;for a simple test I usually start with 0x0102 then add 0x0101 at each address, this gives a reasonable first pass detection as the overflow of the first byte prevents a regular pattern being repeated throughout memory.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;regards&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Phil.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 17:50:06 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LCD-AHB-master-interface-with-SDRAM-in-row-bank-colum/m-p/521630#M4295</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T17:50:06Z</dc:date>
    </item>
    <item>
      <title>Re: LCD AHB master interface with SDRAM in row bank colum</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LCD-AHB-master-interface-with-SDRAM-in-row-bank-colum/m-p/521631#M4296</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by tjoAG on Wed Jun 13 05:47:44 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi Phil&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I did try the mem test you suggested. &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;uint16_t data = 0x0102;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;for (i=0; i&amp;lt;(0x01000000/2); i++)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; *short_wr_ptr++ = data;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; data += 0x0101;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;/code&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;At address 0xA000 0000 the value 0x0102&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;At address 0xA002 0000 the value 0x0203&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;At address 0xA004 0000 the value 0x0304&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;But when I was finished looping the total amount of RAM the addresses was over written&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;At address 0xA000 0000 the value 0x0502&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;At address 0xA002 0000 the value 0x0603&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;At address 0xA004 0000 the value 0x0704&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;So something is set up wrong!!!&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;It it wasn't when the first overflow occurred. &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;But I think there is addressing issues&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm pretty sure I use the correct SDRAM selection for the LPC1788 and correct shift value for the MODE register!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thomas&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 17:50:06 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LCD-AHB-master-interface-with-SDRAM-in-row-bank-colum/m-p/521631#M4296</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T17:50:06Z</dc:date>
    </item>
  </channel>
</rss>

