I have a LCD which this controller is used with: LCD Single Chip Driver.

I am trying to get it to work with an 8-bit interface, but in my kit I can't find the three pins that are mentioned in the datasheet IM [0-2].

Here are some descriptions: 2.8" TFT LCD.

and here is the socket description of the LCD kit that I have: Socket description

Now the current interface of the kit that's working is 16-bit.

That's the schematic of the kit: Kit Schematic

2nd Question:

If this is not possible, it's already connected to FSMC 16-bit, is it possible to just send 8-bit data to the data pins by shifting the data? Because I'm trying to get a large double buffer 140*200*2 bytes and that would eat the memory, so if I have an 8-bit interface would it take less memory buffer, so is it OK to just send 8-bit data to LCD even if the interface is 16-bits?


2 Answers 2


The number of bits in the interface has no bearing on how much memory is required to store the image. For example with the 8 bit interface a 65,536 color pixel is transferred in two bytes, whereas the 16 bit interface only requires a single transfer - but in both cases the data is 16 bits per pixel.

You could store your image as 8 bits per pixel and translate it into 16 bits 'on the fly'. However encoding RGB in 8 bits only allows for 2~3 bits per channel (eg. 3 bits each of Red and Green, 2 bits of Blue), so color images will not be photographic quality. To improve image quality you could index the 8 bit pixel values into a 256 color palette, which only requires an extra 512 bytes of memory for 16 bit color.

  • \$\begingroup\$ How with 8bit interface a 65k is sent ? it would be only 255 colors ? \$\endgroup\$ Sep 4, 2014 at 11:18
  • \$\begingroup\$ Would you elaborate more about indexing the palette ? did you mean that make a table of palette 256 color and each color is 2 bytes ? and then send the 16bits ? \$\endgroup\$ Sep 4, 2014 at 11:51
  • \$\begingroup\$ Yes. en.wikipedia.org/wiki/Indexed_color \$\endgroup\$ Sep 4, 2014 at 18:46

The link 2.8" TFT LCD states that LCD part number is HY-TFT280 which has ILI9331 controller Inside. This LCD is interfaced with 16bit data interface with the help of ILI9331 controller inside on TCON Board.If you want to make it 8-Bit interfaced then you have to open the LCD Module which will be having a TCON board, In that board you have to find out the IM [0-3] Pin and you have to make it Pull Up or Pull down for 8-Bit Mode as suggested in the datasheet (But I am not sure whether it will work on 8-Bit interface, since only these pins are not responsible for making a LCD to switch between 16 to 8 Bit or some other Data Bit interface).

IM [0-3] Pins belongs to controller ILI9331 not to the LCD Connector so it is not shown in the 40 Pin connector schematic. Since these pins are not in the control of user.

  • \$\begingroup\$ What about the 2nd issue? is it possible to send 8bit to the 16bit interface and just don't care about the reset 8 bits? so that I can save memory ? \$\endgroup\$ Sep 4, 2014 at 9:20
  • \$\begingroup\$ I Have an experience with 8 Bit RGB LCD. When the software member of our team tried to interfaced it with 6 Bit RGB then the colour appears on the Screen was different than the actual. For yellow we were getting Green and etc.Even you can also try it with 8-Bit Data interface. Since you have to modify only the code which is not going to add you any extra cost :-) \$\endgroup\$ Sep 4, 2014 at 9:50

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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