This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

problems about LCD on OMAP-L137 EVM

Other Parts Discussed in Thread: DA8XX, OMAP-L137

The LCD i use is 680*480.I modify linux-2.6.18_pro500/drivers/video/da8xx/da8xx_fb.h as follow.

*********************************************************************************************************

#define QVGA_HEIGHT   480

#define QVGA_WIDTH     680

*********************************************************************************************************

When i run startx command in linux,there are some yellow lines on the lcd screen and the screen is disordered.When i run qt-embedded-linux-opensource-4.4.3/examples/tools/plugandpaint,I cannot see anything on the screen(it is black) and the information on konsole as follow.

**********************************************************************************************************

root@192.168.0.10:/opt/qt# sh plugandpaint.sh


oom-killer: gfp_mask=0x201d2, order=0
Mem-info:
DMA per-cpu:
cpu 0 hot: high 6, batch 1 used:0
cpu 0 cold: high 2, batch 1 used:1
DMA32 per-cpu: empty
Normal per-cpu: empty
HighMem per-cpu: empty
Free pages:         824kB (0kB HighMem)
Active:4528 inactive:50 dirty:0 writeback:0 unstable:0 free:206 slab:795 mapped:37 pagetables:345
DMA free:824kB min:724kB low:904kB high:1084kB active:18112kB inactive:200kB present:32768kB pages_scanned:497 all_unreclaimable? no
lowmem_reserve[]: 0 0 0 0
DMA32 free:0kB min:0kB low:0kB high:0kB active:0kB inactive:0kB present:0kB pages_scanned:0 all_unreclaimable? no
lowmem_reserve[]: 0 0 0 0
Normal free:0kB min:0kB low:0kB high:0kB active:0kB inactive:0kB present:0kB pages_scanned:0 all_unreclaimable? no
lowmem_reserve[]: 0 0 0 0
HighMem free:0kB min:128kB low:128kB high:128kB active:0kB inactive:0kB present:0kB pages_scanned:0 all_unreclaimable? no
lowmem_reserve[]: 0 0 0 0
DMA: 26*4kB 0*8kB 3*16kB 1*32kB 0*64kB 1*128kB 0*256kB 1*512kB 0*1024kB 0*2048kB 0*4096kB = 824kB
DMA32: empty
Normal: empty
HighMem: empty
Free swap:            0kB
8192 pages of RAM
694 free pages
1382 reserved pages
795 slab pages
70 pages shared
0 pages swap cached
Out of Memory: Kill process 988 (portmap) score 414 and children.
Out of memory: Killed process 988 (portmap).
oom-killer: gfp_mask=0x201d2, order=0
Mem-info:
DMA per-cpu:
cpu 0 hot: high 6, batch 1 used:0
cpu 0 cold: high 2, batch 1 used:1
DMA32 per-cpu: empty
Normal per-cpu: empty
HighMem per-cpu: empty
Free pages:         832kB (0kB HighMem)
Active:4542 inactive:13 dirty:0 writeback:0 unstable:0 free:208 slab:794 mapped:38 pagetables:345
DMA free:744kB min:724kB low:904kB high:1084kB active:17884kB inactive:360kB present:32768kB pages_scanned:2311 all_unreclaimable? no
lowmem_reserve[]: 0 0 0 0
DMA32 free:0kB min:0kB low:0kB high:0kB active:0kB inactive:0kB present:0kB pages_scanned:0 all_unreclaimable? no
lowmem_reserve[]: 0 0 0 0
Normal free:0kB min:0kB low:0kB high:0kB active:0kB inactive:0kB present:0kB pages_scanned:0 all_unreclaimable? no
lowmem_reserve[]: 0 0 0 0
HighMem free:0kB min:128kB low:128kB high:128kB active:0kB inactive:0kB present:0kB pages_scanned:0 all_unreclaimable? no
lowmem_reserve[]: 0 0 0 0
DMA: 1*4kB 2*8kB 2*16kB 1*32kB 0*64kB 1*128kB 0*256kB 1*512kB 0*1024kB 0*2048kB 0*4096kB = 724kB
DMA32: empty
Normal: empty
HighMem: empty
Free swap:            0kB
8192 pages of RAM
665 free pages
1382 reserved pages
795 slab pages
134 pages shared
0 pages swap cached
Out of Memory: Kill process 1065 (login) score 62 and children.
Out of memory: Killed process 1066 (bash).


MontaVista(R) Linux(R) Professional Edition 5.0.0 (0702774)

192.168.0.10 login:

********************************************************************************************************

I download glcd_test from Prathap Srinivas replied on Wed, Apr 8 2009 5:06 AM
clcd_test.zip.There is nothing except some yellow lines,and i get information from konsole as follow:

root@192.168.0.10:/opt/glcd_test# ./glcd_test
/*****************************************************************/
                       GLCD Test program
/*****************************************************************/
The connected display is:
Resolution: 680X480, bits per pixel: 16
Segmentation fault.

