<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic External SDRAM with EMC in LPCXpresso IDE</title>
    <link>https://community.nxp.com/t5/LPCXpresso-IDE/External-SDRAM-with-EMC/m-p/688701#M33005</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi there,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have a custom pcb mounted with an LPC4367 and interfaced with EMC an external sdram IS42S16320D of 512Mbit.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have followed AN11508 and set up emc and sdram timings.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have ported from lpcopen 3.01 for keil the process of initialization of EMC and sdram. I have also ported and run the memtest that lpcopen 3.01 provides (periph_memtest) and sdram works fine.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;After setting up the emc and sdram i am kind of confused how to use the external sdram.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have some questions.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1.&lt;/P&gt;&lt;P&gt;What is the suggested procedure to correclty use external sdram?&lt;/P&gt;&lt;P&gt;Do i have to go to Project-Settings-MCU and add the new sdram?&lt;/P&gt;&lt;P&gt;Do i have to manually modify the linker script?&lt;/P&gt;&lt;P&gt;Both?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have only found scattered information and not a complete guide of how to use external sdram&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2.&lt;/P&gt;&lt;P&gt;In lpcopen 3.01 for keil 4357 (which i follow and port various things from there to my custom pcb)&lt;/P&gt;&lt;P&gt;in periph_lcd example the only thing i see regarding sdram is the below line:&lt;/P&gt;&lt;P&gt;static uint16_t *framebuffer = (uint16_t *) FRAMEBUFFER_ADDR;&lt;/P&gt;&lt;P&gt;where FRAMEBUFFER_ADDR is 0x28000000 which is the memory emc puts external sdram. I also configured emc for my custom pcb the same way. 0x28000000 is my base sdram address.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I see nowhere in project setting of adding a new ram block or any mention to that address in linker script or any use of cr_section_macros.h.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Is just declaring a pointer or a variable like the&lt;/P&gt;&lt;P&gt;static uint16_t *framebuffer = (uint16_t *) FRAMEBUFFER_ADDR&lt;/P&gt;&lt;P&gt;enough for using sdram?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;NXP, I need some help and explanation.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please don't post the obvious answers and links without any explanation like&lt;/P&gt;&lt;P&gt;&lt;A href="https://community.nxp.com/thread/389100"&gt;Placing data into different RAM blocks&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;A href="https://community.nxp.com/thread/420361"&gt; Allocating dynamic memory in External SDRAM&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;and links that google search returns.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have read those and weren't concrete enough to get the whole picture.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks a lot in advance!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 07 Jul 2017 14:06:53 GMT</pubDate>
    <dc:creator>dimitrissideris</dc:creator>
    <dc:date>2017-07-07T14:06:53Z</dc:date>
    <item>
      <title>External SDRAM with EMC</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/External-SDRAM-with-EMC/m-p/688701#M33005</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi there,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have a custom pcb mounted with an LPC4367 and interfaced with EMC an external sdram IS42S16320D of 512Mbit.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have followed AN11508 and set up emc and sdram timings.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have ported from lpcopen 3.01 for keil the process of initialization of EMC and sdram. I have also ported and run the memtest that lpcopen 3.01 provides (periph_memtest) and sdram works fine.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;After setting up the emc and sdram i am kind of confused how to use the external sdram.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have some questions.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1.&lt;/P&gt;&lt;P&gt;What is the suggested procedure to correclty use external sdram?&lt;/P&gt;&lt;P&gt;Do i have to go to Project-Settings-MCU and add the new sdram?&lt;/P&gt;&lt;P&gt;Do i have to manually modify the linker script?&lt;/P&gt;&lt;P&gt;Both?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have only found scattered information and not a complete guide of how to use external sdram&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2.&lt;/P&gt;&lt;P&gt;In lpcopen 3.01 for keil 4357 (which i follow and port various things from there to my custom pcb)&lt;/P&gt;&lt;P&gt;in periph_lcd example the only thing i see regarding sdram is the below line:&lt;/P&gt;&lt;P&gt;static uint16_t *framebuffer = (uint16_t *) FRAMEBUFFER_ADDR;&lt;/P&gt;&lt;P&gt;where FRAMEBUFFER_ADDR is 0x28000000 which is the memory emc puts external sdram. I also configured emc for my custom pcb the same way. 0x28000000 is my base sdram address.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I see nowhere in project setting of adding a new ram block or any mention to that address in linker script or any use of cr_section_macros.h.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Is just declaring a pointer or a variable like the&lt;/P&gt;&lt;P&gt;static uint16_t *framebuffer = (uint16_t *) FRAMEBUFFER_ADDR&lt;/P&gt;&lt;P&gt;enough for using sdram?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;NXP, I need some help and explanation.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please don't post the obvious answers and links without any explanation like&lt;/P&gt;&lt;P&gt;&lt;A href="https://community.nxp.com/thread/389100"&gt;Placing data into different RAM blocks&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;A href="https://community.nxp.com/thread/420361"&gt; Allocating dynamic memory in External SDRAM&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;and links that google search returns.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have read those and weren't concrete enough to get the whole picture.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks a lot in advance!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 07 Jul 2017 14:06:53 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/External-SDRAM-with-EMC/m-p/688701#M33005</guid>
      <dc:creator>dimitrissideris</dc:creator>
      <dc:date>2017-07-07T14:06:53Z</dc:date>
    </item>
    <item>
      <title>Re: External SDRAM with EMC</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/External-SDRAM-with-EMC/m-p/688702#M33006</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You should define a region for your SDRAM using the LPCXpresso Memory Configuration Editor (information available in the User's Manual and FAQ section of this site). Once you have a SDRAM memory region, you can allocate code/data to it. The Managed Linker script mechanism will incorporate the new memory region in the generated linker scripts as part of the next build. Read up on the cr_sections_macro.h header. This header file contains convenient macros for allocating code/data to particular memory regions. This is covered in one of the links you posted.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Note also, the EMC must be setup prior to executing the LPCXpresso startup code which copies code and/or initialized data, and clears bss &lt;EM&gt;presuming&lt;/EM&gt; you're using the SDRAM region for this purpose. You'll add the SDRAM setup to the LPCXpresso ResetISR() entry (cr_startup_lpc43xx.c) before the calls to either data_init() or bss_init().&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks and regards,&lt;/P&gt;&lt;P&gt;LPCXpresso Support&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;EDIT: &amp;nbsp;Here's a link to application note &lt;A href="http://www.nxp.com/docs/en/application-note/AN11508.pdf"&gt;AN11508 SDRAM interface to LPC18xx/43xx EMC&lt;/A&gt;&amp;nbsp;in case needed by anyone else.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 07 Jul 2017 18:24:43 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/External-SDRAM-with-EMC/m-p/688702#M33006</guid>
      <dc:creator>lpcxpresso_supp</dc:creator>
      <dc:date>2017-07-07T18:24:43Z</dc:date>
    </item>
    <item>
      <title>Re: External SDRAM with EMC</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/External-SDRAM-with-EMC/m-p/688703#M33007</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for replying!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For initializing EMC i follow the procedure of the examples of lpcopen 3.01 for keil where there is a external sdram initialization.&lt;/P&gt;&lt;P&gt;In all the examples no memory region is added in mcu settings nor there is no mention to sdram and its address in the linker scripts.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Sdram is usded just by declaring a framebuffer to the start of sdram address.&lt;/P&gt;&lt;P&gt;"""&lt;/P&gt;&lt;P&gt;static uint16_t *framebuffer = (uint16_t *) FRAMEBUFFER_ADDR&lt;/P&gt;&lt;P&gt;"""&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Are lpcopen examples valid?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 10 Jul 2017 07:48:38 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/External-SDRAM-with-EMC/m-p/688703#M33007</guid>
      <dc:creator>dimitrissideris</dc:creator>
      <dc:date>2017-07-10T07:48:38Z</dc:date>
    </item>
    <item>
      <title>Re: External SDRAM with EMC</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/External-SDRAM-with-EMC/m-p/688704#M33008</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;So if you use a pointer to access the SDRAM in this manner, then you won't need to necessarily configure the SDRAM in the IDE's memory configuration. However I would suggest doing so, as this means that the IDE will be able to pass the memory configuration details to the debugger.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;LPCXpresso Support&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 11 Jul 2017 10:26:45 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/External-SDRAM-with-EMC/m-p/688704#M33008</guid>
      <dc:creator>lpcxpresso_supp</dc:creator>
      <dc:date>2017-07-11T10:26:45Z</dc:date>
    </item>
    <item>
      <title>Re: External SDRAM with EMC</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/External-SDRAM-with-EMC/m-p/688705#M33009</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks a lot that made it clear.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FYI there is another post that i have moved forward and still having some issues with external sdram.&lt;/P&gt;&lt;P&gt;&lt;A _jive_internal="true" class="link-titled" href="https://community.nxp.com/message/922580?commentID=922580#comment-922580" title="https://community.nxp.com/message/922580?commentID=922580#comment-922580"&gt;https://community.nxp.com/message/922580?commentID=922580#comment-922580&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You can consider this thread closed.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks a lot!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 11 Jul 2017 11:09:05 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/External-SDRAM-with-EMC/m-p/688705#M33009</guid>
      <dc:creator>dimitrissideris</dc:creator>
      <dc:date>2017-07-11T11:09:05Z</dc:date>
    </item>
  </channel>
</rss>

