Some examples here (may or may not be helpful)
That is fastest output I've seen on PSoC
And this one on STM32F7 (link to code in Comments)
P.S. After some play with ILI9340 I switched to the Nextion display (main problem was to find a font of right size, and I didn't want to make my own). Nextion is more expensive ($25 vs $2.5), but saves a lot of time to get something useful done (e.g. menu, text, chart, bitmap) without wasting PSoC resources. With ILI9340 PSoC is almost 100% busy updating the screen. I see only justified use for it as a cheap o-scope screen or simple game (Tetris, etc.)
Some very nice demos. Thanks.
Now we have our benchmark for comparison.
You are absolutely right about resource requirements when updating the screen. I found that if you add in timer interrupts for other processes you see it slow down dramatically. But then again, is this not what buffers are for, although I never got buffers to work as don't understand how to use properly.
So besides the limitations of the ILI9341, I would like to use this as a learning exercise too.
Having seen other MCU handle the display, I see that it is key to also get the hardware to do the SPI work.
I am now looking at the SCB block component instead as I see this has a DMA option. Is this SCB block faster?
How do you access and then use DMA for example?
2 of 2 people found this helpful
There are couple of examples using DMA to transfer data from RAM to screen. This way DMA works in the background, leaving CPU free.
See link to RAM-DMA-VGA here:
and some other examples here
1 of 1 people found this helpful
DMA is "Direct Memory Access", and essentially is a the ability for certain peripherals to access the memory of the RAM without needing the CPU to transfer it using an interrupt/buffer directly. This means that the SPI can read the data out of a buffer of data, and the CPU merely updates that buffer when it wants the SPI to use the data. The DMA then handles transferring the data from the buffer into the SPI output registers.