sumotoy / RA8875

A library for RAiO RA8875 display driver for Teensy3.x or LC/Arduino's/Energia/Spark
GNU General Public License v3.0
79 stars 55 forks source link

fast draw image #67

Closed langwadt closed 9 years ago

langwadt commented 9 years ago

Not really and issue just a comment.
The wiki seems to indicate that you can't do a fast data transfer to the screen, I know you can (atleast with the whole screen). I use a 800x480 buydisplay lcd as frame buffer in a different project ~3fps in 16 bit color ~6fps in 8bit color with 20MHz spi

set activewindow, set startaddress, cmd 0x02, then stream the all the pixel data while keeping CE low

sumotoy commented 9 years ago

It's exact what I'm doing here, even faster thanks to the 22Mhz SPI and SPI Transactions. Btw I cannot call 'fast' 3fps and 6fps! This method require 800x480=384000, but are 16bit so 768000 SPI transfer to the RA8875 that doesn't act as framebuffer because the internal GPU have to address to the RA internal memory and update screen at every pixel, with other type of controllers I can write directly in the display memory and at the end send the command that transfer memory in the display, much faster than RA method. But for any 800x480 serial drived this mean 768000 SPI calls, doing this in 16bit parallel it's another story, I have seen SSD chipset 16bit drived display (almost same resolution) goes at 20, 22 fps. I'm actually surprised you got 3 fps, this mean 2.3 million of SPI transfer per sec so you are driving the chip using 19->22Mhz SPI, are you using this libray? If not, I wonder how you fix the bottleneck of the 10Mhz limit of some function (the datasheet talks about 12Mhz as ceiling limit for SPI), for example circles or text, I haved to use SPI speed modulation and gived me the ability to go till 22Mhz.

The Adafruit works at 8Mhz, cannot be.

langwadt commented 9 years ago

ok, I misunderstood it as the chip not supporting a command to stream data directly to memory, it's hard to fault the chip for not being able to transfer data faster than the interface allows. Are you saying there is a limitation when running in parallel mode?

I don't use the library, it is a totally different project using an FPGA with a cpu running linux, I don't use any special functions, I just set up with a slow spi and then use something similar to DMA to stream the data at maximum rate

sumotoy commented 9 years ago

dunno really but I suspect that the presence of the GPU force limitations, datasheet says from 9ns to 16ns so probably it can arrive at 10, 12fps max but this just by looking datasheet.

langwadt commented 9 years ago

afaict tell from the datasheet the limit on parallel access is 15MHz, that comes out to almost 40fps