P2 DVI/VGA driver



  • rogloh wrote: »
    I think if you build a dedicated board you can design it right, but for people already using the direct P2-EVAL breakout using Parallax supplied Digital Video Out board without resistors, perhaps this float/1.5k setting is okay, OR if it varies from cable/setup we can try the BITDAC approach.

    I felt rather uneasy about having the direct 0V drive down and 3.3V drive up approach I'd been using myself in my driver (so I went and released it with the 1.5k drive coded in for high and low) but perhaps with the 50 ohm termination in the DVI/HDMI receiver it shouldn't ever be a dead short. This float up and 1.5k pull down seems safe(ish?) if it also works for other people. We sort of need people to try it out to see if it works.

    Alternatively the BITDAC level version might be a more universal/well constrained solution to be used with the Digital Video Out board.

    If the outputs are 3.3V/0V CMOS then an external 270 ohm series resistor at each output will emulate a CML transmitter, which is open-collector so floating high is not a problem. 1.5k seems a very large pull-down, compared to the 50 ohm pull-ups in the receiver. Is it possible to measure the voltage carefully across a differential pair somewhere in BITDAC mode when the receiver is switched on? This should eliminate the guesswork about internal and pin resistances.
    Formerly known as TonyB
  • roglohrogloh Posts: 1,695
    edited 2019-11-23 - 03:48:34
    A BITDAC mode may not need the resistor if the P2 is already internally using 123 ohms. I am assuming we can use the BITDAC to set the DC level output from 0-3.3V in 3.3V/15 increments. I would think this allows us the range to develop the 400mV to 600mV swing across the termination resistor in the receiver fairly accurately, however reflections might become an issue if the impedance doesn't match the transmission line when we switch between high and low. To get it to match you might have to have a parallel resistance too.

    A raw GPIO mode (~20 ohms in the P2) could use a series resistor to help limit the current, because it appears that simply grounding it via 20 ohms is too high a current for the swing we want, and this extra resistor it could help absorb any reflections if it matches the impedance. You should still be able to use the float high case I think (it looks like CML is designed with that in mind) but driving it up to 3.3V as well is probably ok if the impedance matches.

    I'm happy that float high and pull low via 1.5k works in my setup (it seems pretty safe) but this may only be because the LCD monitor's CML receiver is far more sensitive than the specs require.

  • Cross posted with TonyB_. Yes 1.5k is a large pull down and I don't think it would work in all cases.
  • TonyB_TonyB_ Posts: 1,352
    edited 2019-11-23 - 03:59:55
    On the face of things, BITDAC mode using 3.3V & 1.32V (steps 15 & 6) would give ~500mV at the receiver, with no external resistors, if that is safe to try.
    Formerly known as TonyB
  • TonyB_ wrote: »
    On the face of things, BITDAC mode using 3.3V & 1.32V (steps 15 & 6) would give ~500mV at the receiver, with no external resistors, if that is safe to try.

    Yes, I think that would be okay.

    I just tried it with BITDAC HHHH_LLLL set to 1111_0110 it looks okay, no sparkling pixels.

    Also tried with 1111_0111 and that was good too. They both should fall within the 400-600mV range I think (from a DC standpoint anyway).

  • roglohrogloh Posts: 1,695
    edited 2019-11-23 - 04:12:04
    For anyone using my driver these are the source code lines you would change to try these ideas out...

    Change this line in p2videodrv.spin2
    wrpin  ##%001001<<8, a          'uncomment for full drive output
    to this for float high pull low with 1.5k
    wrpin  ##%111001<<8, a          '1.5k pull down, float high
    or replace with this for BITDAC
    wrpin   ##%10110_1111_0110_10_00000_0, a  '123 ohm BITDAC for pins
  • All of them work on my current HDMI screen. Will test some others when I travel again after the holidays.

    Do not taunt Happy Fun Ball! @opengeekorg ---> Be Excellent To One Another SKYPE = acuity_doug
  • Great!
Sign In or Register to comment.