Shop OBEX P1 Docs P2 Docs Learn Events
Increasing # of NTSC greyscale levels by paralleling two video generators — Parallax Forums

Increasing # of NTSC greyscale levels by paralleling two video generators

TubularTubular Posts: 4,703
edited 2014-02-25 16:21 in Propeller 1
At the moment we have 6 usable NTSC grey levels, generated by one cog with 3 resistors forming a DAC

If I generate synced video in a second cog, with an additional 3 resistors representing new LSB's (2k2, 4k4, 8k8, roughly), could I expect to get 8x the number of levels (=48)?

Any video experts know if this might work? How could I sync the two video generators?

Comments

  • Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 23,514
    edited 2014-02-22 16:03
    I think it would work if you don't try to do color. For syncing, just slave one driver off the vertical sync of the other. That's how I do the PropCAM grayscale overlay on top of tv_wtext.

    -Phil
  • TubularTubular Posts: 4,703
    edited 2014-02-22 16:24
    Thanks Phil that's exactly what I wanted to hear regarding the v sync

    Regarding the color, shouldn't it still be possible to have the same range of NTSC colors from the "master" cog, provided the "slave cog" is outputting % 000 at the same instant and not interfering?

    edit: that is, for one portion of the screen displaying 48 level greyscale, and another separate region displaying ntsc color text or button graphics, for instance.
  • potatoheadpotatohead Posts: 10,261
    edited 2014-02-22 16:36
    Color will still work, if you make sure the slave COG is not outputting any color. One way to do this is to set the S-video mode, where chroma is output to start_pin+3, and just don't use it. Another way is to simply not output colors, and or modify the driver code to omit the colorburst part of the sync signal. It's OK to have the slave output a grey, just make sure it outputs %000 during sync.
  • Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 23,514
    edited 2014-02-22 16:43
    One caveat for slaving on Vsync if you're displaying interlaced video: the slave program will also have to use the timing to determine whether the sync is ahead of the even field or the odd field.

    -Phil
  • TubularTubular Posts: 4,703
    edited 2014-02-22 16:58
    Ok good points, thankyou both.

    I was thinking of putting the LSBs on P16~18 so a "circuit" can be plugged into an existing demo board's connectors, but the chroma would appear on P19 via the 240 ohm blue vga resistor. Having a modified driver for the slave(s) is no big deal, I guess.

    Thinking about it some more, if tv monitors really do saturate at 1.0 volt it would be more like 41 grey levels (+some colors) with 1 slave, or something like 286 levels (+some colors) with 2 slaves, which would be nice. Might need to tweak resistor values, or go with a R2R ladder
  • ericballericball Posts: 774
    edited 2014-02-24 07:03
    It all depends on what you are trying to do. If you just want greyscale, you can use VGA mode as an 8 bit DAC and get 183 levels. If you still want color then there are three options:
    1. Sync two video generators, as you are considering. However, I think you may still run into some sub-pixel bleed because the two PLLs won't be 100% balanced.
    2. Run PLLA at 14.3181818 MHz and generate the Y + U / Y + V signals directly. I did this for my mega-sprite driver.
    3. Do something with outboard electronics.
  • ericballericball Posts: 774
    edited 2014-02-25 10:35
  • TubularTubular Posts: 4,703
    edited 2014-02-25 16:21
    Thanks Eric (and Linus), that's very useful.

    I'll look at the VGA greyscale DAC option too. I think it'd be good for up to 169 usable levels? (92.5 IRE /140 * 256), which would be plenty

    It'll be interesting to see how much bleed occurs, whether it's noticeable.
Sign In or Register to comment.