2019-02-24 08:13 AM
Hello,
I am a student of electrical engineering and I'm now starting a project where I need to use the stm32 architecture.
The idea is to use a NUCLEO-H743ZI board and to connect 8bits of the GPIO to a VGA Cable and display a 640x480 60Hz 256 colors image in RGB 3-3-2 mode (using R-2R ladders). Since the color information needs to be updated every 40 ns, I think that the best approach to this problem is to transfer the data from a frame buffer saved in the sram to 8 pins of the GPIO using DMA controlled by a timer.
The thing is that I never used DMA before, and looking at the manual I couldn't understand if this idea is viable.
So, my questions are
Is it Possible to transfer information using DMA from the Sram to 8 bit parallel out pins of the GPIO using this board?
If yes, Is it possible to update this pins in a rate of 25Mhz?
If yes, Is there any code where I can base on to understand the Dma SRAM to parallel So I can understand better the related registers?
Thank you all for the attention
Regards,
João Gonçalves
2019-02-24 08:37 AM
Well, there are some parts with specialized DMA2D transfer.
There have been regular work on generating video channel such as this one:
https://hackaday.com/2015/01/04/800-x-600-vga-with-the-stm32f4/
which can probably gives probabilities on the project.
Some STM32F769 Discovery board have display and adapter boards for HDMI as well.
You'll need a fast external RAM as frame buffer.
You'll also need to Implement the sync signals to sync up the external display or projector.
Most GPIO usually have no pb to get to 50MHz.
Good luck!
2019-02-24 08:44 AM
You'd be better looking at the LTDC and the RGB pins, or the data bus via the FMC
You'd likely need to do 16-bit writes to the ODR, or 32-bit writes to the BSRR for pattern buffers.