2022-11-28 08:29 AM
Hello,
I am looking to use the NUCLEO-H7A3ZI-Q, which utilizes a STM32H7A3ZI MCU. It has the following memory specifications:
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?
Solved! Go to Solution.
2022-11-28 10:39 AM
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.
2022-11-28 09:03 AM
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.
2022-11-28 09:19 AM
Hello MM,
Thank you for confirming this. I did a quick search in the datasheet and found the following:
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?
2022-11-28 09:22 AM
Hello MM,
Thank you for confirming this. I did a quick search in the datasheet and found the following:
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?
2022-11-28 09:23 AM
Repeat message. Ignore
2022-11-28 10:39 AM
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.
2022-11-28 10:51 AM
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?
2022-11-28 10:55 AM
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.
2022-11-28 10:36 PM
2022-11-29 06:43 AM
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?