2019-01-28 06:16 AM
Is it possible to create any kind of hack to run multiple displays on one MCU with ToughGFX?
I'm looking for a way to have one display be drawn normally, but with two smaller displays at very low frame-rates (no higher than 1Hz).
Solved! Go to Solution.
2019-01-29 01:07 AM
Hi Jesper,
Okay. For the parallel display you can simply use one of the existing solutions that configure the LTDC controller and then hook into the flushFrameBuffer(Rect& rect); method in your concrete HAL to transfer data to your serial display(s). It's not something i've tried before (multiple displays) but i can't see why that shouldn't work fine.
Here is a post about how to use flushFrameBuffer() with something like a serial display:
Best regards,
Martin
2019-01-28 02:26 PM
Hi @Jesper Rönnholm,
How are the displays connected?
2019-01-28 11:54 PM
We use parallel 565bpp for the main display, and a simple serial 8bpp (greyscale) protocol over the SPI bus for the two side displays. The side displays are memory mapped to 320x120px and have an update frequency of around 0,5 Hz.
We're looking to manage all three displays from TouchGFX - either in parallel app instances or on the same.
None of the three displays have a touch controller, so there's no conflict there.
2019-01-29 01:07 AM
Hi Jesper,
Okay. For the parallel display you can simply use one of the existing solutions that configure the LTDC controller and then hook into the flushFrameBuffer(Rect& rect); method in your concrete HAL to transfer data to your serial display(s). It's not something i've tried before (multiple displays) but i can't see why that shouldn't work fine.
Here is a post about how to use flushFrameBuffer() with something like a serial display:
Best regards,
Martin
2019-01-29 01:09 AM
I made a post in this thread that outlines how to transfer data to serial displays by hooking into flushFrameBuffer()
2019-01-29 04:35 AM
Thanks! We will study it closer.
It looks like we can maybe exploit the canvas by changing the application screen size after the initial code generation. Then we have one area of the canvas that will show in the original display, and one area that is only visible in the designer.
At least in terms of display compartmentalization, this would allow for keeping the canvas of all three displays in one designer project.
By manipulating the ChromART circuit when rendering outside the main display canvas, we may possibly also be able to inject the correct bitmap encoding for rendering the grayscale framebuffers (on the side displays).