<?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 Re: K70 LCDC performance with graphics window in Kinetis Microcontrollers</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/K70-LCDC-performance-with-graphics-window/m-p/179949#M1695</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Julian,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Only once at system startup.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best Regards,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Luis&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 19 Nov 2012 16:51:50 GMT</pubDate>
    <dc:creator>LuisCasado</dc:creator>
    <dc:date>2012-11-19T16:51:50Z</dc:date>
    <item>
      <title>K70 LCDC performance with graphics window</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/K70-LCDC-performance-with-graphics-window/m-p/179946#M1692</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi everybody,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm developing an baremetal application on the K70 Tower Board with the RGB-LCD addon. I started by using the lcdc example from the KINETIS_120MHZ_SC package and everythind worked fine. I find it very intuitive to directly manipulate the pixels in memory (external DDR2) and write the basic functions by myself.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;However, I noticed when clearing the screen and completely redrawing it, there was a certain amount of flickering visible. I assume that the reason for this is, that the lcdc decides by itself when to refresh the screen and not after the program has rewritten the whole memory for the screen.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Therefore I looked for a possibiltiy to refresh the screen manually "by myself" after I was done editing the pixels im memory.&lt;/P&gt;&lt;P&gt;I ended up using the normal screen and the so called "graphics window" ontop of each other with the same dimensions.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;One of the two is displayed while the program draws the new image in the second one. After the draw process is completed, I swap the images (by either displaying the graphics window or not, so the normal screen is visible).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Why do I do this?&lt;/P&gt;&lt;P&gt;The later application is (naturally) supposed to run as fast and fluid as possible so I needed a way of refreshing the display manually and didnt find any...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Now lets face the performance issue:&lt;/P&gt;&lt;P&gt;Since I want to refresh the screen as often as possible, the program redraws the whole screen in the while(1) together with the menue-navigation.&lt;/P&gt;&lt;P&gt;When there is no change in the menue (attached rotary-encoder for navigation), the graphics window and the screen contain an identical set of data/pixels and no flickering is visible.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Unfortunately, when I quickly navigate through the menue, I see, that the navigation is not that fluid anymore :-(&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I was at the "electronica" trade fair last week in Munich and talked to one freescales employees about this issue. He mentioned, that it might be a simple performance issue with the DMA, as it is not that fast when transferring the data to the external memory while at the same time the lcdc-module reads the data back (single memory access).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm kind of stuck here and am really looking forward to some help which might get me in the right direction ;-)&lt;/P&gt;&lt;P&gt;Many thanks in advance!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Kaiser&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 19 Nov 2012 08:14:53 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/K70-LCDC-performance-with-graphics-window/m-p/179946#M1692</guid>
      <dc:creator>kaisermechatron</dc:creator>
      <dc:date>2012-11-19T08:14:53Z</dc:date>
    </item>
    <item>
      <title>Re: K70 LCDC performance with graphics window</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/K70-LCDC-performance-with-graphics-window/m-p/179947#M1693</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Julian,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Are you enabling DMA bursting for background plane and graphic window?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For example, for main plane:&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;LCDC_LDCR &amp;amp;= ~(LCDC_LDCR_BURST_MASK);&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;Turn on caches will help as well:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: #3f7f5f; font-size: 10pt;"&gt;// turn code cache on&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: black; font-size: 10pt;"&gt;&amp;nbsp; LMEM_PCCCR = (LMEM_PCCCR_GO_MASK | LMEM_PCCCR_INVW1_MASK | LMEM_PCCCR_INVW0_MASK | LMEM_PCCCR_ENWRBUF_MASK | LMEM_PCCCR_ENCACHE_MASK);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG style="color: #7f0055; font-size: 10pt; font-family: Consolas;"&gt;while&lt;/STRONG&gt;&lt;SPAN style="font-family: Consolas; color: black; font-size: 10pt;"&gt;( LMEM_PCCCR &amp;amp; LMEM_PCCCR_GO_MASK ){};&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: black; font-size: 10pt;"&gt;&amp;nbsp; LMEM_PSCRMR = LMEM_PSCRMR_R0(2) | LMEM_PSCRMR_R1(2) | LMEM_PSCRMR_R2(2) | LMEM_PSCRMR_R3(2) | LMEM_PSCRMR_R4(0) | LMEM_PSCRMR_R5(0)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | LMEM_PSCRMR_R6(2) | LMEM_PSCRMR_R7(2) | LMEM_PSCRMR_R8(2) |&amp;nbsp; LMEM_PSCRMR_R9(2);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;SPAN style="font-family: Consolas; color: #3f7f5f; font-size: 10pt;"&gt;// turn system cache on&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: Consolas; color: black; font-size: 10pt;"&gt;&amp;nbsp; LMEM_PSCCR = ( LMEM_PSCCR_GO_MASK | LMEM_PSCCR_INVW1_MASK | LMEM_PSCCR_INVW0_MASK | LMEM_PSCCR_ENWRBUF_MASK | LMEM_PSCCR_ENCACHE_MASK);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG style="color: #7f0055; font-size: 10pt; font-family: Consolas;"&gt;while&lt;/STRONG&gt;&lt;SPAN style="font-family: Consolas; color: black; font-size: 10pt;"&gt;( LMEM_PSCCR &amp;amp; LMEM_PSCCR_GO_MASK ){};&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;Best Regards,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;/SPAN&gt; &lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;Luis&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 19 Nov 2012 13:27:47 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/K70-LCDC-performance-with-graphics-window/m-p/179947#M1693</guid>
      <dc:creator>LuisCasado</dc:creator>
      <dc:date>2012-11-19T13:27:47Z</dc:date>
    </item>
    <item>
      <title>Re: K70 LCDC performance with graphics window</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/K70-LCDC-performance-with-graphics-window/m-p/179948#M1694</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Luis,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thank you for your suggestions.&lt;/P&gt;&lt;P&gt;DMA bursting is enabled for both the graphics window and the normal screen plane.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regarding the caching, do I have to enable it before every display refresh or once on system startup?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Julian&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 19 Nov 2012 15:02:58 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/K70-LCDC-performance-with-graphics-window/m-p/179948#M1694</guid>
      <dc:creator>kaisermechatron</dc:creator>
      <dc:date>2012-11-19T15:02:58Z</dc:date>
    </item>
    <item>
      <title>Re: K70 LCDC performance with graphics window</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/K70-LCDC-performance-with-graphics-window/m-p/179949#M1695</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Julian,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Only once at system startup.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best Regards,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Luis&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 19 Nov 2012 16:51:50 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/K70-LCDC-performance-with-graphics-window/m-p/179949#M1695</guid>
      <dc:creator>LuisCasado</dc:creator>
      <dc:date>2012-11-19T16:51:50Z</dc:date>
    </item>
  </channel>
</rss>

