2019-10-09 11:43 PM
Hello,
i try to start application on STM32F7 with external RAM.
I setup frame buffer and cache in external RAM, but touchgfx not loading screen to FrameBuffer, Cache is loading.
I check if image will render when a set start address of cache and FrameBuffer the same and it worked.
What may be source of the problem?
2019-10-10 12:35 AM
Did you configure the touchgfx framebuffer start address or did you only configure the LTDC IP through CubeMX? There are lots of things that could go wrong - I don't feel i have all the information yet :) If you could give me a run down of how you created the project and what you've done so far.
You should start by getting something simple up and running. Why are you already concerned with the bitmap cache at this point? Something tells me the framebuffer is not properly configured in touchgfx. Or maybe your LTDC configuration is wrong.
/Martin
2019-10-10 12:43 AM
I configured everything in CubeMX and make screen in TouchGFX. Compiling with Atollic TrueStudio. I have little time to finish project so i try bitmap cache which i need.
2019-10-10 12:45 AM
Also i add
Bitmap::clearCache();
Bitmap::cacheAll();
in touchgfx_init()
2019-10-10 12:55 AM
By LTDC configuration i also mean timings / porch settings - Do you have that right as per the display datasheet? is 0xc0000000 also set as the start address for touchgfx in the generated code? Is touchgfx configured to use LCD24 as its display driver? (given the RGB888 configuration ?
Your blending factors should be Alpha constant x Pixel Alpha, but that's not the cause of your issues.
/Martin
2019-10-10 01:01 AM
YES
YES
2019-10-10 02:49 AM
HAH! that looks exactly like what I was having a few days ago!
have you checked that your 'defaultTask' have a heap size that is big enough? CubeMX sets the size to 128 (words) by default. try to change this to 4096 - maybe that is the only thins you need.
My process was first to check the SDRAM using one of the example projects - there's an example that loads the external ram with the values from 0-4095 (starting at 0xC00000800 - there's an offset). If that works, then check the RTOS task settings :)
2019-10-10 02:50 AM
I will be making a video on this very soon!
2019-10-10 03:54 AM
Unfortunately changing stack size of 'defaultTask' didn't help. It looks like SDRAM is working.
2019-10-10 06:07 AM
Could be your refresh count then. From your previous images it is set to 1752 - This value is greyed out so it's set somewhere else.
I recall that I ended up changing this manually. If you got the SDRAM example running then check the SDRAM settings up against the ones you're using on your touchGFX implementation.
Do you know that the display is working? Ie. did you try to load a static image up from the internal memory first? if not it could be the display timings. App not 4861 is a good place to start for this if you need more info.
Getting the display/SDRAM/framebuffer combo to run is a bit finicky and I just spend the better part of a week making my concoction work as I wanted.
2019-10-10 08:12 AM
I can set LTDC background color and see it on display. I also (for test purpose) set Color Frame Buffer Start Address and Bitmap Cache Address to the same value 0xC0000000 (start address of SDRAM) and got the desired image on display. Therefore i asume that display and SDRAM are working. Image was cached to SDRAM.