QVGA for Neo

john cass johnpcass at yahoo.com
Fri Sep 28 13:07:26 CEST 2007


Hello Andrej - thanks for your comments regarding the LCM register setup:

>I think you can change the framebuffer size to 240x320 but you will
>need to also increase the number of dummy pixels sent by the cpu's LCD
>Contoller to the LCM between the framebuffer border and the line end
>(this value even has a strange name like vertical porch and horizontal
>porch or something with porches) - so that the timing fits the values
>configured in the LCM. I don't know which of this values fbset will
>let you change.
>
>The minimal "horizontal cycle" value in the LCM's specs is 520 clocks
>and minimum "vertical cycle" is 648 lines, so even if you've only got
>240 significant pixels in a line you need to arrange with fbset so
>that the LCDC sends 520 or more pixels per row. I guess this means
>that you won't get a better refresh rate because of lower resolution,
>but instead the DMA will perform fewer RAM accesses, so stuff should
>work faster.
>
>The registers you want to change are named VFP, VBP, HFP and HBP, and
>iiuc the horizontal framebuffer size + HFP + HBP sum must not change
>(or be >= 520) and height + VFP + VBP sum must also not change (or
>perhaps be >= 648) for the LCM to work.

I will make some more experiments along the lines you mention but I 
already have a feeling its more complex than this.

I dont know what the LCM is doing when its in this 'QVGA mode' but i have 
tried several combinations of output from the LCDC which give wierd results:

240x320 from LCDC : the width is fine (stretched to full screen)
                    vertically the screen is split in two and the
                    top half of the 320 is stretched and repeated
                    in both (i think this is actually two frames
                    one in the top half another in the bottom)

240x640 from LCDC : the width is fine (stretched to full screen)
                    vertically we see the top half of the console
                    stretched over the whole screen (320>640)
                    when running mplayer, its as if the whole
                    640 vertical pixels are displayed correctly
                    (no vertical stretching)

480x320 from LCDC : this shows 'perfectly', width stretched across
                    whole screen, height perfect.  Of course
                    there is the right half of the frame buffer 
                    which is not visible but is assumed to be
                    visible by fbcon etc.

480x640 from LCDC : this shows 'perfectly', width strecthed across
                    whole screen, height perfect.  In this case
                    the top left quadrant of the framebuffer
                    is shown in qvga - the other 3 quadrants
                    are invisible but still assumed to be there
                    by fbcon, mplayer, X etc.

I'll check further regarding the porch timings - all these 
experiments were carried out without changing those timings,
just the data display.

But note: setting the LCDC to output something 'wierd' like
360x360 results in strange effects on the display - so somehow
it much know its being given 'valid pixels' rather than 
'dead space' like the porches...
I think it might be counting valid pixels or something, i dont
think it is just relying on where hsync and vsync happen.

Is there any information available on the LCM at all?
I found this "data sheet" for a similar display but its not really that helpful: 
http://utv.eastpoint.se/egdisplay/files/TD035STEE1.pdf

Regards

John
       
---------------------------------
 Check out  the hottest 2008 models today at Yahoo! Autos.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.openmoko.org/pipermail/neo1973-hardware/attachments/20070928/df2eaadd/attachment.html


More information about the neo1973-hardware mailing list