Content originally posted in LPCWare by Paride on Thu Jan 08 09:40:33 MST 2015
Hi All,
I'm an electronic engineer used to PIC, Atmel and similar and I'm trying to step into the ARM world.
I need to design a measurement instrument with a tft lcd and I'm looking at some NXP ARM mpu/cpu (lpc1788 or lpc 1835) with integrated lcd controller, I'm digging into the datasheets but I still have some questions.
From my understanding, In case I use an external ram memory as frame buffer, the integrated lcd controller can access it through the dma.
First question: the datasheet says that the lcd dma is 16 to 32 bytes long. Is there a way to program it to refresh an entire lcd screen automatically or every time the dma FIFO runs out I need to load new addresses and restart the dma?
Now let's say that I'm also running my program from an external flash memory, this means that the bus (ahb and external) is actually shared between the lcd controller that keeps refreshing the image from the ram and the cpu which fetches instructions from the external flash, correct?
In the question and answer on the nxp website (pasting the link doesn't work) someone is actually reporting lcd tearing effects and the answer form nxp is to change the access priority in the AHB matrix so that the lcd has an higher priority compared to the processor fetching data and instructions.
Second question: I suppose that making such changes slows down the cpu, the question is how noticeably is it? Is there a way to estimate it? I'm worried that, because in my case the cpu will always be running the software and acquiring data, it will always be slowed down by the lcd continuous refresh.
In the end the question is..is it actually useful to use the internal lcd controller or there are so many downside that it's not worth it?
I was interested especially in the colour look up table function so I can reduce the memory used for images and widgets but if the system is too slow I may consider and external lcd controller.