Is 18-bit VGA display possible
dr hydra
Posts: 212
Just a proof of concept
has anyone tried to use three separate cogs to drive 18-bit color VGA. Since the propeller is basically setup to drive 6-bit VGA
is it possible to use three cogs
one for blue, one for red, and one for green to create an 18-bit color VGA display. I realize that due to the small memory size this display driver would not be very practical
but is it possible? The biggest problem I see is syncing the three cogs
could you sync the cogs and use one of the cogs to drive the hsync and vsync
Comments
You could probably manage 12 bit color rez at 2 bytes per color, which still only gets you to 120x120. Then again 8-bit color (as done by a couple of platforms) only gets you 150x150. There are schemes for syncing up fetches from external RAM but then you're no longer really running the voltage dividers from the Propeller pin cog outputs.
It was almost OK, sometimes, but not 100% There is some magic required to sync cogs that I never figured out...
http://www.linusakesson.net/programming/propeller/pllsync.php
One of the existing hi-res drivers has two cogs synchronized to drive the same pins alternating
between rasterizing and outputting, so theie is already code to synchronize (forget which particular
VGA library, there are many).
If you want to actually drive a high res screen then one approach I've experimented with is using one cog to
control SDRAM chips (the video generator drives the SDRAM control signals and a data latch used to hold
the pixel to write, all the high bandwidth datapath is between SDRAM and display). Its not too hard to get
40MHz pixel clock this way, 80 ought to be possible on a 4-layer board. 2 SDR SDRAMs give 16 bit colour
upto 1024 pixels wide (and dozens of screen pages).
I think the hi-res drivers do not actually have multiple cogs outputting at the same time... They take turns...
The mouse cursor cog does output at the same time, I think. Don't notice any problems there.
Maybe I was just doing something wrong, who knows.
P2 was supposed to make this better as all cog outputs would update at exactly the same time.
Not sure if this is still true though, since P2 plans have changed a lot...
BTW: I was able to use the SSD1963 with Propeller to output VGA with 24-bit color.
It's normally used with 4.3" and 5" displays, but was able to output VGA or HDMI at 640x480.
Only issue there is that the Prop really isn't fast enough nor have enough ram to quickly update the screen.
It takes ~ a second to paint a bitmap file from SD onto the screen, for example.
Still, that is a reasonable approach if you need pretty graphics and it doesn't have to be fast.
it allows for two simultaneous image maps to be faded in and out etc
With 384K it have 12x the memory than Prop1.
http://www.mouser.com/ProductDetail/Epson-ICs/S1D13L01F00A100/?qs=sGAEpiMZZMsE420DPIasPtBmXZbCrpanWb9Rds0HdE8VTQo2CHM61w%3d%3d
https://www.youtube.com/watch?v=EWO-TbPLw60
It even support 3 wire spi, but I probably would go with 8-bit indirect as to get some speed but not waste to many prop pins.