AnsweredAssumed Answered

Pixel delayed on K70 - MQX - PEG

Question asked by arnogir on Nov 4, 2014
Latest reply on Nov 6, 2014 by Luis Casado




I have the tower K70f120m.
I'm using Codewarrior v10.3 and MQX (4.0 or 4.1)
I have the PEG lite (Free on Kinetis)
And I use an LCD screen 800x480


I try the "Hellopeg" exemple provided with the PEG software.
I adapted the twrlcdrgb_k70_16.cpp file for my specific TFT screen.


1) Hellopeg with Codewarrior in standalone (No MQX):
When I swith display from picture to another, following function is called: K70_TWRLCDScreen::MemoryToScreen
This function copy bitmap to the background LCD memory.
During this step, the code write data in the same memory (DDR) than read by the LCD COntroller.
So the display is bad during this step. Some pixels are delayed. Horizontal line appears on the screen.


2) HelloPeg with Cw and MQX.
The MQX must access at anytime in the RAM (DDR) because some pixel are ALWAYS delayed.


-The problem decrease when I change the DMA configuration from LCDC_LDCR {HM-TM} = {4-60} to {2-70} But it is not yet perfect.

-The problem stop when I decrease the LCD clock from 30MHz to 20Mhz (probably because the LCDC read slower in DDR). Unfortunately my TFT specification requires a clock between 28 to 32Mhz even if currently the sample that I have accept to work at 20Mhz.

-The problem stop when I make "pause" my debbuger. During this phase, the LCDC controller still running, just the code don't make access to the ram because it is stopped.


Then the problem come from DDR access, which is bad managed between the need of LCDC at 30Mhz and the need of the software which need to read/write in continous manner.


Have you an Idea to resolve my problem?