Guest essele

Multibit VGA ... challenges!

Recommended Posts

Guest essele

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.

Share this post


Link to post
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.

Share this post


Link to post
Share on other sites
Guest essele

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.

Share this post


Link to post
Share on other sites
Guest essele

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.

Share this post


Link to post
Share on other sites

Sorry for the question, but...

you're doing 640x480 at 50MHz pixel clock ? That is very uncommon. What Vrefresh does your monitor report ? Care to share timings (front/backporch) ?

Álvaro

Share this post


Link to post
Share on other sites
Guest essele

Hi,

The 50MHz clock was for the test pattern generator, which I think is 800x600.

For the 640x480 I was using a 25MHz clock.

Lee.

Share this post


Link to post
Share on other sites
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. 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now