A lot of us have a soft spot for retrocomputers, and there’s nothing quite like running original hardware. Unfortunately if you’re after the truly original touch then that means carrying along the family TV from 1982, and that’s where life becomes annoying. What if there were a way you could easily drive an LCD panel from a classic video controller? Help is at hand for owners of TI TMS9928A video chips, courtesy of [umaker], with a clever interface board that drives an SPI or parallel TFT.
At its heart is not the FPGA you might expect, but an STM32G4 microcontroller on an STM Nucleo board. This digitizes the R-Y and Y components from the TMS chip which would originally have been destined for an NSC or PAL encoder, does the color conversion through its algorithm, and transfers the result to the screen. This is a task which would back in the day when NTSC or PAL were king have been seen as extremely computationally intensive, so it’s a mark of just how capable an STM can be that a few dollar microcontroller can do it.
We can see this technique proving to be extremely useful across a lot of different retro color graphic applications. We’re not sure whether its lag would be too much for a light gun game, but it would be nice to think that it would result in handheld retro machines.
We encountered this project previously, when as part of its development he needed a sync separator.
Microcontroller than has an integrated ADC that can sample at at least 11MSa/sec?? Apparently I’ve been failing to keep up-to-date.
The fastet controller is the LPC4370 with 80Ms 12Bit ADC. I think number two was a PIC with 20Ms.
Olaf
Would be interesting to have an FPGA implementation of this chip which includes a good chunk of the display controller but writes the outgoing CRT drive signals to a framebuffer that simulates phosphor excitation and is slowly decayed over time as it gets written out to the LCD over SPI (maybe even in time with the CRT drive signals).
Hi, check out my project which is similar in many ways, uses FPGA to convert V9958 RGB video to VGA https://hackaday.io/project/178481-msx2-video-to-vga-conversion-proof-of-concept
> At its heart is not the FPGA you might expect, but an STM32G4 microcontroller on an STM Nucleo board. This digitises the R-Y and Y components from the TMS chip which would oritinally een destined for an NSC or PAL encoder, does the colour conversion through its algorithm, and transfers the result to the screen. This is a task which would back in the day when NTSC or PAL were king have been seen as extremely computationally intensive, so it’s a mark of just how capable an STM can e that a few dollar microcontroller can do it.
I think you’re missing a few consonants there. “oritinally een”? NSC? “can e”?
Jenny needs a new keyboard! :-)
Umaker here. The refresh rate over spi is 30hz so there’s a two frame lag. Using parallel the refresh is 60Hz with a single frame of lag. I actually had it running with 1/4 frame of lag but the DMA injected noise into the ADCs. Once i have a working PCB I’ll try that again.
Hey Umaker! (Sorry we got your handle wrong to start — Jenny had the UK on the brain.)
Great hack.
Just seen this. It is indeed Ukmaker
I spelled it wrong above :( serves me right for writing a post on my iPhone
Well done Jenny!
In the podcast, you referred to the video components R-Y and B-Y as being RED minus YELLOW and BLUE minus YELLOW. Doesn’t Y represent the LUMINANCE component?
i.e. Y=(0.2126*RED(+(0.7152*GREEN)+(0.0722*BLUE).
I enjoy your podcast every week.
Totally!
Jenny didn’t get it wrong in this article, though. That’s all on me. :)