Turn-key PCB assembly services in prototype quantities or low-volume to mid-volume production runs

Generating 800×600 VGA on STM32F4 discovery board

There are several projects on internet where ARM Cortex-M3 is used to generate VGA. But in smaller micros there is always a problem with memory size which is used as frame buffer. So for instance STM32F103 could generate 400×200 resolution images. But things changes when STM32F4 is used. With it karlunt was able to generate 800×600 VGA monochrome signal without significant impact on CPU load.

stm32F4_vga

His starting point was Artekit project that needed to be adapted from new microcontroller. Most of data transfer is done by using DMA channel. Most of load is taken by timers and DMA, so CPU is almost free to do other tasks. During testing he found out several issues that are caused by ST Std Peripheral Libraries. For instance writing to register is wrapped by function which takes like 250ns overhead. This becomes important in timed applications like this. So he wrote his own macros to avoid these time gaps. Since CPU is mostly free it can be used to run almost any application where output could be standard computer monitor with VGA interface. Why not start with game?

[..Source link..]

Bookmark the permalink.

Leave a Reply