cancel
Showing results for 
Search instead for 
Did you mean: 

Locating GUI (LCD) framebuffer in internal memory? examples pleaes.

kweisi50
Associate II

Hi,

We have a design based on the STM32L4VGT6 which is connected to a LCD of resolution 240 x 320 in RGB mode (using vsync,hsync,DE and lcdclk) . We are not using any using any external memory and so the frame buffer is to be located in internal SRAM using 565 bitmap format. We intend to use a GUI, is this approach do-able? Are any examples available?

Thanks

MikeZ

6 REPLIES 6

> STM32L4VGT6

What's that?

Do you intend to use LTDC? Or do you have an LCD with a controller, possibly holding

Is there enough continguous internal memory to hold the framebuffer? And two?

Do you want to use TouchGFX, or any other graphics framework?

JW

kweisi50
Associate II

Hi JW,

The intention is to use LTDC, the LCD (TFT) uses the ST7789 controller and place it 18-bit RGB on startup. The STM32L4VGT6 is a ST MCU it has 320KB of internal SRAM, so can hold a single frame of 240 x 320 of 16-bit 565 bitmap. The intention is to use another graphics framework, but please run me through the situation as if TouchGFX was to be used, if you could please.

Thanks

MikeZ

You're still missing two characters from the chip's name... maybe 'L4P5?

You will want to keep the framebuffer in a separate SRAM (e.g. SRAM2+SRAM3) from all other variables, to reduce collisions of LTDC with processor and DMAs. Other than that, I don't see much of a problem.

You may want to prototype on a known-good board, such as Nucleo or Disco to reduce some of the unknowns.

JW

kweisi50
Associate II

Hi JW,

You are correct, it is the STM32L4P5VGT6 (long day). How do specify which SRAM?, I was just going to declare an array of adequate size and set a pointer to it.

Thanks

MikeZ

This is toolchain dependent, for gcc look up linker scripts.

JW

HP
Senior III

In the configuration of tGFX in the CubeMX view (assuming we're using CubeIDE), there is a setting for the Buffer location and Start address. If you place the start address somewhere in the internal SDRAM address space you should be good (assuming of course that the space required for the buffer is large enough)