I want to know if I can drive this 320x240 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!

  • 2
    \$\begingroup\$ It really depends what else the micro will be doing. If all you're doing is menus and the like, memory will be much more important than speed. \$\endgroup\$ – Matt Young Mar 8 '14 at 18:56

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.

| improve this answer | |
  • \$\begingroup\$ Thanks for the explaining that, tcrosley! Exactly what I was looking for. \$\endgroup\$ – MicroGuy Mar 11 '14 at 0:43
  • \$\begingroup\$ 60 KB?! I am willing to start messing with TFTs and I've found this code for reference: goo.gl/ILyURV Will this font take that much, I've guessed it could be around 3 KB? What am I not considering? \$\endgroup\$ – abdullah kahraman Mar 5 '16 at 9:51

Interfacing a full color LCD to a minimal system can get you in pretty deep. Common systems running 320x240 and larger are either mass produced customized units, or based on the phone and tablet ARM chips that run Android/Linux or WinCE.

Arduino, Pi, and BBB have terrible LCD options. I would check some of the systems that support displays like the Mini2451 or NanoPC at ARMWorks or similar - there are a lot of sources. For the cost of an Arduino and some shield boards you get a serious machine. Nearly all the Samsung ARM 7/9/A8/A15 (S3C2451, 6410, S5PV210, 4412 Exynos Quad) etc. based modules and SBC will have direct LCD connection. Caution - Linux :-) Otherwise setting up a frame buffer and sending data to the display correctly can eat up all your development time. These are 400 MHz and 128 MBytes RAM minimum. You don't HAVE to have that speed. The MacSE was 32/16 bits at 8 MHz and little bit of RAM.

| improve this answer | |
  • \$\begingroup\$ Thanks for sharing that info, Springer! I now have a better sense of what I'm looking for. \$\endgroup\$ – MicroGuy Mar 11 '14 at 0:45

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.