cancel
Showing results for 
Search instead for 
Did you mean: 

NUCLEO-H7A3ZI-Q: Internal RAM w/ Display

KMew
Senior III

Hello,

I am looking to use the NUCLEO-H7A3ZI-Q, which utilizes a STM32H7A3ZI MCU. It has the following memory specifications:

  • 2MBytes of Flash
  • 1376 kBytes of SRAM

I am looking to do the following things on my product:

1) LCD Display (480x272 resolution), potentially with animations (animations TBD. For this question, assume we are using animations)

2) CAN communication

3) Basic GPIO signaling

My goal is to minimize PCB cost, so I am trying to see if I can get away with no additional, external RAM/Flash. I am trying to determine if that is possible, but want to confirm my logic.

For the SRAM, it needs to be able to display each pixel of the full 480x272 resolution. If we assume 1 frame buffer (no animation) and a 24 bit depth (RBG888), then the RAM requirement is:

480 x 272 x 24 / 8 / 1000 = 391.68 kBytes

If I want to do animations (Basic TouchGFX screen transitions. Not anything fancier than that), then an additional frame buffer would be needed. Therefore, the needed SRAM is:

480 x 272 x 24 / 8 / 1000 * 2 = 783.36 kBytes

This gives approximately 593 kBytes of remaining RAM for other uses. Therefore, the internal SRAM would be sufficient.

Is this logic correct, or am I missing anything?

1 ACCEPTED SOLUTION

Accepted Solutions
MM..1
Chief III

No correct, your framebuffer RGB888 is 382,5kB perfect for SRAM2 and second buff SRAM3 (kB = 1024B)

But you can use RGB565 or L8 based on your graphics.

View solution in original post

11 REPLIES 11
MM..1
Chief III

Your resolution and MCU power can do animations maybe too with single buffer only. Some screen transitions require triple buffer... And RGB888 is required only if you plan show photos or perfect gradients.

Plus need care SRAM isnt one piece 1,3M, but more parts. Only some usable with LTDC.

Accept all this your logic is correct.

KMew
Senior III

Hello MM,

Thank you for confirming this. I did a quick search in the datasheet and found the following:

0693W00000WJfBVQA1.png 

It does seem the AXI SRAM is broken into 3 parts. None of which are big enough, based on my previous calculation.

So based on this, it is not sufficient and external RAM would be needed, correct?

Hello MM,

Thank you for confirming this. I did a quick search in the datasheet and found the following:

0693W00000WJfBVQA1.png 

It does seem the AXI SRAM is broken into 3 parts. None of which are big enough, based on my previous calculation.

So based on this, it is not sufficient and external RAM would be needed, correct?

Repeat message. Ignore

MM..1
Chief III

No correct, your framebuffer RGB888 is 382,5kB perfect for SRAM2 and second buff SRAM3 (kB = 1024B)

But you can use RGB565 or L8 based on your graphics.

Hello MM,

Thank you! You've been an absolute life saver! I wasn't sure if you could separate the buffers like that.

When you say "use RGB565," is it as simple as just changing the setting? For example, if a display has 24 pins (R 0-7, G 0-7, B 0-7) for the RGB portion, can you use the RGB666 configuration setting in CubeMX?

In other words, can I use these interchangeably and the only difference will be picture quality?

0693W00000WJfU3QAL.png

Would definitely look at QSPI NOR FLASH memory device, relatively simple to add (small, low pin count, high capacity), provide a means of staging imagery and updates.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
Display setings leave as hw is connected RGB888, but frame layer can be any .

Hello Tesla,

Yes, I fully agree. I will likely add one! Is there any compatibility things I should look for on my MCU to know if the QSPI will work on that chip?