Multibit VGA ... challenges!


Guest essele

Recommended Posts

Hi,

I'm new to this forum, and pretty new to FPGA's and Papilio, but having immense fun experimenting ... so forgive the potentially silly questions.

Anyway, I've been experimenting with an FPGA project on the Papilio One, using VGA as output, I need more colours than the standard wing, so I put together a PCB thats 4-bit per colour. It's only an experiment, and I was also testing out a low cost PCB fab, so apologies for pinching the logo ... I just wanted to see how it would come out  :-[ )...

web.jpg?ver=13169468360001

Anyway, once I got the board populated (don't laugh at my soldering) and plugged in I wasn't getting quite what I expected on the screen. I put together a simple module (hmmm, not sure what the right terminology is here) that generates VGA timing and then uses a few bits of the horizontal position to control the 4 bits of the red output.

(Sorry about the awful picture)

web.jpg?ver=13169468240001

As you can see from the picture about half of the bands are missing, I presume these are the darker ones. My initial thought was that I had either messed up my PCB or mis-soldered. However a scope trace shows a pretty good output.

web.jpg?ver=13169469540001

So, from the trace I would assume that everything is working ... so then I suspected the monitor, on a different one I got a slightly better result (one or two more bands) but still not perfect.

So my gut feel here is that most of the lower half of the voltage range is ignored by the monitor. All the specs I've found suggest 0v = black and 0.7v is full colour, but at least 0.2v is still black from what I can see.

Is that right? Normal?

Should I be designing to use 16 steps from 0.2 to 0.7v or am I just being paranoid?

My ultimate design target is digitally connected LCD, so this isn't going to be a problem long term, but I do tend to get distracted by these kind of things!

Any help greatfully appreciated. And if anyone wants the pcb layout or schematics then I can post them (not that there's anything complicated in them.)

Thanks,

Lee.

Link to comment
Share on other sites

Hello Lee,

Welcome to the forum! Thank you for joining us, the Wing looks good. And don't worry about using the logo, we actually like to see the logo used. :)

So, as to why its not working correctly. What values are you using for the resistors?

I have two 4-bit designs that seem to be working really well:

For both designs I use:

  • 4K resistor
  • 2K resistor
  • 1K resistor
  • 510 resistor

There is a good writeup and a test pattern generator over at FPGA Arcade.

Keep us posted on how the testing is going.

Jack.

Link to comment
Share on other sites

Hi Jack,

Thanks for the response. (and the logo comment :-))

I question the 'its not working' comment given the scope trace, to me this is very much behaving as designed ... my challenge seems to be that my monitors don't understand me :-)

I am using 3k9, 2k, 1k and 510r. So either my monitor(s) are not great or I am messing up my test bitfile (although again the scope image suggests that is ok.)

I'll have a look at the pattern generator in a couple when I get some time over the next few days ... I did wonder if 640x480 implied some colour limitation????

Cheers,

Lee.

Link to comment
Share on other sites

Hi,

Just an update ... it's all working fine with the pattern generator, although I did have some problems along the way which seemed to be related to my monitor (it way saying I had a 55MHz dot clock, although my scope was clearly showing 50MHz) ... it was all fine on another monitor.

IMG_0398.jpg?derivative=medium&source=web.jpg&type=medium&ver=13173910010001

Thanks for the help.

Lee.

Link to comment
Share on other sites

  • 2 months later...
Guest niksgarage

I think what you were experiencing was 'Gamma' .. the non-linear response of the monitor and your eye to voltage coming in to the connector. Most graphics DACs have a (programmable) non-linear ramp built in to compensate. 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.