Announcement

Collapse
No announcement yet.

SSD1963 screen adjustment.

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

  • SSD1963 screen adjustment.

    Is there a way in the uvga setup file to adjust the SSD1963 portion to adjust the screen down a little bit? I am using some small screens that are not adjustable and they all display the screen just a little high from the uvga. I see that there are some adjustments that can be made to the SSD1963, but the datasheet is a bit confusing to me to understand what does what.

    Thanks

  • #2


    Which resolution are you using that you want to move down?
    Mark

    Comment


    • #3


      Using 800x480 resolution. The entire displayed picture needs to be shifted down on the screen 20-30 pixels. It would also help to be able to stretch the screen picture a little too. is the SSD1963 capable of these adjustments and can the Picasso send the needed commands for it?

      Thanks

      Comment


      • #4


        Ahh, it looks like this has been covered before a bit, eg

        http://forum.4dsystems.com.au/forum/...2%B5vga-ii-gfx

        and

        http://forum.4dsystems.com.au/forum/...-on-uvga-2-gfx

        But this post is probably your bible http://forum.4dsystems.com.au/forum/...4990#post14990

        But first read on for a bit of help with that post..

        The quoted constants are in the fnc file now so don't need to be added.
        The disp tool can be found here http://old.4dsystems.com.au/prod.php?id=81
        The uVGA-II header file is here http://old.4dsystems.com.au/download...A-II-SGC-v00.h

        What you probably need to do is increase the Y front porch whilst decreasing its back porch. I say probably as the monitor may try to 'autocorrect' to what it thinks the values should be, so sometimes what you think is a significant change might actually result in no change at all.
        Mark

        Comment


        • #5


          Thank Mark,

          It seems like the left and right movement on the horizontal is working via the code below, but doesnt seem to do anything or get weird results when trying to alter the screen width. The same rules dont seem to apply to the vertical for some reason. Is the code below the correct way? I'm using values small enough in the testing to just deal with the low byte of the values as to not cause any overflows.

          Thanks

          Code:
          disp_WriteControl(SET_HORZ_PERIOD) ;
          HPOSITION := -37;
          HWIDTH := 0;
          disp_WrGRAM(0x04) ;
          disp_WrGRAM(0x1F + HWIDTH) ;
          disp_WrGRAM(0x00) ;
          disp_WrGRAM(0xD8 + HPOSITION) ;
          disp_WrGRAM(0x7F + HPOSITION + HWIDTH) ;
          disp_WrGRAM(0x00) ;
          disp_WrGRAM(0x00) ;
          disp_WrGRAM(0x00) ;

          Comment


          • #6


            As I said the monitor might be trying to 'lock in' to what it thinks is correct and so changes might not have the desired effect. It's best to try and get the manufacturers figures and go from there

            If I try and simplify the datasheet I end up with:-

            HT: (first two bytes) Horizontal total period (display + non-display-1). (eg 800+128+88+40-1)
            HPS: (next two bytes) Non-display period between the start of the horizontal sync signal and the first display data. (eg 128+88)
            HPW: (fifth byte) Set the horizontal sync pulse width (HPW - 1) (eg 128-1)

            Which isn't quite the same as what you have, anyway
            Mark

            Comment


            • #7


              So to sum it up in simple terms,

              Adding to HPS moves the screen right and subtracting from it moves the screen left (while being careful to add or subtract the same value to HT).

              Adding to HPW stretches the screen horizontally while subtracting shrinks it (while being careful to add or subtract the same value to HT).

              I assume that the vertical works in the same manner using the same technical terms?

              Thanks again!

              Comment


              • #8


                Actually I wouldn't have thought HPW would have that effect, but, well if it does on your monitor, so be it.

                The vertical numbers should behave in the same way, but again, your monitor might behave differently.
                Mark

                Comment


                • #9


                  Mark,

                  This isnt working the way that I described above. If the statements that I made are incorrect for how the VGA signal is supposed to work, regardless of what monitor is used, then please help me correct the statement. I'm trying to understand exactly what values need to be changed to adjust both width and position the way that it is supposed to be done. Understanding this is important when fighting a monitor that wants to do its own thing. If its not understood fully, then I cannot know if I've done something wrong or if the monitor is making changes of its own.

                  Thanks.

                  Comment


                  • #10


                    I'm not sure what I can add to what I've already said.

                    The HT value should be the total width, and where the characters start should be defined by HPS.

                    Now in the early days of CRT monitors these were 'absolute' values and the monitor would either display things the way you said, display rubbish, or (as rumour has it) destroy itself.

                    Later CRT monitors used internal time bases to enable them to 'lock' in to what you 'really meant', the idea was that if the frequency, or accuracy of your timing information was not quite right, or 'varied' that the monitor would end up displaying a correct image that would be 'rock solid' (i.e. no wavy bits)

                    Of course LCD monitors don't have guns, they have pixels, so the concepts of the 'time bases' and what they need to do has changed again. Now they have to be used to work out where each pixel is in the stream and 'do the right thing' with that individual pixel on the LCD.

                    So this is why, between the early days and today, what you specify for these figures can ultimately end up being 'ignored' or 'corrected'.

                    The values we use are what we were supplied with and what worked for the monitors we tested them on.

                    What is the monitor you are using? Have you got the manufacturers specified values?

                    Hmm, another thing that can cause 'odd' appearance is the Horizontal and Vertical sync polarity (specified as part of the 'LCD MODE' parameters). But again the manufacturer should be specifying this, otherwise there are too many variables.
                    Mark

                    Comment


                    • #11


                      Ahhh, I think.

                      So, the width of the picture IS the 800 part of (eg 800+128+88+40-1)? So to make it wider we are actually increasing the screen resolution? For example if we want to make it 20 pixels wider we are actually changing the resolution to 820x480, (eg 820+128+88+40-1)?

                      Thanks.

                      Comment


                      • #12


                        Yep, of course as soon as you play with that you will also need to update the X_MAX value in 4DGL
                        Mark

                        Comment

                        Working...
                        X