What's wrong?

  • Hi,

    As far as i am aware, only QVGA panel is supported/tested.

    Please see the code snippet in lcd_init() function of drivers/video/da8xx/da8xx_fb.c.

    lcd_cfg_display(cfg);
            if (QVGA != cfg->p_disp_panel->panel_type) {
                    printk(KERN_ALERT
                           "\nError: Only QVGA panel is currently supported !");
                    return -EINVAL;
            }
    Also line 36 of da8xx_fb.c includes the file sharp_color.h which has configuration for using the Sharp LQ057Q3DC02 QVGA panel.

    Thanks,

    Prathap.

     

  • Can I use LCD(CLAA057VA01CW 680X480) panel on OMAP-L137.Please give me some suggestion.

  • The Hardware on OMAP-L137 supports the 680X480 panel. By referring to the LCDC users guide ( http://focus.ti.com/lit/ug/sprufm0a/sprufm0a.pdf ), section 3.9.1 and section 3.10.1, it is possible to support this configuration in software. It is possible to support displays where the number of PPL (pixels per line) ranges from 16-1024. LPP (lines per panel) specifies the number of lines per LCD panel which can be a range between 1-1024 lines per panel. However you will have to make additional modifications to the drivers. You can look at the source code to make sure that registers are being configured properly and that memory allocation is sufficient.

  • How can i calculate pix_clk from da8xx driver? LCD_CLK is 150 M ,is right?

    lcd_cfg->.pxl_clk=0x1e,pix_clk=150M/0x1e=5M. Is it right?

  • Yes. 

    According to the LCDC Users Guide (http://focus.ti.com/lit/ug/sprufm0a/sprufm0a.pdf), the pixel clock frequency is given by  LCD_PCLK = LCD_CLK /  CLKDIV. 

    The LCD_CLK is given by SYSCLK2.  Which is shown in the datasheet to be SYSCLK1/ 2 => (DSP/2) = 150MHz.   (http://focus.ti.com/lit/ds/symlink/omap-l137.pdf - page 67)

     

  • Hi,When i run glcd_test on omap-l137(use 640x480 lcd),I can only Draw chess board.When i run else,i get the information "Segmentation fault".Is there any ram or frambuffer that i must pay attention to?

    And i run examples/qws/framebuffer (testing the linux framebuffer for qt for embedded linux) as follow:

    root@192.168.0.10:/opt/qt/framebuffer# ./framebuffer
    The framebuffer device was opened successfully.

    Fixed screen info:
     id:          DA8XX FB Driver
     smem_start:  0xc0700020
     smem_len:    645120
     type:        0
     type_aux:    0
     visual:      2
     xpanstep:    0
     ypanstep:    0
     ywrapstep:   0
     line_length: 1360
     mmio_start:  0x0
     mmio_len:    0
     accel:       0

    The framebuffer device was mapped to memory successfully.

    Successfully switched to graphics mode.

    Variable screen info:
     xres:           680
     yres:           480
     xres_virtual:   680
     yres_virtual:   480
     yoffset:        0
     xoffset:        0
     bits_per_pixel: 16
     grayscale: 0
     red:    offset:  0, length:  5, msb_right:  0
     green:  offset:  5, length:  6, msb_right:  0
     blue:   offset: 11, length:  5, msb_right:  0
     transp: offset:  0, length:  0, msb_right:  0
     nonstd:       0
     activate:     128
     height:       -1
     width:        -1
     accel_flags:  0x0
     pixclock:     0
     left_margin:  64
     right_margin: 64
     upper_margin: 32
     lower_margin: 32
     hsync_len:    0
     vsync_len:    0
     sync:         0
     vmode:        0

    Will draw 3 rectangles on the screen,
    they should be colored red, green and blue (in that order).
      Done.

    *******************************************************************************************************************

    I cannot see anything except some disordered red,green and blue line.

     

  • Have you tried running glcd_test (or the other tests for that matter) using the default 320x240 QVGA size just to make sure you understand how these tests work before changing the source code to accomodate your desired 680x480 resolution?  It appears that other customers have ran glcd_test successfully (see https://community.ti.com/forums/p/4692/17423.aspx ).

    The Segmentation Fault makes me thinkg that some part of the system still thinks it has a smaller 320x240 buffer and other parts of the system may be trying to write past this buffer (e.g. assume buffer is 680x480).  I would recommend you fall back to 320x240 just to narrow down the problem (e.g. is this a problem with the test, enviroment, or source code changes).  If the test does not work at 320x240, it is likely a problem with the enviroment that we need to fix before moving on the speculating about the source code changes.

  • When i use default 320x240,there is no segmentation fault.Maybe this buffer(320x240) is smaller,but how can i change it?I'm newer about linux.

    And the picture of glcd_test(3) on screen change it position every time and about 3x2 pictures on screen.Pictures are not clear.Also,command is end on 'segmentation fault'.

  • Please have a look at an experimental driver that supports VGA: http://wiki.davincidsp.com/index.php?title=OMAP-L1x_VGA

    Also you may need to modify the QT qws code slightly as it allocates memory for the framebuffer that is actually the storage for palette data. That is why you sometimes get real weird screens with blinking lines and such using Qt.

  • Also I'm use L137.  Problem which I met may be same to you. I wrote a program to show a bmp picture. but the result is what I expected. some pixels does not show right color. More seriously, sometime it glitters.