Shop OBEX P1 Docs P2 Docs Learn Events
P2 HDMI Monitor resolution 1920x1200 and Videodata 640x256 Pixel - Page 3 — Parallax Forums

P2 HDMI Monitor resolution 1920x1200 and Videodata 640x256 Pixel

13

Comments

  • RaymanRayman Posts: 14,744

    The two different kinds of ~$10 VGA to HDMI converters from Amazon appear to work perfectly for me.
    And, they add sound as a bonus.

  • Which ones did you try Rayman?

  • I'm with Rayman, these vga2hdmi converters work remarkaby well for the $
    I have about 4 different models from maybe 6 or 7 purchases
    Most use the Macro Silicon chips, some have QFN, and some have QFP footprints with a slightly different part number
    There was also another chipset that started with C whose brand and number I can't remember

    Most of the testing has been with Roger's driver, where the screen is part graphics and part text. The text remains sharp and readable

    Roger and I have joked about desoldering the chips and moving them onto a dedicated P2 accessory board. The chips can be bought on aliexpress. Tbh given the 'input' to the board just needs to be 5 vga signals and 2 power pins, with optional audio, maybe just patching via a ribbon cable to the P2 board may be the way to go, and work easily with any existing P2 ecosystem

  • The converter I had used with success was this CM201 model...mine was branded as product from Simplecom. It appeared to give very good results over a range of resolutions I tried with it. Didn't try its sound capability because my monitor takes DVI only but if that worked too it would be very handy. For its rather low price I think it works very well. As Tubular mentioned, a P2-EVAL breakout with the same encoder chip on it sending directly to a HDMI socket would be a very convenient way for a P2 to do 1080p60 over HDMI and make the solution a bit tidier vs using extra cables/adapters.

  • I found that other chip in one of the converters, its a CM6616s

  • @Tubular said:
    I found that other chip in one of the converters, its a CM6616s

    https://www.manua.ls/ica/cm6616s/manual :D

  • For the best possible display, the ratio native resolution display and video image should always be an integer.

    If this is not possible, the native resolution is not completely usable (pixels and lines must be darkened).

    x1-> 640x256 (monitor can internally scale to 1920x768)
    x2-> 1280x512 (no scaling only dark keys)
    x3-> 1920x768 (perfect)

    The values x2 and x3 are not feasible with the P2.
    The HDMI converters without internal graphics memory are just a waste of money.

    Even in 24Bit mode I only need 491.520Byts.

  • evanhevanh Posts: 16,027
    edited 2021-08-16 10:47

    Analogue (VGA) 1920x768@60Hz is easy for the Prop2. Could do it with maybe as little as 120 MHz sysclock. The converter, on the other hand, probably won't recognise the resolution. It'll probably attempt 1024x768. :(

  • m_rf            long    $B0850000 + hdmi_base<<17 + rx          'visible rfword rgb16 (5:6:5 = R:G:B)
    m_rf            long    $???????? + hdmi_base<<17 + rx          'visible rflong rgb24 (8:8:8:8 = R:G:B:0)
    

    What is the encoding at 24Bit color depth?

  • @evanh said:
    Analogue (VGA) 1920x768@60Hz is easy for the Prop2. Could do it with maybe as little as 120 MHz sysclock. The converter, on the other hand, probably won't recognise the resolution. It'll probably attempt 1024x768. :(

    That is exactly the problem.
    I already know enough of this from my P1 VGA projects.
    Therefore, the converters have migrated from the table to the trash can.
    What I have also noticed, not every combination of monitor and converter, are crowned with success.
    Some combinations even make real garbage.

  • evanhevanh Posts: 16,027
    edited 2021-08-16 11:56

    @pic18f2550 said:

    m_rf            long    $B0850000 + hdmi_base<<17 + rx          'visible rfword rgb16 (5:6:5 = R:G:B)
    m_rf            long    $???????? + hdmi_base<<17 + rx          'visible rflong rgb24 (8:8:8:8 = R:G:B:0)
    

    What is the encoding at 24Bit color depth?

    As per the comment. HubRAM longs = red[31:24];green[23:16];blue[15:8];unused[7:0]

  • Bad question.
    I mean the 8 question marks.

  • @pic18f2550 said:
    Bad question.
    I mean the 8 question marks.

    This mapping used to be defined in a table of streamer commands in the earlier P2 HW documentation, but the latest P2 documentation doesn't appear to cover it (yet), or at least I can't seem to find it there.

  •                                RDFAST ⇢ RGB ⇢ Pins/DACs
    
    1011 dddd eppp 0010   rgb      RFBYTE -> 24-pin + LUMA8         32 out   %rrrrrrrr_gggggggg_bbbbbbbb_00000000
    1011 dddd eppp 0011   -        RFBYTE -> 24-pin + RGBI8         32 out   %rrrrrrrr_gggggggg_bbbbbbbb_00000000
    1011 dddd eppp 0100   -        RFBYTE -> 24-pin + RGB8  (3:3:2) 32 out   %rrrrrrrr_gggggggg_bbbbbbbb_00000000
    1011 dddd eppp 0101   -        RFWORD -> 24-pin + RGB16 (5:6:5) 32 out   %rrrrrrrr_gggggggg_bbbbbbbb_00000000
    1011 dddd eppp 0110   -        RFLONG -> 24-pin + RGB24 (8:8:8) 32 out   %rrrrrrrr_gggggggg_bbbbbbbb_00000000
    
    

    $B0850000 -> $B0860000 for 24bit

  • evanhevanh Posts: 16,027

    Oh, right. In the Spin2 manual, look in section "Built-In Symbols for Streamer Modes": X_RFLONG_RGB24

  • pic18f2550pic18f2550 Posts: 400
    edited 2021-08-17 09:29

    P2 DVI/HDMI

    P1 VGA

    I have once displayed individual characters.
    And I have to say that the picture is just horrible.
    The quality of the P1 VGA output is better, even if the monitor has to scale.
    The best place to see the failure is on the two lines.
    The black line in between is simply filled with color values.
    This should be as wide as the two colored lines.

    But back to VGA? or wait for the P3? o:)

  • evanhevanh Posts: 16,027

    Source code please.

    Prop2 is very flexible and the DACs are high speed and very precise. It's more likely the program needs some fixes.

  • Cluso99Cluso99 Posts: 18,069
    edited 2021-08-17 10:53

    FWIW This is what I had on VGA 1920x1080 with 8x8 font and 240 characters per line.
    https://forums.parallax.com/discussion/comment/1457246/#Comment_1457246

  • This looks really good.
    Have only looked at the VGA_base_1920x1080_001c.spin2 so far.
    Will soon take a closer look at the VGA_base_1920x1080_004f.spin.

    I don't have any values from 1920x1080, nor do I have a monitor.
    My monitors are all 1920x1200 Samsung SyncMasterSA450 and 2560x1440 HANNSpree HQ272 respectively.

    VESA Signal 1920 x 1200 @ 60 Hz Timing
    
    General timing
    Refresh rate 60 Hz
    Vertical refresh rate 74.521604938272 kHz
    Pixel frequency 193.16 MHz
    
    Horizontal timing (line)
    The polarity of the horizontal synchronization pulse is negative.
    
    Scanline Part Pixel       | Time [µs]
    Visible area 1920         | [9.939946158625
    Front stem 128            | 0.66266307724166
    Synchronization pulse 208 | 1.0768275005177
    Rear stem 336             | 1.7394905777594
    Total row 2592            | 13.418927314144
    
    Vertical timing (frame)
    The polarity of the vertical synchronization pulse is positive.
    
    Frame part Lines        | [ms]
    Visible range 1200      | 16.102712776972
    Front stem 1            | 0.013418927314144
    Synchronization pulse 3 | 0.040256781942431
    Rear porch 38           | 0.50991923793746
    Total frame 1242        | 16.666307724166
    

    Let's see if I can get it together.

  • @evanh said:
    Source code please.

    Prop2 is very flexible and the DACs are high speed and very precise. It's more likely the program needs some fixes.

  • @pic18f2550 said:
    The best place to see the failure is on the two lines.
    The black line in between is simply filled with color values.
    This should be as wide as the two colored lines.

    That's just your monitor doing bad scaling. That is, linear interpolation of sRGB values.

  • pic18f2550pic18f2550 Posts: 400
    edited 2021-08-17 13:02

    @Wuerfel_21
    I won't argue with that.
    But there are more and more monitors on the market that don't have a VGA socket or DVI with analog input.
    It would be nice if you could switch off the linear interpolation.
    The only possibility is to control the monitor with the native resolution. But the P2 is still too slow for that.

  • Perhaps there is also some "smearing-effect", due to any impedance mismatch (or bad interpretation of P2-pins drive strength), as seen by monitor's DVI/HDMI input.

    IIRC, I've saw this before (cable dependancy), perhaps during the 7" HDMI display (800 x 480) or even Jon McPhalen's P2 Edge Module Breadboard tests (in one of Collin's setups, perhaps), though I couldn't find that reference yet (forums search box just ___ks, as usual...).

    You can almost "see" the eye-patterns at the top collored lines, each one composed by eight consecutive 3H x 5V "dots".

  • The representation in the luminosity is somewhat exaggerated.
    The cause is that a camera overdoes something due to its sensitivity.
    I have tried with different monitors and cables.
    Everywhere the same problem.

  • Thanks for the clarification! :smile:

    I believe your monitor is oversampling to 75 MHz (as if P2 sysclk rate was 750 MHz).

    If that's true, there is a chance for it (the monitor) to feel a bit more "easy" with P2 sysclk rate at 375 MHz, but them, everything would need to be recalculated, based on the new dot rate.

    Another option would be trying the pixel-doubling trick, since it will relly on the same data you already has, but the DVI clocks would need to be reconfigured to be commanded by the smart pins, not the streamer-provided ones.

    A bit of work, as to get the right phase alignment, but it'll be a one-time setup. Will think about it during my "mitagessen"...

    Kind of a controlled downhill ride, over a mountain bike; having the proper pace adjusted, it's an ever-enjoying adventure. :smiley:

  • evanhevanh Posts: 16,027

    Looks like others are better equipped to answer the image concerns.

    However, the posted code https://forums.parallax.com/discussion/comment/1527246/#Comment_1527246 has a bug. The second ORG 0 throws out the assembled branch calculations without first relocating the binary to match. So it's a crash.

    Removing the second ORG 0 produces a 82 Hz display! Me beleaguered TV can't handle that high.

    Small tweaks gives some parameters to play with:

  • evanhevanh Posts: 16,027

    What I will say about the image quality is since it's all digital (via DVI link) then the monitor/TV are what's responsible, not the prop2.

  • evanhevanh Posts: 16,027
    edited 2021-08-18 13:14

    And more backwards compatible still (70 Hz being original VGA rate):

                    _clkfreq = 250_000_000   'system clock frequency must be at least 250 MHz for DVI/HDMI
                    rx  = 640   ' x400
                    ry  = 64
                    ry1 = 168       ' 1920x1200
                    vbp = 82        ' 70 Hz  'minimum vblank of 8 (vblank = vfp + vp + vbp)
    

    EDIT: Removed the out of date vblank maths in comments
    UPDATE: Added a macro photo of this mode used on my old Dell U2412M 1920x1200 DVI monitor.

    PS: Sadly, this monitor refuses to accept arbitrary resolutions within spec. It comes from the days of known mode numbers only. I'm trying to find other suitable resolutions ...

    EDIT: Fixed image by changing to a file for download.

    2504 x 1000 - 181K
  • evanhevanh Posts: 16,027
    edited 2021-08-18 08:55

    Ugh! I got an unexpectedly good result with this monitor.

    I tuned it roughly 800x600 sync rates and got that working then adapted that to 640x600 and, expecting it to say it was still 800x600, amazingly it correctly picked up the resolution change without complaining.

    So it can do odd-ball combinations in the right conditions. Cold comfort for blindly choosing a resolution though.

    EDIT: Ha, wow, and with 370 MHz sysclock, I can even get it to accept 960x600 because that makes hsync what seems to be its minimum 35 kHz.

                    _clkfreq = 370_000_000   'system clock frequency must be at least 250 MHz for DVI/HDMI
                    rx  = 960   ' x600
                    ry  = 64
                    ry1 = 268       ' 1920x1200
                    vbp = 5         ' 57.5 Hz  'minimum vblank of 8 (vblank = vfp + vp + vbp = 1 + 2 + 5)
    
  • Adding a frame improves the hit probability and reduces pixel smearing.

    Another thing I noticed is the brightness values.
    The smaller values are barely visible.

    Despite 370Mhz, the P2 is surprisingly cool, only a slight temperature can be felt.

Sign In or Register to comment.