cancel
Showing results for 
Search instead for 
Did you mean: 

Using TouchGFX to drive multiple LCD displays

MVart.2
Associate II

Hi All,

Are there any TouchGFX examples driving multiple displays over SPI using ILI9341 controller? I am able to drive a single 320x240 display no problem but run into issues when extending to two displays.

I'm guessing I am sending too much data over SPI but I am assuming that each SPI controller is independent so data sent over SPI1 should not affect data sent over SPI2?

I am using the following components:

ST NUCLEO-F767ZI

STM32CubeIDE v1.10.0

TouchGFX Designer 4.20.0

2.4" DisplayTech TFT (DT024CTFT) using ILI9341 Controller

Thanks,

Mike

13 REPLIES 13
Your code do mirroring, why two SPI?
I mean your idea is independent extend H or V.
Try reorder commands in transmitblock set 1 – draw 1 – set 2 – draw 2 and in set ofcourse cant be used DMA.
MVart.2
Associate II

The mirroring is just for testing. I needed something simple to test driving two displays. You are correct. Eventually I will have independent data going to both displays. The plan is to extend the H.

Thanks for the suggestion. I will try reordering the commands in the transmit block. Yes. The set commands are not using DMA, just the pixel data.

If extend, your code must be more complex. Cant wait for both callbacks usw.
Too for optimize full screen refresh maybe need be writed own code, because TGFX do it in linear sequence, then not use both SPIs power.
Max speed for SPI is defined in LCD pdf as clock 10-50MHz on ILI min 100ns = 10MHz max 10mbps.

Thanks again for your continued support. Any suggestions on how to improve upon waiting for two callbacks?

I have optimized the ILI9341_SetWindow and ILI9341_DrawBitmap to combine SPI1 and SPI2 with little improvement.

Is there another LCD controller you would recommend? I have searched for others and have found slightly faster serial write cycle of 66ns...