In the past two months, I tried something similar with a Spartan3 FPGA: I grabbed the MONO, RGB, VSYNC, HSYNC, DE and CLK32 signals from the shifter/GLUE. For monochrome mode I just forwarded them to the DVI transmitter chip without any buffering or scan doubling as I thought the frequencies should already be high enough for HDMI and for color modes, I also used a double line buffer. But I had less success than you: none of my monitors liked the signal. They all complained about illegal timings. OK, in color mode, I might have messed up something in the VHDL code and can't really test it as I don't have a good oscilloscope, but in mono mode it's so trivial that I'm quite sure that I did the forwarding correctly. My hardware is working well as a test video sequence with VGA timings generated in my FPGA is displayed on all of my monitors, but if I change this sequence to ATARI timings, it is also not displayed.
So I was nearly ready to give up this project and now I wonder how you had success
Have I understood you correctly: you REPLACED the shifter by your FPGA circuit?
Is your ST in PAL or NTSC mode? (Does this make I difference in monochrome mode?)
Did you already have some success in color mode?
What monitor did you use?
In case of interest, here's the timings my FPGA counted in PAL mode and gave out via UART:
Code: Select all
ATARI 1040 STF Mono
Horizontal [Clocks] : FPORCH=$061 SYNC=$060 BPORCH=$03F VIDEO=$280 SUM=$380
Dezimal : 97 96 63 640 896
Vertical [Lines] : FPORCH=$040 SYNC=$001 BPORCH=$024 VIDEO=$190 SUM=$1F5
Dezimal : 64 1 36 400 501
ATARI 1040 STF Low 50Hz
Horizontal [Clocks] : FPORCH=$151 SYNC=$0A0 BPORCH=$10F VIDEO=$500 SUM=$000
Dezimal : 337 160 271 1280 0*
Vertical [Lines] : FPORCH=$02F SYNC=$003 BPORCH=$03F VIDEO=$0C8 SUM=$139
Dezimal : 47 3 63 200 313
* Manually calculated sum is 2048, integer was only range 0 to 2047, so it's plausible to be an overrun.
All the timings were given out in HEX as this was easier to do in VHDL (and already difficult enough
) and afterwards manually converted to decimal.