This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TM4C129XNCZAD: Need and LCD screen with a built in Frame buffer. Based off of TIDM-TM4CFLASHSRAM example project.

Part Number: TM4C129XNCZAD
Other Parts Discussed in Thread: TIDM-TM4CFLASHSRAM

So we currently have a device that uses a basic 640 x 480 screen with a raster input. The problem is that we are using an external SRAM as the LCD frame buffer, this is updating too slowly to look good. Basically the pixel data is copied from an external flash to the internal memory where is is converted, the written back to the external SRAM (where I assume it then needs to be copied again over the EPI pins to the LCD raster). In total we have to move the data three times over the EPI pins in order to do a screen write for a 640 x 480 screen. I have tried numerous different things to get this working faster but with no real luck. Our old device updated the screen much faster and this device is a port of that code and supposed to be an exact copy of that device with the exception of changing the microprocessor architecture. I have been told that the screen update timing is unacceptable and needs to be improved but am limited by the time it takes to copy things from the external flash and to the external SRAM, both the external flash and external SRAM share the epi pins and this design is based off of the TIDM-TM4CFLASHSRAM example. The TM4C129xnczad does not have a large enough internal SRAM to support the LCD frame buffer. I am hoping to find a solution by using an LCD screen that has a built in frame buffer and am looking for recommendations for one. This would prevent us from having to make an entirely new board. If anyone has any examples or suggestions that would be very helpful. Everything else about the code works fine we are just limited by the complexity of the old code and the data rate we can achieve by having the external flash and SRAM exist on the EPI pins. Any help would be greatly appreciated!

  • Hi,

     I understand what you are facing as you have raised a similar threads already. Looks like you are still unable to achieve the desired performance. However, I don't know what else to suggest. Looks like my suggestions did not help at all. I do think you will get improvements if you choose a LCD with a built-in frame buffer. There are many LCD vendors but this is not an area of my expertise and I can't really recommend one that is the best for your need. Sorry. 

     Also a heads-up, I'm currently on vacation and my response will be delayed as I have limited access to the internet. 

  • To be honest Charles you suggested that I use the internal RAM as a frame buffer which is impossible. The frame buffer must be at least the size of all the data to be written to the screen, so a frame buffer of 256kb is not large enough to act as a LCD frame buffer for a 640 x 480 screen operating at 8, 16 or 24 BPP. I am just trying to figure this out. 

  • Why not try to use micro DMA or read the tm4c129 datasheet to know if it can do external memory transfers by indirect addressing?

  • I am trying to use uDMA, currently we are copying data from an external flash to an external SRAM so uDMA is not possible, I may be able to move most of the flash data to the internal flash then I will be able to use uDMA to copy it to the LCD buffer in the external flash. I do not know what indirect addressing is but will look into it thank you for your reply!

  • I do not know what indirect addressing is but will look into it thank you for your reply!

    Typically load a CPU register with the 32bit memory address where the data word will be sent from the accumulator or other CPU register. Thumb instruction set with assembler statements added into C module callable function may be able to do just that.