Summary of the New Firmware
- A New Firmware with widescreen resolutions for VGATonic
- Can support Raspberry Pi 62.5 MHz SPI officially with this mode
- (Beware your connections - short and twisted wires work best)
- VESA Standard 848x480 @ 60 Hz Mode
- Also includes 424x240 (everything speeds up by 4)
- Pick either this firmware or 4:3 640x480 based firmware
|New Firmware||Improvement over 4:3 VGATonic|
|Max SPI Speed||70.7 MHz||18.30%|
|Max FPS on Rpi 2 @ 8 Bpp||19.19||50.90%|
Details of the New Firmware
Note I'm stress testing it in my Northern California un-air-conditioned sunroom - expect somehting to hit Github soon. For now, you can read about it.
I made some mentions in the project logs (and in the videos) of wanting to release a firmware version of VGATonic which could do 800x600 resolution - but while in the middle of writing some VHDL I realized - 4:3 monitors just aren't popular anymore! Every monitor (greater than 7") I've got here, in fact, has a 16:9 ratio.
So I did some Googling and I found something interesting - in 2003, VESA published a standard for 848x480 resolution at 60 Hz. Huh, today I learned - and yes your suspicion is correct - it's a bit of an outlier, since most new resolutions they have added have been larger than what was published.
It was my lucky day, too - I quickly coded up VHDL timings and realized that all 3 of my VGA screens will sync to it - it's just a "not very well known" resolution! (In fact, I think 720x480 or 864x486 was the most common early widescreen resolution due to NTSC DVDs - nowadays you're looking at 1280x720 or 720p being the most popular for TVs and entry level 16:9 monitors).
Being truly my lucky day, I did some math on the reduced blanking period possible in VESA's CVT standard, and we can do it with a 30 MHz pixel clock. We have one signal (memory write) which works at 4x our pixel clock with a 8ns hold time minimum, so we just squeeze by the spec - clocking in at 8.333 ns with this resolution.
That means I can officially support it in VGATonic instead of asking you to build it at your own risk due to the overclocking. All of the parts are still meeting their manufacturer specified timings - even with 32.5% more pixels!
The news gets better. Since the SPI speed supported on VGATonic is affected by the pixel clock, our roughly 5 MHz increase in pixel clock speed means VGATonic can now handle 70.7 MHz SPI (up from 59.8 MHz) - to be safe, call it 70 MHz. Either way, that means we've got headroom for that previously just-out-of-reach 62.5 MHz SPI on Raspberry Pi.
Here are the timings I'm using, so you can check your monitor would support it (Don't hook it up to most CRTs unless you are absolutely sure what you are doing, but most standard compliant widescreens manufactured after late 2003 should support it). Note that I'm using "Reduced Blanking" periods, which is why my CRT warnings are necessary.
|Horizontal Frequency||29.76 kHz|
|Vertical Frequency||60.25 Hz|
|Pixel Clock||60 MHz|
|Horizontal Blanking Length||5.33333 us|
|Horizontal Total Length||33.6 us|
|Horizontal Front Porch||1.6 us|
|Horizontal Sync||1.07 us|
|Vertical Blanking Length||.47 ms|
|Vertical Total Length||16.598 ms|
|Vertical “Front Porch”||0 us|
|Vertical Sync||168 us|