• We recently switched our forum platform. If you experience any issues please email support@crystalfontz.com

SSD2119 @ CFAF320240F - SPI - pixels questions


New member

i have got the CFAF320240F lcd with SSD2119 driver. It is working on SPI 4 wire now but i have some questions:

1. In data sheet http://www.crystalfontz.com/controllers/SSD2119.pdf on page 81 we have got "15.5 Mapping for Writing Pixel Data in SPI mode" And it is 18 bit color (3 SPI frames x 6 bit's in frame)
But if i transfer data like - (R R R R R R x x), (G G G G G G x x), (B B B B B B x x) i get different color ! I see in example code that in spi we have got only 16 bit color ? what is the mapping (RRRRRGGG),(GGGBBBBB)? can i swith on the 18 bit mode?

2. Is it possibile to send a picture on the lcd and "freze" (for 500 ms) the LCD display until i send the new picture to GRAM? And when new data will be sent i only update the display.

3. Did someone tested the lcd with SPI CLK > 15 MHz. STM32 spi works up to 18 Mhz

4. I don't know how to say that but i think the pixels on LCD are small and there is a black space between them. The quality of display is poor :( :( Can i adjust it in config registers?

5. Is it posible to read the GRAM in SPI mode? how ?

thank you very much
Looking for additional LCD resources? Check out our LCD blog for the latest developments in LCD technology.

CF Support

To answer your questions:

1. I believe that you'll need to change your transfer to be RRRRRRGGGGGGBBBBBB like shown on page 80 of the controller datasheet.

2. The LCD does not have a frame buffer, so doing what you're wanting to do won't work without having a frame buffer in your MCU.

3. We didn't test it with SPI CLK > 15 Mhz, however you'll find that in the datasheet of the controller on page 73 that the serial clock cycle time maximum is shown at 15 Mhz, so I doubt the results you would get with a SPI clock faster than 15 Mhz would be desirable.

4. Not sure what to say here.

5. It seems that while there is an SDO pin from the controller, that reading from the controller isn't supported (or isn't documented by the chip manufacturer) and doesn't work.


New member
Ad. 1. I send RRRRRRGGGGGGBBBBBB (3 SPI bytes)but the LCD works like 16 bit (only 2 SPI bytes). I can't find register to change that ! So it is a bug in data sheet for SSD2119 ? ? ? :mad: On Page 80 we have only mapping for parallel interface. For SPI on page 81 !

And even if i send data in 16 bit SPI RRRRRGGG GGGBBBBB the colors are inverted! When i send (0) i get white color and when i
send (0xFFFF) i get black color :eek: There no option in LCD config registers to negate/invert the data send to GRAM
Last edited:


New member
lcd init attached

i don't understand how to swith betwen 18 and 16 bit color mode in SPI and why the values sent to GRAM are negated ( white for 0 )