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.

TM4C1299NCZAD: LCD VGA 640x480 problems (raster, FIFO underflow) in my V2401 PCB project using SDRAM on EPI - Is LCD NIBBLE mode possible and on internal SRAM ???

Part Number: TM4C1299NCZAD
Other Parts Discussed in Thread: TM4C129XNCZAD

Following up on CS1142770 created some week ago or so.

Our project is to use the TM4C129Xnczad  in our V2401 project (TM4C1299ncad is installed in our board) that is to replace a V2400 project that used the NXP K70 that has been unavailable for a long time and not seen in the near future. After evaluation I decided to go for the TM4C129Xncad even it isn't a "brand new" one as I had a very good experience with TI from the 1980's with the TMS9980 and TMS9995. Now to the problem: The V2401 uses the 24bit RGB interface, the first 18 lines controlled and I place the RGB data in 6-6-6 to the framebuffer.

I have been trying to use the Tiva TM4C1299 with a VGA LCD display but stumbled on quite a dilemma.

I can't use the SDRAM I have on the EPI bus as if the ram in on address 0x60000000 then I get a lot of flicker while updating display and if I have it on address 0x10000000 I can't run code from it as intended. This is due to underflow (have confirmed that) and finally it runs into a halt of the LCD controller (rest of the devices are working, like UART so the V2401 isn't frozen).

Reading the documents on the Tiva series the limited information on the use of palette gave me the idea to use a 16 color palette using indexes in framebuffer that would hold two pixels per byte. Isn't that possible?

Internal uC ram is 256Kbyte, LCD is 640x480 pixels

Question is therefore mainly about the NIBBLE mode in the LCD controller.

The RASTER_NIBBLE_MODE_ENABLED, does that enable me to use the framebuffer as nibble, e.g. 4 bits index to palette so two pixels are per byte? that would then enable me to use the internal SRAM as the framebuffer would need only 153600 bytes + palette of 16*2bytes. It is quite unclear if it is possible or not

I am willing to go to 16bit RGB or even 12bit using 16color palette if that solves the issue and then change my PCB or make a different LCD cable.

I can't find any good description of the "NIBBLE" flag for the LCD module searching the whole TI sites
I'm really in "deep stuff" if I can't run the LCD display from internal SRAM due to the flicker (underflow FIFO) on SDRAM at higher addresses
In hope for a good and quick answere.

p.s.: I did send an unfinished source to the customer support chat: - have been trying a lot of things

  • Hello Mummi,

    Regarding your specific question, I don't believe Nibble mode would not work for your requirements because it is not for 16 bpp mode:

    I couldn't find further documentation on it either however, and I have never used this mode so the support we can offer for that specific feature is limited.

    Now that said, some general comments we can make regarding TM4C and LCDs...

    I looked for and couldn't find any real references to a full VGA display being used with a TM4C MCU. What we very commonly see and even support with a BoosterPack and TivaWare examples is a QVGA screen which has 1/4 of the resolution as its half height and half width to VGA. This can be supported with internal RAM for the device.

    A proper VGA display can only be supported with memory expansion which seems to be where you are struggling with the performance.

    Have you had a chance to review our LCD Applications app note? There are some details shared in there about various capabilities of the device. Maybe that could be of use with figuring out what works best:

    One possibility could be using the DMA to read from SDRAM quicker. Also if facing underflow, you may be able to lower the pixel clock to give the CPU more time to fetch memory contents.

    Best Regards,

    Ralph Jacobi