Here is a project to output a 80x25 character buffer, similar to TVout, but at higher a higher resolution. In order to scan 8X8 characters, I wanted to co-opt the UART in SPI mode for use as a video shift register. Overlapping the video shift out with character ROM lookup would allow on-the-fly character generation at 320X200 screen resolution from a 1000 byte character buffer.
Jan Ostman apparently got something similar working on using a 1284 with 16K of RAM, but I wanted to use a Uno with just 2K of RAM. I couldn’t get anything stable using Jan’s code on my Uno, so I distilled down the code of three separate projects in order to investigate the feasibility of getting this working.
And it does. With the caveat that the SPI seems to glitch quite often and introduces shifted scanlines. I used the TVout video timing values and code because that produces a very stable display. I’m pretty new to the Atmel scene, so maybe I’m missing something with the SPI interaction. I thought others could look it over and point out my obvious mistake
This is hard-coded for NTSC on an Uno. Use Pin 1 (TX) for VIDEO, pin 9 for SYNC.
Find updates on github Arduino/VideoSPI at master · dschmenk/Arduino · GitHub
Gratuitous screenshot. Notice the shifted scanline going through the words “SPI Demo”:
TIA,
Dave…