<?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のトピックLPC1778 + SDRAM IS42S16400F</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC1778-SDRAM-IS42S16400F/m-p/519847#M3368</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by TP on Sat Oct 13 06:27:19 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi everyone,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm working with LPC1778 controller and external SDRAM. I'm using IS42S16400F SDRAM chip (1M x 16 bits x 4 banks). LPC1778 is running at 120 MHz, EMC Clock is set to CPU/2 (60 MHz). I'm using Keil uVision, SDRAM base address is 0xA0000000.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I can read/write from SDRAM, as long as I don't write more than 512 bytes of data.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I can read/write from SDRAM more than 512 bytes only if I skip every other row (write 512 byte, skip 512 bytes, write 512 bytes etc.)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I'll try to clarify problems with few examples.&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;U32 *p2_extern = (U32 *) 0xA0000000;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;*(p2_extern +&amp;nbsp;&amp;nbsp; 0) = (U32)(p2_extern +&amp;nbsp;&amp;nbsp; 0);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;*(p2_extern +&amp;nbsp;&amp;nbsp; 1) = (U32)(p2_extern +&amp;nbsp;&amp;nbsp; 1);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;*(p2_extern + 128) = (U32)(p2_extern + 128);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;*(p2_extern + 129) = (U32)(p2_extern + 129);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;printf("Address %08x: %08x\n",&amp;nbsp;&amp;nbsp; (p2_extern +&amp;nbsp;&amp;nbsp; 0), *(p2_extern +&amp;nbsp;&amp;nbsp; 0));&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;printf("Address %08x: %08x\n",&amp;nbsp;&amp;nbsp; (p2_extern +&amp;nbsp;&amp;nbsp; 1), *(p2_extern +&amp;nbsp;&amp;nbsp; 1));&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;printf("Address %08x: %08x\n",&amp;nbsp;&amp;nbsp; (p2_extern +&amp;nbsp;&amp;nbsp; 128), *(p2_extern + 128));&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;printf("Address %08x: %08x\n",&amp;nbsp;&amp;nbsp; (p2_extern +&amp;nbsp;&amp;nbsp; 129), *(p2_extern + 129));&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;/code&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;In this example, everything seems OK. &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;Address a0000000: a0000000&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Address a0000004: a0000004&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Address a0000200: a0000200&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Address a0000204: a0000204&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;In next test I will try to write 512 bytes (128 x 32-bit variable) starting from SDRAM base address A000 0000.&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;U32 *p2_extern = (U32 *) 0xA0000000;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;U32 i;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;for(i = 0; i &amp;lt; 128; ++i)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; *p2_extern++ = p2_extern;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;p2_extern = (U32 *) 0xA0000000;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;for(i = 0; i &amp;lt; 128; ++i)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; if(i != 0 &amp;amp;&amp;amp; i % 8 == 0)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("\n");&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; printf("%08x ", *p1_extern++);&lt;/SPAN&gt;&lt;BR /&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;BR /&gt;&lt;SPAN&gt;Again, everything is OK. This way I can write on every SDRAM location, as long as don't write more than 512 bytes. &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;a0000000 a0000004 a0000008 a000000c a0000010 a0000014 a0000018 a000001c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000020 a0000024 a0000028 a000002c a0000030 a0000034 a0000038 a000003c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000040 a0000044 a0000048 a000004c a0000050 a0000054 a0000058 a000005c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000060 a0000064 a0000068 a000006c a0000070 a0000074 a0000078 a000007c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000080 a0000084 a0000088 a000008c a0000090 a0000094 a0000098 a000009c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00000a0 a00000a4 a00000a8 a00000ac a00000b0 a00000b4 a00000b8 a00000bc &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00000c0 a00000c4 a00000c8 a00000cc a00000d0 a00000d4 a00000d8 a00000dc &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00000e0 a00000e4 a00000e8 a00000ec a00000f0 a00000f4 a00000f8 a00000fc &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000100 a0000104 a0000108 a000010c a0000110 a0000114 a0000118 a000011c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000120 a0000124 a0000128 a000012c a0000130 a0000134 a0000138 a000013c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000140 a0000144 a0000148 a000014c a0000150 a0000154 a0000158 a000015c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000160 a0000164 a0000168 a000016c a0000170 a0000174 a0000178 a000017c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000180 a0000184 a0000188 a000018c a0000190 a0000194 a0000198 a000019c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00001a0 a00001a4 a00001a8 a00001ac a00001b0 a00001b4 a00001b8 a00001bc &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00001c0 a00001c4 a00001c8 a00001cc a00001d0 a00001d4 a00001d8 a00001dc &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00001e0 a00001e4 a00001e8 a00001ec a00001f0 a00001f4 a00001f8 a00001fc &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;Now I will try to write 1024 bytes (256 x 32-bit variables)&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;U32 *p2_extern = (U32 *) 0xA0000000;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;U32 i;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;for(i = 0; i &amp;lt; 256; ++i)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; *p2_extern++ = p2_extern;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;p2_extern = (U32 *) 0xA0000000;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;for(i = 0; i &amp;lt; 256; ++i)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; if(i != 0 &amp;amp;&amp;amp; i % 8 == 0)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("\n");&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; if(i != 0 &amp;amp;&amp;amp; i % 128 == 0)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("\n");&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; printf("%08x ", *p1_extern++);&lt;/SPAN&gt;&lt;BR /&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;As you can see, first 512 bytes are corrupted with second 512 bytes.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;code&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000200 a0000204 a0000208 a000020c a0000210 a0000214 a0000218 a000021c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000220 a0000224 a0000228 a000022c a0000230 a0000234 a0000238 a000023c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000240 a0000244 a0000248 a000024c a0000250 a0000254 a0000258 a000025c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000260 a0000264 a0000268 a000026c a0000270 a0000274 a0000278 a000027c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000280 a0000284 a0000288 a000028c a0000290 a0000294 a0000298 a000029c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00002a0 a00002a4 a00002a8 a00002ac a00002b0 a00002b4 a00002b8 a00002bc &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00002c0 a00002c4 a00002c8 a00002cc a00002d0 a00002d4 a00002d8 a00002dc &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00002e0 a00002e4 a00002e8 a00002ec a00002f0 a00002f4 a00002f8 a00002fc &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000300 a0000304 a0000308 a000030c a0000310 a0000314 a0000318 a000031c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000320 a0000324 a0000328 a000032c a0000330 a0000334 a0000338 a000033c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000340 a0000344 a0000348 a000034c a0000350 a0000354 a0000358 a000035c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000360 a0000364 a0000368 a000036c a0000370 a0000374 a0000378 a000037c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000380 a0000384 a0000388 a000038c a0000390 a0000394 a0000398 a000039c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00003a0 a00003a4 a00003a8 a00003ac a00003b0 a00003b4 a00003b8 a00003bc &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00003c0 a00003c4 a00003c8 a00003cc a00003d0 a00003d4 a00003d8 a00003dc &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00003e0 a00003e4 a00003e8 a00003ec a00003f0 a00003f4 a00003f8 a00003fc &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000200 a0000204 a0000208 a000020c a0000210 a0000214 a0000218 a000021c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000220 a0000224 a0000228 a000022c a0000230 a0000234 a0000238 a000023c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000240 a0000244 a0000248 a000024c a0000250 a0000254 a0000258 a000025c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000260 a0000264 a0000268 a000026c a0000270 a0000274 a0000278 a000027c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000280 a0000284 a0000288 a000028c a0000290 a0000294 a0000298 a000029c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00002a0 a00002a4 a00002a8 a00002ac a00002b0 a00002b4 a00002b8 a00002bc &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00002c0 a00002c4 a00002c8 a00002cc a00002d0 a00002d4 a00002d8 a00002dc &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00002e0 a00002e4 a00002e8 a00002ec a00002f0 a00002f4 a00002f8 a00002fc &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000300 a0000304 a0000308 a000030c a0000310 a0000314 a0000318 a000031c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000320 a0000324 a0000328 a000032c a0000330 a0000334 a0000338 a000033c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000340 a0000344 a0000348 a000034c a0000350 a0000354 a0000358 a000035c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000360 a0000364 a0000368 a000036c a0000370 a0000374 a0000378 a000037c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000380 a0000384 a0000388 a000038c a0000390 a0000394 a0000398 a000039c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00003a0 a00003a4 a00003a8 a00003ac a00003b0 a00003b4 a00003b8 a00003bc &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00003c0 a00003c4 a00003c8 a00003cc a00003d0 a00003d4 a00003d8 a00003dc &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00003e0 a00003e4 a00003e8 a00003ec a00003f0 a00003f4 a00003f8 a00003fc&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;Final example&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; Step 1: write 128 32-bit values, print value after each write. Writing at location [A000 0000 - A000 0200)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; Step 2: write 128 32-bit values, print value at same index, but in preceding SDRAM row.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; Step 3: print memory from a000 0000 - a000 0400&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;U32 *p2_extern = (U32 *) 0xA0000000;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;U32 i, j, temp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;printf("Writing and printing first 512 bytes\n");&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;for(i = 0; i &amp;lt; 128; ++i)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; if(i != 0 &amp;amp;&amp;amp; i % 8 == 0)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("\n");&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; *p2_extern = (U32) p2_extern;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; printf("%08x ", *p2_extern);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; p2_extern++;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;printf("\n\n\nWriting and printing another 512 bytes\n");&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;for(i = 0; i &amp;lt; 128; ++i)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; if(i != 0 &amp;amp;&amp;amp; i % 8 == 0)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("\n");&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; printf("%08x (", *(p2_extern - 128));&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; *p2_extern = (U32) p2_extern;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; printf("%08x) ", *(p2_extern - 128));&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; p2_extern++;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;p2_extern = (U32 *) 0xA0000000;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;for(i = 0; i &amp;lt; 256; ++i)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; if(i != 0 &amp;amp;&amp;amp; i % 8 == 0)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("\n");&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; printf("%08x ", *p1_extern++);&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;BR /&gt;&lt;SPAN&gt;In this example, it seems like everything is ok with first SDRAM row of data(a000 0000 - a000 0200), but after second row is finished, data in row 0 are exactly the same as data in row 1.&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;SPAN&gt;Writing and printing first 512 bytes&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000000 a0000004 a0000008 a000000c a0000010 a0000014 a0000018 a000001c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000020 a0000024 a0000028 a000002c a0000030 a0000034 a0000038 a000003c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000040 a0000044 a0000048 a000004c a0000050 a0000054 a0000058 a000005c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000060 a0000064 a0000068 a000006c a0000070 a0000074 a0000078 a000007c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000080 a0000084 a0000088 a000008c a0000090 a0000094 a0000098 a000009c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00000a0 a00000a4 a00000a8 a00000ac a00000b0 a00000b4 a00000b8 a00000bc &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00000c0 a00000c4 a00000c8 a00000cc a00000d0 a00000d4 a00000d8 a00000dc &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00000e0 a00000e4 a00000e8 a00000ec a00000f0 a00000f4 a00000f8 a00000fc &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000100 a0000104 a0000108 a000010c a0000110 a0000114 a0000118 a000011c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000120 a0000124 a0000128 a000012c a0000130 a0000134 a0000138 a000013c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000140 a0000144 a0000148 a000014c a0000150 a0000154 a0000158 a000015c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000160 a0000164 a0000168 a000016c a0000170 a0000174 a0000178 a000017c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000180 a0000184 a0000188 a000018c a0000190 a0000194 a0000198 a000019c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00001a0 a00001a4 a00001a8 a00001ac a00001b0 a00001b4 a00001b8 a00001bc &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00001c0 a00001c4 a00001c8 a00001cc a00001d0 a00001d4 a00001d8 a00001dc &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00001e0 a00001e4 a00001e8 a00001ec a00001f0 a00001f4 a00001f8 a00001fc &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Writing and printing another 512 bytes&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000000 (a0000000) a0000004 (a0000004) a0000008 (a0000008) a000000c (a000000c) a0000010 (a0000010) a0000014 (a0000014) a0000018 (a0000018) a000001c (a000001c) &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000020 (a0000020) a0000024 (a0000024) a0000028 (a0000028) a000002c (a000002c) a0000030 (a0000030) a0000034 (a0000034) a0000038 (a0000038) a000003c (a000003c) &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000040 (a0000040) a0000044 (a0000044) a0000048 (a0000048) a000004c (a000004c) a0000050 (a0000050) a0000054 (a0000054) a0000058 (a0000058) a000005c (a000005c) &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000060 (a0000060) a0000064 (a0000064) a0000068 (a0000068) a000006c (a000006c) a0000070 (a0000070) a0000074 (a0000074) a0000078 (a0000078) a000007c (a000007c) &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000080 (a0000080) a0000084 (a0000084) a0000088 (a0000088) a000008c (a000008c) a0000090 (a0000090) a0000094 (a0000094) a0000098 (a0000098) a000009c (a000009c) &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00000a0 (a00000a0) a00000a4 (a00000a4) a00000a8 (a00000a8) a00000ac (a00000ac) a00000b0 (a00000b0) a00000b4 (a00000b4) a00000b8 (a00000b8) a00000bc (a00000bc) &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00000c0 (a00000c0) a00000c4 (a00000c4) a00000c8 (a00000c8) a00000cc (a00000cc) a00000d0 (a00000d0) a00000d4 (a00000d4) a00000d8 (a00000d8) a00000dc (a00000dc) &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00000e0 (a00000e0) a00000e4 (a00000e4) a00000e8 (a00000e8) a00000ec (a00000ec) a00000f0 (a00000f0) a00000f4 (a00000f4) a00000f8 (a00000f8) a00000fc (a00000fc) &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000100 (a0000100) a0000104 (a0000104) a0000108 (a0000108) a000010c (a000010c) a0000110 (a0000110) a0000114 (a0000114) a0000118 (a0000118) a000011c (a000011c) &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000120 (a0000120) a0000124 (a0000124) a0000128 (a0000128) a000012c (a000012c) a0000130 (a0000130) a0000134 (a0000134) a0000138 (a0000138) a000013c (a000013c) &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000140 (a0000140) a0000144 (a0000144) a0000148 (a0000148) a000014c (a000014c) a0000150 (a0000150) a0000154 (a0000154) a0000158 (a0000158) a000015c (a000015c) &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000160 (a0000160) a0000164 (a0000164) a0000168 (a0000168) a000016c (a000016c) a0000170 (a0000170) a0000174 (a0000174) a0000178 (a0000178) a000017c (a000017c) &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000180 (a0000180) a0000184 (a0000184) a0000188 (a0000188) a000018c (a000018c) a0000190 (a0000190) a0000194 (a0000194) a0000198 (a0000198) a000019c (a000019c) &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00001a0 (a00001a0) a00001a4 (a00001a4) a00001a8 (a00001a8) a00001ac (a00001ac) a00001b0 (a00001b0) a00001b4 (a00001b4) a00001b8 (a00001b8) a00001bc (a00001bc) &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00001c0 (a00001c0) a00001c4 (a00001c4) a00001c8 (a00001c8) a00001cc (a00001cc) a00001d0 (a00001d0) a00001d4 (a00001d4) a00001d8 (a00001d8) a00001dc (a00001dc) &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00001e0 (a00001e0) a00001e4 (a00001e4) a00001e8 (a00001e8) a00001ec (a00001ec) a00001f0 (a00001f0) a00001f4 (a00001f4) a00001f8 (a00001f8) a00001fc (a00001fc) &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000200 a0000204 a0000208 a000020c a0000210 a0000214 a0000218 a000021c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000220 a0000224 a0000228 a000022c a0000230 a0000234 a0000238 a000023c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000240 a0000244 a0000248 a000024c a0000250 a0000254 a0000258 a000025c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000260 a0000264 a0000268 a000026c a0000270 a0000274 a0000278 a000027c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000280 a0000284 a0000288 a000028c a0000290 a0000294 a0000298 a000029c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00002a0 a00002a4 a00002a8 a00002ac a00002b0 a00002b4 a00002b8 a00002bc &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00002c0 a00002c4 a00002c8 a00002cc a00002d0 a00002d4 a00002d8 a00002dc &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00002e0 a00002e4 a00002e8 a00002ec a00002f0 a00002f4 a00002f8 a00002fc &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000300 a0000304 a0000308 a000030c a0000310 a0000314 a0000318 a000031c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000320 a0000324 a0000328 a000032c a0000330 a0000334 a0000338 a000033c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000340 a0000344 a0000348 a000034c a0000350 a0000354 a0000358 a000035c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000360 a0000364 a0000368 a000036c a0000370 a0000374 a0000378 a000037c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000380 a0000384 a0000388 a000038c a0000390 a0000394 a0000398 a000039c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00003a0 a00003a4 a00003a8 a00003ac a00003b0 a00003b4 a00003b8 a00003bc &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00003c0 a00003c4 a00003c8 a00003cc a00003d0 a00003d4 a00003d8 a00003dc &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00003e0 a00003e4 a00003e8 a00003ec a00003f0 a00003f4 a00003f8 a00003fc &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000200 a0000204 a0000208 a000020c a0000210 a0000214 a0000218 a000021c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000220 a0000224 a0000228 a000022c a0000230 a0000234 a0000238 a000023c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000240 a0000244 a0000248 a000024c a0000250 a0000254 a0000258 a000025c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000260 a0000264 a0000268 a000026c a0000270 a0000274 a0000278 a000027c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000280 a0000284 a0000288 a000028c a0000290 a0000294 a0000298 a000029c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00002a0 a00002a4 a00002a8 a00002ac a00002b0 a00002b4 a00002b8 a00002bc &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00002c0 a00002c4 a00002c8 a00002cc a00002d0 a00002d4 a00002d8 a00002dc &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00002e0 a00002e4 a00002e8 a00002ec a00002f0 a00002f4 a00002f8 a00002fc &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000300 a0000304 a0000308 a000030c a0000310 a0000314 a0000318 a000031c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000320 a0000324 a0000328 a000032c a0000330 a0000334 a0000338 a000033c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000340 a0000344 a0000348 a000034c a0000350 a0000354 a0000358 a000035c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000360 a0000364 a0000368 a000036c a0000370 a0000374 a0000378 a000037c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000380 a0000384 a0000388 a000038c a0000390 a0000394 a0000398 a000039c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00003a0 a00003a4 a00003a8 a00003ac a00003b0 a00003b4 a00003b8 a00003bc &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00003c0 a00003c4 a00003c8 a00003cc a00003d0 a00003d4 a00003d8 a00003dc &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00003e0 a00003e4 a00003e8 a00003ec a00003f0 a00003f4 a00003f8 a00003fc &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;At last, here is my EMC initialization&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;void emc_pin_config(void) &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P3_0&amp;nbsp; |= 0x01; /* D1&amp;nbsp; @ P3.0 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P3_1&amp;nbsp; |= 0x01; /* D3&amp;nbsp; @ P3.1 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P3_2&amp;nbsp; |= 0x01; /* D5&amp;nbsp; @ P3.2 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P3_3&amp;nbsp; |= 0x01; /* D15 @ P3.3 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P3_4&amp;nbsp; |= 0x01; /* D13 @ P3.4 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P3_5&amp;nbsp; |= 0x01; /* D12 @ P3.5 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P3_6&amp;nbsp; |= 0x01; /* D10 @ P3.6 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P3_7&amp;nbsp; |= 0x01; /* D9&amp;nbsp; @ P3.7 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P3_8&amp;nbsp; |= 0x01; /* D0&amp;nbsp;&amp;nbsp; @ P3.8 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P3_9&amp;nbsp; |= 0x01; /* D2&amp;nbsp;&amp;nbsp; @ P3.9 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P3_10 |= 0x01; /* D4&amp;nbsp;&amp;nbsp; @ P3.10 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P3_11 |= 0x01; /* D6&amp;nbsp;&amp;nbsp; @ P3.11 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P3_12 |= 0x01; /* D7&amp;nbsp;&amp;nbsp; @ P3.12 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P3_13 |= 0x01; /* D14&amp;nbsp; @ P3.13 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P3_14 |= 0x01; /* D11&amp;nbsp; @ P3.14 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P3_15 |= 0x01; /* D8&amp;nbsp;&amp;nbsp; @ P3.15 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P4_0&amp;nbsp; |= 0x01; /* A0 @ P4.0 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P4_1&amp;nbsp; |= 0x01; /* A1 @ P4.1 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P4_2&amp;nbsp; |= 0x01; /* A2 @ P4.2 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P4_3&amp;nbsp; |= 0x01; /* A3 @ P4.3 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P4_4&amp;nbsp; |= 0x01; /* A4 @ P4.4 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P4_5&amp;nbsp; |= 0x01; /* A5 @ P4.5 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P4_6&amp;nbsp; |= 0x01; /* A6 @ P4.6 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P4_7&amp;nbsp; |= 0x01; /* A7 @ P4.7 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P4_8&amp;nbsp; |= 0x01; /* A8&amp;nbsp; @ P4.8 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P4_9&amp;nbsp; |= 0x01; /* A9&amp;nbsp; @ P4.9 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P4_10 |= 0x01; /* A10 @ P4.10 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P4_11 |= 0x01; /* A11 @ P4.11 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P4_12 |= 0x01; /* BA0 @ P4.13 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P4_13 |= 0x01; /* BA1 @ P4.14 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P4_25 |= 0x01; /* WEN&amp;nbsp; @ P4.25 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P2_16 |= 0x01; /* CASN @ P2.16 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P2_17 |= 0x01; /* RASN @ P2.17 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P2_18 |= 0x01; /* CLK[0] @ P2.18 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P2_20 |= 0x01; /* DYCSN[0] @ P2.20 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P2_24 |= 0x01; /* CKE[0] @ P2.24 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P2_28 |= 0x01; /* DQM[0] @ P2.28 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P2_29 |= 0x01; /* DQM[1] @ P2.29 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;BOOL sdram_init (void)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; uint32_t i, dwtemp = dwtemp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; uint16_t wtemp = wtemp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_SC-&amp;gt;PCONP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |= 0x00000800;// postavi Power bit&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_SC-&amp;gt;EMCDLYCTL&amp;nbsp; = 0x00001010;// EMC Output delay: 4 ns, feedback clock delay 4 ns&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_EMC-&amp;gt;Control&amp;nbsp;&amp;nbsp; = 0x00000001;// EMC enabled&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_EMC-&amp;gt;Config&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x00000000;// Little endian &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; emc_pin_config();&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; // Configure memory layout, but MUST DISABLE BUFFERs during configuration, 64MB, 4Mx16, 4 banks, row=12, column=8&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_EMC-&amp;gt;DynamicConfig0 = 0x00000280;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; // Timing for 60 MHz Bus&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_EMC-&amp;gt;DynamicRasCas0&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x00000202; // 2 RAS, 2 CAS latency&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_EMC-&amp;gt;DynamicReadConfig = 0x00000001; // Command delayed strategy, using EMCCLKDELAY&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_EMC-&amp;gt;DynamicRP&amp;nbsp;&amp;nbsp; = 0x00000002; // min 20 ns &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_EMC-&amp;gt;DynamicRAS&amp;nbsp; = 0x00000003; // min 44 ns &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_EMC-&amp;gt;DynamicSREX = 0x00000007;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_EMC-&amp;gt;DynamicAPR&amp;nbsp; = 0x00000002; // min 20 ns &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_EMC-&amp;gt;DynamicDAL&amp;nbsp; = 0x00000005; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_EMC-&amp;gt;DynamicWR&amp;nbsp;&amp;nbsp; = 0x00000001; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_EMC-&amp;gt;DynamicRC&amp;nbsp;&amp;nbsp; = 0x00000005; // min 64 ns&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_EMC-&amp;gt;DynamicRFC&amp;nbsp; = 0x00000005; // min 64 ns&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_EMC-&amp;gt;DynamicXSR&amp;nbsp; = 0x00000007; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_EMC-&amp;gt;DynamicRRD&amp;nbsp; = 0x00000001; // min 14 ns&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_EMC-&amp;gt;DynamicMRD&amp;nbsp; = 0x00000002; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; for(i = 0; i &amp;lt; 0x80; i++); // wait 128 AHB clock cycles &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_EMC-&amp;gt;DynamicControl = 0x00000183; // Issue NOP command &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; for(i = 0; i &amp;lt; 0x80; i++); // wait 128 AHB clock cycles&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_EMC-&amp;gt;DynamicControl = 0x00000103; // Issue PALL command&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_EMC-&amp;gt;DynamicRefresh = 0x00000002; // ( n * 16 ) -&amp;gt; 32 clock cycles&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; for(i = 0; i &amp;lt; 0x80; i++); // wait 128 AHB clock cycles &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; //Timing for 50MHz Bus&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_EMC-&amp;gt;DynamicRefresh = 0x0000003A; // ( n * 16 ) -&amp;gt; 782 clock cycles -&amp;gt; 15.625uS ( 64ms / 4096 row )&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_EMC-&amp;gt;DynamicControl = 0x00000083; // Issue MODE command&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; dwtemp = *((volatile uint32_t *)(SDRAM_BASE | (0x23&amp;lt;&amp;lt;11))); // 8 burst, 2 CAS latency &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_EMC-&amp;gt;DynamicControl = 0x00000000; // Issue NORMAL command &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_EMC-&amp;gt;DynamicConfig0 |= 0x00080000;//[re]enable buffers&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; for(i = 0; i &amp;lt; 0x80; i++); // wait 128 AHB clock cycles &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; return __TRUE;&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;BR /&gt;&lt;SPAN&gt;Any idea? &lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 15 Jun 2016 17:42:32 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-15T17:42:32Z</dc:date>
    <item>
      <title>LPC1778 + SDRAM IS42S16400F</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC1778-SDRAM-IS42S16400F/m-p/519847#M3368</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by TP on Sat Oct 13 06:27:19 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi everyone,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm working with LPC1778 controller and external SDRAM. I'm using IS42S16400F SDRAM chip (1M x 16 bits x 4 banks). LPC1778 is running at 120 MHz, EMC Clock is set to CPU/2 (60 MHz). I'm using Keil uVision, SDRAM base address is 0xA0000000.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I can read/write from SDRAM, as long as I don't write more than 512 bytes of data.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I can read/write from SDRAM more than 512 bytes only if I skip every other row (write 512 byte, skip 512 bytes, write 512 bytes etc.)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I'll try to clarify problems with few examples.&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;U32 *p2_extern = (U32 *) 0xA0000000;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;*(p2_extern +&amp;nbsp;&amp;nbsp; 0) = (U32)(p2_extern +&amp;nbsp;&amp;nbsp; 0);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;*(p2_extern +&amp;nbsp;&amp;nbsp; 1) = (U32)(p2_extern +&amp;nbsp;&amp;nbsp; 1);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;*(p2_extern + 128) = (U32)(p2_extern + 128);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;*(p2_extern + 129) = (U32)(p2_extern + 129);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;printf("Address %08x: %08x\n",&amp;nbsp;&amp;nbsp; (p2_extern +&amp;nbsp;&amp;nbsp; 0), *(p2_extern +&amp;nbsp;&amp;nbsp; 0));&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;printf("Address %08x: %08x\n",&amp;nbsp;&amp;nbsp; (p2_extern +&amp;nbsp;&amp;nbsp; 1), *(p2_extern +&amp;nbsp;&amp;nbsp; 1));&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;printf("Address %08x: %08x\n",&amp;nbsp;&amp;nbsp; (p2_extern +&amp;nbsp;&amp;nbsp; 128), *(p2_extern + 128));&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;printf("Address %08x: %08x\n",&amp;nbsp;&amp;nbsp; (p2_extern +&amp;nbsp;&amp;nbsp; 129), *(p2_extern + 129));&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;/code&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;In this example, everything seems OK. &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;Address a0000000: a0000000&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Address a0000004: a0000004&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Address a0000200: a0000200&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Address a0000204: a0000204&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;In next test I will try to write 512 bytes (128 x 32-bit variable) starting from SDRAM base address A000 0000.&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;U32 *p2_extern = (U32 *) 0xA0000000;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;U32 i;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;for(i = 0; i &amp;lt; 128; ++i)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; *p2_extern++ = p2_extern;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;p2_extern = (U32 *) 0xA0000000;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;for(i = 0; i &amp;lt; 128; ++i)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; if(i != 0 &amp;amp;&amp;amp; i % 8 == 0)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("\n");&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; printf("%08x ", *p1_extern++);&lt;/SPAN&gt;&lt;BR /&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;BR /&gt;&lt;SPAN&gt;Again, everything is OK. This way I can write on every SDRAM location, as long as don't write more than 512 bytes. &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;a0000000 a0000004 a0000008 a000000c a0000010 a0000014 a0000018 a000001c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000020 a0000024 a0000028 a000002c a0000030 a0000034 a0000038 a000003c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000040 a0000044 a0000048 a000004c a0000050 a0000054 a0000058 a000005c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000060 a0000064 a0000068 a000006c a0000070 a0000074 a0000078 a000007c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000080 a0000084 a0000088 a000008c a0000090 a0000094 a0000098 a000009c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00000a0 a00000a4 a00000a8 a00000ac a00000b0 a00000b4 a00000b8 a00000bc &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00000c0 a00000c4 a00000c8 a00000cc a00000d0 a00000d4 a00000d8 a00000dc &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00000e0 a00000e4 a00000e8 a00000ec a00000f0 a00000f4 a00000f8 a00000fc &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000100 a0000104 a0000108 a000010c a0000110 a0000114 a0000118 a000011c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000120 a0000124 a0000128 a000012c a0000130 a0000134 a0000138 a000013c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000140 a0000144 a0000148 a000014c a0000150 a0000154 a0000158 a000015c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000160 a0000164 a0000168 a000016c a0000170 a0000174 a0000178 a000017c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000180 a0000184 a0000188 a000018c a0000190 a0000194 a0000198 a000019c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00001a0 a00001a4 a00001a8 a00001ac a00001b0 a00001b4 a00001b8 a00001bc &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00001c0 a00001c4 a00001c8 a00001cc a00001d0 a00001d4 a00001d8 a00001dc &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00001e0 a00001e4 a00001e8 a00001ec a00001f0 a00001f4 a00001f8 a00001fc &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;Now I will try to write 1024 bytes (256 x 32-bit variables)&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;U32 *p2_extern = (U32 *) 0xA0000000;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;U32 i;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;for(i = 0; i &amp;lt; 256; ++i)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; *p2_extern++ = p2_extern;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;p2_extern = (U32 *) 0xA0000000;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;for(i = 0; i &amp;lt; 256; ++i)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; if(i != 0 &amp;amp;&amp;amp; i % 8 == 0)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("\n");&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; if(i != 0 &amp;amp;&amp;amp; i % 128 == 0)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("\n");&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; printf("%08x ", *p1_extern++);&lt;/SPAN&gt;&lt;BR /&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;As you can see, first 512 bytes are corrupted with second 512 bytes.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;code&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000200 a0000204 a0000208 a000020c a0000210 a0000214 a0000218 a000021c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000220 a0000224 a0000228 a000022c a0000230 a0000234 a0000238 a000023c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000240 a0000244 a0000248 a000024c a0000250 a0000254 a0000258 a000025c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000260 a0000264 a0000268 a000026c a0000270 a0000274 a0000278 a000027c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000280 a0000284 a0000288 a000028c a0000290 a0000294 a0000298 a000029c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00002a0 a00002a4 a00002a8 a00002ac a00002b0 a00002b4 a00002b8 a00002bc &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00002c0 a00002c4 a00002c8 a00002cc a00002d0 a00002d4 a00002d8 a00002dc &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00002e0 a00002e4 a00002e8 a00002ec a00002f0 a00002f4 a00002f8 a00002fc &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000300 a0000304 a0000308 a000030c a0000310 a0000314 a0000318 a000031c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000320 a0000324 a0000328 a000032c a0000330 a0000334 a0000338 a000033c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000340 a0000344 a0000348 a000034c a0000350 a0000354 a0000358 a000035c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000360 a0000364 a0000368 a000036c a0000370 a0000374 a0000378 a000037c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000380 a0000384 a0000388 a000038c a0000390 a0000394 a0000398 a000039c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00003a0 a00003a4 a00003a8 a00003ac a00003b0 a00003b4 a00003b8 a00003bc &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00003c0 a00003c4 a00003c8 a00003cc a00003d0 a00003d4 a00003d8 a00003dc &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00003e0 a00003e4 a00003e8 a00003ec a00003f0 a00003f4 a00003f8 a00003fc &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000200 a0000204 a0000208 a000020c a0000210 a0000214 a0000218 a000021c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000220 a0000224 a0000228 a000022c a0000230 a0000234 a0000238 a000023c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000240 a0000244 a0000248 a000024c a0000250 a0000254 a0000258 a000025c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000260 a0000264 a0000268 a000026c a0000270 a0000274 a0000278 a000027c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000280 a0000284 a0000288 a000028c a0000290 a0000294 a0000298 a000029c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00002a0 a00002a4 a00002a8 a00002ac a00002b0 a00002b4 a00002b8 a00002bc &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00002c0 a00002c4 a00002c8 a00002cc a00002d0 a00002d4 a00002d8 a00002dc &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00002e0 a00002e4 a00002e8 a00002ec a00002f0 a00002f4 a00002f8 a00002fc &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000300 a0000304 a0000308 a000030c a0000310 a0000314 a0000318 a000031c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000320 a0000324 a0000328 a000032c a0000330 a0000334 a0000338 a000033c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000340 a0000344 a0000348 a000034c a0000350 a0000354 a0000358 a000035c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000360 a0000364 a0000368 a000036c a0000370 a0000374 a0000378 a000037c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000380 a0000384 a0000388 a000038c a0000390 a0000394 a0000398 a000039c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00003a0 a00003a4 a00003a8 a00003ac a00003b0 a00003b4 a00003b8 a00003bc &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00003c0 a00003c4 a00003c8 a00003cc a00003d0 a00003d4 a00003d8 a00003dc &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00003e0 a00003e4 a00003e8 a00003ec a00003f0 a00003f4 a00003f8 a00003fc&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;Final example&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; Step 1: write 128 32-bit values, print value after each write. Writing at location [A000 0000 - A000 0200)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; Step 2: write 128 32-bit values, print value at same index, but in preceding SDRAM row.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; Step 3: print memory from a000 0000 - a000 0400&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;U32 *p2_extern = (U32 *) 0xA0000000;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;U32 i, j, temp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;printf("Writing and printing first 512 bytes\n");&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;for(i = 0; i &amp;lt; 128; ++i)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; if(i != 0 &amp;amp;&amp;amp; i % 8 == 0)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("\n");&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; *p2_extern = (U32) p2_extern;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; printf("%08x ", *p2_extern);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; p2_extern++;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;printf("\n\n\nWriting and printing another 512 bytes\n");&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;for(i = 0; i &amp;lt; 128; ++i)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; if(i != 0 &amp;amp;&amp;amp; i % 8 == 0)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("\n");&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; printf("%08x (", *(p2_extern - 128));&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; *p2_extern = (U32) p2_extern;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; printf("%08x) ", *(p2_extern - 128));&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; p2_extern++;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;p2_extern = (U32 *) 0xA0000000;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;for(i = 0; i &amp;lt; 256; ++i)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; if(i != 0 &amp;amp;&amp;amp; i % 8 == 0)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("\n");&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; printf("%08x ", *p1_extern++);&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;BR /&gt;&lt;SPAN&gt;In this example, it seems like everything is ok with first SDRAM row of data(a000 0000 - a000 0200), but after second row is finished, data in row 0 are exactly the same as data in row 1.&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;SPAN&gt;Writing and printing first 512 bytes&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000000 a0000004 a0000008 a000000c a0000010 a0000014 a0000018 a000001c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000020 a0000024 a0000028 a000002c a0000030 a0000034 a0000038 a000003c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000040 a0000044 a0000048 a000004c a0000050 a0000054 a0000058 a000005c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000060 a0000064 a0000068 a000006c a0000070 a0000074 a0000078 a000007c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000080 a0000084 a0000088 a000008c a0000090 a0000094 a0000098 a000009c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00000a0 a00000a4 a00000a8 a00000ac a00000b0 a00000b4 a00000b8 a00000bc &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00000c0 a00000c4 a00000c8 a00000cc a00000d0 a00000d4 a00000d8 a00000dc &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00000e0 a00000e4 a00000e8 a00000ec a00000f0 a00000f4 a00000f8 a00000fc &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000100 a0000104 a0000108 a000010c a0000110 a0000114 a0000118 a000011c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000120 a0000124 a0000128 a000012c a0000130 a0000134 a0000138 a000013c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000140 a0000144 a0000148 a000014c a0000150 a0000154 a0000158 a000015c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000160 a0000164 a0000168 a000016c a0000170 a0000174 a0000178 a000017c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000180 a0000184 a0000188 a000018c a0000190 a0000194 a0000198 a000019c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00001a0 a00001a4 a00001a8 a00001ac a00001b0 a00001b4 a00001b8 a00001bc &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00001c0 a00001c4 a00001c8 a00001cc a00001d0 a00001d4 a00001d8 a00001dc &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00001e0 a00001e4 a00001e8 a00001ec a00001f0 a00001f4 a00001f8 a00001fc &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Writing and printing another 512 bytes&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000000 (a0000000) a0000004 (a0000004) a0000008 (a0000008) a000000c (a000000c) a0000010 (a0000010) a0000014 (a0000014) a0000018 (a0000018) a000001c (a000001c) &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000020 (a0000020) a0000024 (a0000024) a0000028 (a0000028) a000002c (a000002c) a0000030 (a0000030) a0000034 (a0000034) a0000038 (a0000038) a000003c (a000003c) &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000040 (a0000040) a0000044 (a0000044) a0000048 (a0000048) a000004c (a000004c) a0000050 (a0000050) a0000054 (a0000054) a0000058 (a0000058) a000005c (a000005c) &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000060 (a0000060) a0000064 (a0000064) a0000068 (a0000068) a000006c (a000006c) a0000070 (a0000070) a0000074 (a0000074) a0000078 (a0000078) a000007c (a000007c) &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000080 (a0000080) a0000084 (a0000084) a0000088 (a0000088) a000008c (a000008c) a0000090 (a0000090) a0000094 (a0000094) a0000098 (a0000098) a000009c (a000009c) &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00000a0 (a00000a0) a00000a4 (a00000a4) a00000a8 (a00000a8) a00000ac (a00000ac) a00000b0 (a00000b0) a00000b4 (a00000b4) a00000b8 (a00000b8) a00000bc (a00000bc) &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00000c0 (a00000c0) a00000c4 (a00000c4) a00000c8 (a00000c8) a00000cc (a00000cc) a00000d0 (a00000d0) a00000d4 (a00000d4) a00000d8 (a00000d8) a00000dc (a00000dc) &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00000e0 (a00000e0) a00000e4 (a00000e4) a00000e8 (a00000e8) a00000ec (a00000ec) a00000f0 (a00000f0) a00000f4 (a00000f4) a00000f8 (a00000f8) a00000fc (a00000fc) &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000100 (a0000100) a0000104 (a0000104) a0000108 (a0000108) a000010c (a000010c) a0000110 (a0000110) a0000114 (a0000114) a0000118 (a0000118) a000011c (a000011c) &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000120 (a0000120) a0000124 (a0000124) a0000128 (a0000128) a000012c (a000012c) a0000130 (a0000130) a0000134 (a0000134) a0000138 (a0000138) a000013c (a000013c) &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000140 (a0000140) a0000144 (a0000144) a0000148 (a0000148) a000014c (a000014c) a0000150 (a0000150) a0000154 (a0000154) a0000158 (a0000158) a000015c (a000015c) &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000160 (a0000160) a0000164 (a0000164) a0000168 (a0000168) a000016c (a000016c) a0000170 (a0000170) a0000174 (a0000174) a0000178 (a0000178) a000017c (a000017c) &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000180 (a0000180) a0000184 (a0000184) a0000188 (a0000188) a000018c (a000018c) a0000190 (a0000190) a0000194 (a0000194) a0000198 (a0000198) a000019c (a000019c) &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00001a0 (a00001a0) a00001a4 (a00001a4) a00001a8 (a00001a8) a00001ac (a00001ac) a00001b0 (a00001b0) a00001b4 (a00001b4) a00001b8 (a00001b8) a00001bc (a00001bc) &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00001c0 (a00001c0) a00001c4 (a00001c4) a00001c8 (a00001c8) a00001cc (a00001cc) a00001d0 (a00001d0) a00001d4 (a00001d4) a00001d8 (a00001d8) a00001dc (a00001dc) &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00001e0 (a00001e0) a00001e4 (a00001e4) a00001e8 (a00001e8) a00001ec (a00001ec) a00001f0 (a00001f0) a00001f4 (a00001f4) a00001f8 (a00001f8) a00001fc (a00001fc) &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000200 a0000204 a0000208 a000020c a0000210 a0000214 a0000218 a000021c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000220 a0000224 a0000228 a000022c a0000230 a0000234 a0000238 a000023c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000240 a0000244 a0000248 a000024c a0000250 a0000254 a0000258 a000025c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000260 a0000264 a0000268 a000026c a0000270 a0000274 a0000278 a000027c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000280 a0000284 a0000288 a000028c a0000290 a0000294 a0000298 a000029c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00002a0 a00002a4 a00002a8 a00002ac a00002b0 a00002b4 a00002b8 a00002bc &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00002c0 a00002c4 a00002c8 a00002cc a00002d0 a00002d4 a00002d8 a00002dc &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00002e0 a00002e4 a00002e8 a00002ec a00002f0 a00002f4 a00002f8 a00002fc &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000300 a0000304 a0000308 a000030c a0000310 a0000314 a0000318 a000031c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000320 a0000324 a0000328 a000032c a0000330 a0000334 a0000338 a000033c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000340 a0000344 a0000348 a000034c a0000350 a0000354 a0000358 a000035c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000360 a0000364 a0000368 a000036c a0000370 a0000374 a0000378 a000037c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000380 a0000384 a0000388 a000038c a0000390 a0000394 a0000398 a000039c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00003a0 a00003a4 a00003a8 a00003ac a00003b0 a00003b4 a00003b8 a00003bc &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00003c0 a00003c4 a00003c8 a00003cc a00003d0 a00003d4 a00003d8 a00003dc &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00003e0 a00003e4 a00003e8 a00003ec a00003f0 a00003f4 a00003f8 a00003fc &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000200 a0000204 a0000208 a000020c a0000210 a0000214 a0000218 a000021c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000220 a0000224 a0000228 a000022c a0000230 a0000234 a0000238 a000023c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000240 a0000244 a0000248 a000024c a0000250 a0000254 a0000258 a000025c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000260 a0000264 a0000268 a000026c a0000270 a0000274 a0000278 a000027c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000280 a0000284 a0000288 a000028c a0000290 a0000294 a0000298 a000029c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00002a0 a00002a4 a00002a8 a00002ac a00002b0 a00002b4 a00002b8 a00002bc &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00002c0 a00002c4 a00002c8 a00002cc a00002d0 a00002d4 a00002d8 a00002dc &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00002e0 a00002e4 a00002e8 a00002ec a00002f0 a00002f4 a00002f8 a00002fc &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000300 a0000304 a0000308 a000030c a0000310 a0000314 a0000318 a000031c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000320 a0000324 a0000328 a000032c a0000330 a0000334 a0000338 a000033c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000340 a0000344 a0000348 a000034c a0000350 a0000354 a0000358 a000035c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000360 a0000364 a0000368 a000036c a0000370 a0000374 a0000378 a000037c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a0000380 a0000384 a0000388 a000038c a0000390 a0000394 a0000398 a000039c &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00003a0 a00003a4 a00003a8 a00003ac a00003b0 a00003b4 a00003b8 a00003bc &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00003c0 a00003c4 a00003c8 a00003cc a00003d0 a00003d4 a00003d8 a00003dc &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a00003e0 a00003e4 a00003e8 a00003ec a00003f0 a00003f4 a00003f8 a00003fc &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;At last, here is my EMC initialization&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;void emc_pin_config(void) &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P3_0&amp;nbsp; |= 0x01; /* D1&amp;nbsp; @ P3.0 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P3_1&amp;nbsp; |= 0x01; /* D3&amp;nbsp; @ P3.1 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P3_2&amp;nbsp; |= 0x01; /* D5&amp;nbsp; @ P3.2 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P3_3&amp;nbsp; |= 0x01; /* D15 @ P3.3 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P3_4&amp;nbsp; |= 0x01; /* D13 @ P3.4 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P3_5&amp;nbsp; |= 0x01; /* D12 @ P3.5 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P3_6&amp;nbsp; |= 0x01; /* D10 @ P3.6 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P3_7&amp;nbsp; |= 0x01; /* D9&amp;nbsp; @ P3.7 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P3_8&amp;nbsp; |= 0x01; /* D0&amp;nbsp;&amp;nbsp; @ P3.8 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P3_9&amp;nbsp; |= 0x01; /* D2&amp;nbsp;&amp;nbsp; @ P3.9 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P3_10 |= 0x01; /* D4&amp;nbsp;&amp;nbsp; @ P3.10 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P3_11 |= 0x01; /* D6&amp;nbsp;&amp;nbsp; @ P3.11 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P3_12 |= 0x01; /* D7&amp;nbsp;&amp;nbsp; @ P3.12 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P3_13 |= 0x01; /* D14&amp;nbsp; @ P3.13 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P3_14 |= 0x01; /* D11&amp;nbsp; @ P3.14 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P3_15 |= 0x01; /* D8&amp;nbsp;&amp;nbsp; @ P3.15 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P4_0&amp;nbsp; |= 0x01; /* A0 @ P4.0 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P4_1&amp;nbsp; |= 0x01; /* A1 @ P4.1 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P4_2&amp;nbsp; |= 0x01; /* A2 @ P4.2 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P4_3&amp;nbsp; |= 0x01; /* A3 @ P4.3 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P4_4&amp;nbsp; |= 0x01; /* A4 @ P4.4 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P4_5&amp;nbsp; |= 0x01; /* A5 @ P4.5 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P4_6&amp;nbsp; |= 0x01; /* A6 @ P4.6 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P4_7&amp;nbsp; |= 0x01; /* A7 @ P4.7 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P4_8&amp;nbsp; |= 0x01; /* A8&amp;nbsp; @ P4.8 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P4_9&amp;nbsp; |= 0x01; /* A9&amp;nbsp; @ P4.9 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P4_10 |= 0x01; /* A10 @ P4.10 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P4_11 |= 0x01; /* A11 @ P4.11 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P4_12 |= 0x01; /* BA0 @ P4.13 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P4_13 |= 0x01; /* BA1 @ P4.14 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P4_25 |= 0x01; /* WEN&amp;nbsp; @ P4.25 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P2_16 |= 0x01; /* CASN @ P2.16 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P2_17 |= 0x01; /* RASN @ P2.17 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P2_18 |= 0x01; /* CLK[0] @ P2.18 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P2_20 |= 0x01; /* DYCSN[0] @ P2.20 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P2_24 |= 0x01; /* CKE[0] @ P2.24 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P2_28 |= 0x01; /* DQM[0] @ P2.28 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;P2_29 |= 0x01; /* DQM[1] @ P2.29 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;BOOL sdram_init (void)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; uint32_t i, dwtemp = dwtemp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; uint16_t wtemp = wtemp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_SC-&amp;gt;PCONP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |= 0x00000800;// postavi Power bit&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_SC-&amp;gt;EMCDLYCTL&amp;nbsp; = 0x00001010;// EMC Output delay: 4 ns, feedback clock delay 4 ns&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_EMC-&amp;gt;Control&amp;nbsp;&amp;nbsp; = 0x00000001;// EMC enabled&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_EMC-&amp;gt;Config&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x00000000;// Little endian &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; emc_pin_config();&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; // Configure memory layout, but MUST DISABLE BUFFERs during configuration, 64MB, 4Mx16, 4 banks, row=12, column=8&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_EMC-&amp;gt;DynamicConfig0 = 0x00000280;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; // Timing for 60 MHz Bus&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_EMC-&amp;gt;DynamicRasCas0&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x00000202; // 2 RAS, 2 CAS latency&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_EMC-&amp;gt;DynamicReadConfig = 0x00000001; // Command delayed strategy, using EMCCLKDELAY&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_EMC-&amp;gt;DynamicRP&amp;nbsp;&amp;nbsp; = 0x00000002; // min 20 ns &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_EMC-&amp;gt;DynamicRAS&amp;nbsp; = 0x00000003; // min 44 ns &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_EMC-&amp;gt;DynamicSREX = 0x00000007;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_EMC-&amp;gt;DynamicAPR&amp;nbsp; = 0x00000002; // min 20 ns &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_EMC-&amp;gt;DynamicDAL&amp;nbsp; = 0x00000005; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_EMC-&amp;gt;DynamicWR&amp;nbsp;&amp;nbsp; = 0x00000001; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_EMC-&amp;gt;DynamicRC&amp;nbsp;&amp;nbsp; = 0x00000005; // min 64 ns&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_EMC-&amp;gt;DynamicRFC&amp;nbsp; = 0x00000005; // min 64 ns&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_EMC-&amp;gt;DynamicXSR&amp;nbsp; = 0x00000007; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_EMC-&amp;gt;DynamicRRD&amp;nbsp; = 0x00000001; // min 14 ns&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_EMC-&amp;gt;DynamicMRD&amp;nbsp; = 0x00000002; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; for(i = 0; i &amp;lt; 0x80; i++); // wait 128 AHB clock cycles &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_EMC-&amp;gt;DynamicControl = 0x00000183; // Issue NOP command &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; for(i = 0; i &amp;lt; 0x80; i++); // wait 128 AHB clock cycles&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_EMC-&amp;gt;DynamicControl = 0x00000103; // Issue PALL command&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_EMC-&amp;gt;DynamicRefresh = 0x00000002; // ( n * 16 ) -&amp;gt; 32 clock cycles&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; for(i = 0; i &amp;lt; 0x80; i++); // wait 128 AHB clock cycles &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; //Timing for 50MHz Bus&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_EMC-&amp;gt;DynamicRefresh = 0x0000003A; // ( n * 16 ) -&amp;gt; 782 clock cycles -&amp;gt; 15.625uS ( 64ms / 4096 row )&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_EMC-&amp;gt;DynamicControl = 0x00000083; // Issue MODE command&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; dwtemp = *((volatile uint32_t *)(SDRAM_BASE | (0x23&amp;lt;&amp;lt;11))); // 8 burst, 2 CAS latency &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_EMC-&amp;gt;DynamicControl = 0x00000000; // Issue NORMAL command &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; LPC_EMC-&amp;gt;DynamicConfig0 |= 0x00080000;//[re]enable buffers&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; for(i = 0; i &amp;lt; 0x80; i++); // wait 128 AHB clock cycles &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; return __TRUE;&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;BR /&gt;&lt;SPAN&gt;Any idea? &lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 17:42:32 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC1778-SDRAM-IS42S16400F/m-p/519847#M3368</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T17:42:32Z</dc:date>
    </item>
    <item>
      <title>Re: LPC1778 + SDRAM IS42S16400F</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC1778-SDRAM-IS42S16400F/m-p/519848#M3369</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by DF9DQ on Sat Oct 13 08:47:59 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi Thomas,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This little detail confuses me:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;code&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_IOCON-&amp;gt;P4_12 |= 0x01; /* BA0 @ P4.13 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_IOCON-&amp;gt;P4_13 |= 0x01; /* BA1 @ P4.14 */&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;How are the bank select lines connected to the controller?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Regards,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Rolf&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 17:42:33 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC1778-SDRAM-IS42S16400F/m-p/519848#M3369</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T17:42:33Z</dc:date>
    </item>
    <item>
      <title>Re: LPC1778 + SDRAM IS42S16400F</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC1778-SDRAM-IS42S16400F/m-p/519849#M3370</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by TP on Sun Oct 14 01:53:54 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Sorry, comments are wrong. This is my pin configuration:&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;LPC_IOCON-&amp;gt;P4_12 |= 0x01; /* BA0 @ P4.12 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_IOCON-&amp;gt;P4_13 |= 0x01; /* BA1 @ P4.13 */&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;Regards,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Thomas&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 17:42:34 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC1778-SDRAM-IS42S16400F/m-p/519849#M3370</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T17:42:34Z</dc:date>
    </item>
    <item>
      <title>Re: LPC1778 + SDRAM IS42S16400F</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC1778-SDRAM-IS42S16400F/m-p/519850#M3371</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by DF9DQ on Sun Oct 14 02:43:24 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;That explains it :-(&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Independent of the SDRAM organization, BA0/BA1 must always go to A13/A14!&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;You use RBC mode, where rows from all four banks appear interleaved in the address space. The wrong bank connection causes every other row to be skipped.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I hope you don't have BGA packages, and can rework a board (connect BA0 to A14 instead of A12).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Alternatively you could use BRC ("low-power") SDRAM mode for the moment. You can only use half of the SDRAM, but in one contiguous block!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Regards,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Rolf&lt;/SPAN&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 17:42:35 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC1778-SDRAM-IS42S16400F/m-p/519850#M3371</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T17:42:35Z</dc:date>
    </item>
    <item>
      <title>Re: LPC1778 + SDRAM IS42S16400F</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC1778-SDRAM-IS42S16400F/m-p/519851#M3372</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by TP on Sun Oct 14 13:08:59 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Thank you, that's it :)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I thought that SDRAM bank is computed from address, but that is not the case.&amp;nbsp;&amp;nbsp; &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;The SDRAM bank select pins BA1 and BA0 are connected to address lines A14 and A13, respectively.&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;Regards,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Thomas&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 17:42:35 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC1778-SDRAM-IS42S16400F/m-p/519851#M3372</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T17:42:35Z</dc:date>
    </item>
  </channel>
</rss>

