cancel
Showing results for 
Search instead for 
Did you mean: 

STM32F756ZG: RGB Display w/o External RAM (Confusion w/ Datasheet)

KMew
Senior III

Hello,

I am looking to use a 480x272 RGB565 display with the STM32F756ZG MCU. I have done the calculations to determine how much RAM and Flash I will need. I have estimated about 500 kBytes of Flash being necessary, so I do not require additional external Flash (Internal is 1 Mbyte).

However, with the RAM, I am seemingly on the edge of its capacity, but am also getting confusing information from the datasheet. I would ideally like to have a solution that does not require external RAM (reduce pinout usage).

RAM Calculation (Single Buffer):

480 x 272 x 16 / 8 = 261.120 kBytes

Now, there are two pieces of information in the STM32F756ZG datasheet.

From their circuit diagram:

0693W00000aJaTcQAK.png 

From Section 2 of their Reference Manual:

0693W00000aJaYkQAK.png 

If I use the information from the circuit diagram, then it is sufficient. If I use Section 2, then I do not have enough. Because of this, I have two questions:

1) Can I actually use 320 kBytes for the display or 240 kBytes?

2) If 240kBytes, is there a way to reduce the display requirement to get it from 261kBytes to 240 kBytes?

Thank you in advance.

5 REPLIES 5

You generally need to find contiguous memory to use it as a frame buffer, you typically need two buffers so you can update one without artifacts in the other.

You can reduce the resolution of screen to accommodate the available memory

Perhaps a 300x300 or 320x240 display is better suited to the available resources.

The alternative is to use parallel memory bus displays, with their own frame buffers, and access them like external memory, ie F(S)MC

Or slower via SPI

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

Hello Tesla,

Thank you for the reply!

For our application, a single buffer is sufficient since we aren't doing animations. It is merely for display data with a few small, static images.

Going with a smaller display is an option, yes. We are considering it, but we'd like to first try with this size display to maximize readability.

I also made a sample project and, in the Build Analyzer, its Memory Regions state:

RAM

Start Address: 0x20000000

End Address: 0x2004FFFF

Size: 320 kB

So does that mean I'd have access to 320 KB in contiguous memory?

SRAM1 240KB is the only one I think you have clean bus/DMA access too

Static displays, you might be better finding a screen with a buffer / GRAM built in and a low pin-count interface.

Parallel RGB displays and external memories with wide buses eat a lot of pins and push the part size and board complexity up.

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

Hello Tesla,

It is not a static display. It has multiple screens that displays data that updates in real time (battery state of charge, voltage levels, power, etc.). There is also some static images near the data. So the images won't change, but the display will constantly change and, when the user clicks a button, the screen will transition to show different data.

Does that change anything?

Your LTDC config can combine L8 graphics. Then required RAM is 480x272 + 256x3

for single full screen framebuffer. Second choice is 256kB / 480 / 2 = 273

Place FB into SRAM1+SRAM2

Normal data place into DTCRAM