Skip to main content
KMew
Senior III
March 23, 2023
Question

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

  • March 23, 2023
  • 5 replies
  • 2994 views

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.

This topic has been closed for replies.

5 replies

Tesla DeLorean
Guru
March 23, 2023

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 (See Profile) Up vote any posts that you find helpful, it shows what's working..
KMew
KMewAuthor
Senior III
March 23, 2023

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?

Tesla DeLorean
Guru
March 23, 2023

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 (See Profile) Up vote any posts that you find helpful, it shows what's working..