Announcement

Collapse
No announcement yet.

Using VGA to HDMI Adapters.

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Using VGA to HDMI Adapters.

    Hello,

    I have been testing various VGA to HDMI adapters with the UVGA and have found some successful combinations. The real cheap converters don't work at all.

    Having chosen the best converter for the job, I went on to test multiple screens that do not have VGA inputs, hence the need for the converter.

    Several screens work fine at 320x240 and 800x480 resolutions, but a couple work only at 320x240 and not at 800x480. They just say no signal, though the signal light on the converter says that it detects one. What causes this? Timing issues of some kind a guess? What registers should be played with to try to fix this? Will fixing one just break another?

    Regards


  • #2
    I wonder if the screens support 800x480, hopefully you should be able to find that in the respective datasheets.

    Since the converter will be converting to 'digital' and works with some screens, one would think that the timing cannot possibly have anything to do with this.

    But who can tell for sure?

    You can try and play with the registers, but without any true guidance of what we should be trying to achieve it would be (much) easier to find a needle in a haystack.
    Mark

    Comment


    • #3
      It turns out that the problem may be the resolution. I would like to try a 720x480 (480P) resolution to see if that works. The code below is of course for setting custom resolutions. It appears to be the settings for 800x480 and should be in a FNC file but I haven't been able to find it myself. Can you please post the 840x480 values in this format? I assume then that I can just split the difference of any of the values to get the correct settings for 720x480?

      Regards

      Code:
      To set a custom resolution the following is required
      // longhand resolution changes
      disp_WriteControl(SET_DISPLAY_OFF) ;
      disp_WriteControl(SET_LSHIFT_FREQ) ;
      disp_WrGRAM(0x03) ;
      disp_WrGRAM(0x93) ;
      disp_WrGRAM(0x89) ;
      disp_WriteControl(SET_LCD_MODE) ;
      disp_WrGRAM(0x00) ;
      disp_WrGRAM(0x20) ;
      disp_WrGRAM(0x03) ;
      disp_WrGRAM(0x1F) ;
      disp_WrGRAM(0x01) ;
      disp_WrGRAM(0xDF) ;
      disp_WrGRAM(0x00) ;
      disp_WriteControl(SET_HORZ_PERIOD) ;
      disp_WrGRAM(0x04) ;
      disp_WrGRAM(0x1F) ;
      disp_WrGRAM(0x00) ;
      disp_WrGRAM(0xD8) ;
      disp_WrGRAM(0x7F) ;
      disp_WrGRAM(0x00) ;
      disp_WrGRAM(0x00) ;
      disp_WrGRAM(0x00) ;
      disp_WriteControl(SET_VERT_PERIOD) ;
      disp_WrGRAM(0x01) ;
      disp_WrGRAM(0xFB) ;
      disp_WrGRAM(0x00) ;
      disp_WrGRAM(0x1B) ;
      disp_WrGRAM(0x03) ;
      disp_WrGRAM(0x00) ;
      disp_WrGRAM(0x00) ;
      pause(50) ;
      disp_WriteControl(SET_DISPLAY_ON) ;
      gfx_Set(X_MAX,799) ;
      gfx_Set(Y_MAX,479) ;
      gfx_Cls() ;
      gfx_Set(SCREEN_MODE, PORTRAIT);
      

      Comment


      • #4
        Ok, so maybe something like this is correct? Since im going from 800x480 to 720x480 we should only need to set the resolution to 800x480 and then alter the horizontal period? Here I remove 80 (800-720 = 80) from 0x041F to get 0x03CF and then set x_MAX to 719 (720-1)? Is this correct? Should I need to also adjust the horizontal position by 40 pixels as well?

        Code:
        disp_WriteControl(SET_DISPLAY_OFF) ;
        disp_WriteControl(SET_HORZ_PERIOD) ;        
        disp_WrGRAM(0x03) ;
        disp_WrGRAM(0xCF) ;
        disp_WrGRAM(0x00) ;
        disp_WrGRAM(0xD8) ;
        disp_WrGRAM(0x7F) ;
        disp_WrGRAM(0x00) ;
        disp_WrGRAM(0x00) ;
        disp_WrGRAM(0x00) ;
        pause(50) ;
        disp_WriteControl(SET_DISPLAY_ON) ;
        gfx_Set(X_MAX,719) ;
        gfx_Cls() ;

        Comment


        • #5
          From the values here http://www.3dexpress.de/displayconfigx/timings.html I calculate the values needed for 720x480 to be

          Code:
          disp_WriteControl(SET_DISPLAY_OFF) ;
          disp_WriteControl(SET_LSHIFT_FREQ) ;
          disp_WrGRAM(0x03) ;
          disp_WrGRAM(0x14) ;
          disp_WrGRAM(0x7A) ;
          disp_WriteControl(SET_LCD_MODE) ;
          disp_WrGRAM(0x00) ;
          disp_WrGRAM(0x20) ;
          disp_WrGRAM(0x02) ;
          disp_WrGRAM(0xcf) ;
          disp_WrGRAM(0x01) ;
          disp_WrGRAM(0xDF) ;
          disp_WrGRAM(0x00) ;
          disp_WriteControl(SET_HORZ_PERIOD) ;
          disp_WrGRAM(0x03) ;
          disp_WrGRAM(0x6F) ;
          disp_WrGRAM(0x00) ;
          disp_WrGRAM(0x88) ;
          disp_WrGRAM(0x27) ;
          disp_WrGRAM(0x00) ;
          disp_WrGRAM(0x00) ;
          disp_WrGRAM(0x00) ;
          disp_WriteControl(SET_VERT_PERIOD) ;
          disp_WrGRAM(0x02) ;
          disp_WrGRAM(0x0c) ;
          disp_WrGRAM(0x00) ;
          disp_WrGRAM(0x23) ;
          disp_WrGRAM(0x02) ;
          disp_WrGRAM(0x00) ;
          disp_WrGRAM(0x00) ;
          pause(50) ;
          disp_WriteControl(SET_DISPLAY_ON) ;
          gfx_Set(X_MAX,719) ;
          gfx_Set(Y_MAX,479) ;
          gfx_Cls() ;
          gfx_Set(SCREEN_MODE, PORTRAIT);
          Good luck
          Mark

          Comment

          Working...
          X