cancel
Showing results for 
Search instead for 
Did you mean: 

Is there any working project RGB TFT 1024 x 600

MNapi
Senior III

Is there any working project maybe on github 1024 x 600 RGB TFT ? Those screens are very popular all over the place.

 

There is STM32F746G-DISCO with 480x272 TFT RGB. I have no problem to get it working.

 For bigger sizes since there is no working example from STM. I have a few custom boards and I cannot get them working.

I followed the example for STM32F746G-DISCO with 480x272 to connect 1024x600 on a few chips which support LTDC (24 bit).

I wonder what I might be missing.

 

19 REPLIES 19
liaifat85
Senior III

I have found only this and some github links inside:
https://hackaday.io/page/14535-hooking-up-a-7-1024x600-px-tft-display-gdte070a1-6

this is Raspberry, I see a lot of examples for Raspberry. Probably I would have this done on Raspberry long time ago instead trying STM.

STM32 has support for those type of displays but I have not see anybody with working project.

When you look at CubeMX you can go as high as 3840x2160 but maybe it does not work.

I am close to be convinced that there is something wrong with code generated by CubeMX.

Trying assembler might be the solution but time consuming.

 

 

 

Not sure assembler will help, the LTDC is more of a glorified DMA with line and frame sync. Should be able to set up the parameters and walk away.

The STM32 MCU doesn't have the bandwidth to do UHD

1024 x 600 is doable, had that and assorted other modes working with the STM32F769I-DISC1 w/B-LCDAD-HDMI1, this is actually more complicated that the TFT-RGB, as the DSI unit also needs to be configured and clocked to off load the data fire-hosing out to the LTDC

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..

when you look at CubeMX setup for LTDC you see that:

Active Width must be between 0 pixels and 3.772 Kpixels.

Active Height must be between 0 lines and 2.009 Klines.

I do have STM32F769I-DISC but is is DSI connector 800x 480, they have a lot examples for it. It is working fine.

But I  need something bigger 7 inch 1024 x 600

I wonder if they did but never tested if it actually works, there might be something wrong with the library for bigger size. The setup is simple and it should work right away.

After spending a year debugging it I will eventually find the problem.

STM32F746G-DISCO with 480x272 is working fine, it is RGB 24 bit. No problem to set it up.

 

 

 

Most "testing" is done with hardware they actually build and ship, not combinations of hardware you might choose.

The physical size shouldn't matter a 4", 7" or 10"  1024x600 panel should drive exactly the same way

The widths and heights are really limited by the bits in the counts/comparators, not standard display resolutions. And then by how much bandwidth you have in the memory sub-system, and the pixel clock limits.

Not sure I can fish out the 1024x600 setting right now, but these were settings I used for various modes one of my multi-sync monitors. I used the JPEG\JPEG_DecodingUsingFs_DMA example as a donor test app.

/*  HA   HS  HB  HF  VA   VS VB  VF  ASPECT                BPP */
  { 720, 62, 60, 30, 480, 6, 19, 9, HDMI_ASPECT_RATIO_4_3, LCD_DSI_PIXEL_DATA_FMT_RBG888},
  { 720, 64, 68, 12, 576, 5, 39, 5, HDMI_ASPECT_RATIO_16_9, LCD_DSI_PIXEL_DATA_FMT_RBG888}, // 27 MHz
  { 640, 64,120, 16, 480, 1, 16, 3, HDMI_ASPECT_RATIO_4_3, LCD_DSI_PIXEL_DATA_FMT_RBG888},  //  640x480 31.66 MHz using hdmi_timings LINUX
	 // Acer reports as 640x480 H:38KHz V:75Hz
  { 800,128, 88, 40, 600, 4, 23, 1, HDMI_ASPECT_RATIO_4_3, LCD_DSI_PIXEL_DATA_FMT_RBG888},  //  800x600 40.00 MHz 60 Hz http://tinyvga.com/vga-timing/800x600@60Hz
	 // Acer reports as 800x600 H:38Hz V:60Hz
  {1024,136,160, 24, 768, 6, 29, 3, HDMI_ASPECT_RATIO_4_3, LCD_DSI_PIXEL_DATA_FMT_RBG565},  // 1024x768 62.50 MHz 16-bit
	 // Acer reports as 1024x768 H:46KHz V:57Hz
  {1024,136,160, 24, 768, 6, 29, 3, HDMI_ASPECT_RATIO_4_3, LCD_DSI_PIXEL_DATA_FMT_RBG565},  // 1024x768 55.00 MHz 16-bit
	 // Acer reports as 1024x768 H:41KHz V:51Hz


/* N   DIV Pclk   IDF              NDIV ODF               LBClk TXEscapeCkdiv*/
  {325, 6, 27083, DSI_PLL_IN_DIV5, 65, DSI_PLL_OUT_DIV1, 40625, 3}, // 720x480
  {325, 6, 27083, DSI_PLL_IN_DIV5, 65, DSI_PLL_OUT_DIV1, 40625, 3}, // 720x576
  {380, 6, 31666, DSI_PLL_IN_DIV5, 76, DSI_PLL_OUT_DIV1, 47500, 3}, // 640x480
  {400, 5, 40000,	DSI_PLL_IN_DIV5, 96, DSI_PLL_OUT_DIV1, 60000, 3}, // 800x600@60Hz VGA  480MHz DSI
  {375, 3, 62500,	DSI_PLL_IN_DIV5,100, DSI_PLL_OUT_DIV1, 62500, 3}, // 1024x768@57Hz VESA 500MHz DSI 62.5 MHz 16-bit
  {330, 3, 55000,	DSI_PLL_IN_DIV5, 88, DSI_PLL_OUT_DIV1, 55000, 3}, // 1024x768@50Hz VESA 440MHz DSI 55.0 MHz 16-bit

 

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..

this is a little different hardware design. I would have to start all over to try something different.

I wonder if I might need extra RAM. I am trying STM32F469IIT6 which has only 384KB

 

Maybe it is looking for sufficient RAM and will not work with only 384KB. I cannot find any information if that might be the case.

STM does not provide any hardware recommendation design a least I haven't seen so far.

Though they have a lot of articles about RGB

I do have STM32F746G-DISCO and I do not have to enable external RAM but it has only 480x272 display. It is very simple to get the RGB display to work with this board.

That's clearly going to be inadequate for a frame buffer.

The mechanics of raster displays are pretty well defined, not sure ST's going to describe every possible combination of implementations, sizes and resolutions, that's more of a task for the design engineer.

Do you have the data sheet for panel you're trying to use?

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
MNapi
Senior III

Here is the display

https://www.buydisplay.com/7-inch-1024x600-ips-tft-lcd-display-high-brightness-full-viewing-angle

there are links to all data sheets

it is using HX8282-A14 driver

I do have custom board so there will be no problem to add some external RAM. A lot of those DISCO boards have external RAM and schematics to use as example.

Each chip which has LTDC support has also FMC, it is done for reason so you can attach external RAM for frame buffer. But I guess STM left it for customers to guess since I do not see any guide lines how much RAM you would need for 1024 x 600

I do not see any code how buffer frame is calculated and assigned based on the size of display you choose in CubeMX. It must be somewhere in their library.

MX_FMC_Init();
MX_LTDC_Init();

 

I think the frame buffer was the whole problem I could never get it working so far.