Electronic – Microcontroller requirements for TFT display

clock-speedmicrocontrollerramtft

I want to know if I can drive this 320×240 TFT display:
http://www.buydisplay.com/download/manual/ER-TFT032-2_Datasheet.pdf

Which has this controller built-in with 168KB dedicated RAM:
http://www.buydisplay.com/download/ic/ILI9320.pdf

Without having to use an expensive Micro with a dedicated LTDC chip.

but this is my first project using a nice looking display (not just alphanumeric) and I'm not entirely sure how to choose the Microcontroller for it and whether I need a particular one that has an LTDC. I want to display basic menus and don't need fancy animations, but I want it to look professional with minimal flicker and quickly refreshed screens when the menu changes. Any idea what the memory requirement/Clock speed on the MCU would be needed for a project like this?

Thanks for any help!

Best Answer

Since the display includes the Ilitek ILI9320 controller, then your interface requirements are much lower, as the microcontroller no longer has to interface directly with the TFT and instead only talks to the controller chip via a simple interface: either SPI, which takes six wires: RS, CS, CLK, MOSI, MISO and RESET. Or you can use an 8080-compatible parallel interface which takes 13 wires: an 8-bit data bus, and RS, CS, WR, RD and RESET. (There are options to use larger data-buses, up to 18 bits, but I don't recommend that for a low end microcontroller.)

There are two optional interfaces in which the microcontroller generates all of the clock signals (VSYNC, HSYNC and DOTCLK); you don't want to do that since it would require a high-end controller.

So just about any microcontroller will do, however you need to have enough flash memory to hold whatever static items you want to display; for example if you are going to be displaying text then you will need to allocate arrays to store bitmaps for whatever fonts you will use. Even a small font can take 60KB.

One of the advantages of this controller is that includes 172,800 bytes of RAM, which is enough to store 320*240*18 bits. However it is not double-buffered, meaning that when you write to the RAM, it will immediately show up on the screen, and if you updating a lot of the screen, it will be noticeable.