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.

AM335X-EVM change display resolution

Other Parts Discussed in Thread: AM3352

Hi,

I'm using AM335X-EVM board running Android ICS, I would like to get EVM's panel to run at 320x240 instead of 800x480.
I wrote at Android TI's forum and I've resolved part of the problems but at driver level other problems remain.

The panel I'm using is "TFC_S9700RTWV35TR_01B" and I can run it at the right resolution modifying $SOURCE_HOME/kernel/drivers/video/da8xx-fb.c at:

[2] = {
.name = "TFC_S9700RTWV35TR_01B",
.width = 800,
.height = 480,
.....

with

[2] = {
.name = "TFC_S9700RTWV35TR_01B",
.width = 320,
.height = 240,
.....

The problem I'm getting is the screen repeated on the short side of the screen, some vertical stripes and one horizontal in the middle.

I suppose I have to tweak the other parameters into da8xx-fb's driver but I don't know with which one I have to start. Do someone have some suggestions?

Thanks,

Francesco

  • Hi,

    You can refer to below patches for adding support for new panel.

    http://arago-project.org/git/projects/?p=linux-am33x.git;a=commitdiff;h=e1c0ed46f3aa08abd2b48677f0f7fea79f06dd4c

    http://arago-project.org/git/projects/?p=linux-am33x.git;a=commitdiff;h=90c1429facf25db03259bbeee7b350045e96cfe7

    Thanks,

    Prakash

  • Thanks Prakash,

    these informations would be useful when I will have to change the panel.

    At the moment I'm trying to run at 320x240 with "TFC_S9700RTWV35TR_01B" EVM's panel (which natively runs at 800x480). But as I said in the first post I get the screen repeated on the short side and I have vertical and horizontal thin stripes.
    I was wondering if someone knows how to tweak panel's parameters (I suppose into da8xx-fb.c) to run fine at 320x240.

    Thanks,
    Francesco

     

  • Hi,
    some updates:

    running fbset through busybox on Android I can see:

    root@android:/ # busybox fbset -fb /dev/graphics/fb0 

    mode "320x240-237"
    # D: 30.000 MHz, H: 67.416 kHz, V: 237.382 Hz
    geometry 320 240 320 480 32
    timings 33333 39 39 29 13 47 2
    accel false
    rgba 8/16,8/8,8/0,8/24
    endmode

    Probably the image on the screen is repeated on the short side because of the wrong geometry, I suppose it should be "geometry 320 240 320 240 32" but I don't know how to change it.

    I've also tried changing it on the fly with fbset:

    busybox fbset -fb /dev/graphics/fb0 -g 320 240 320 240 32 -n

    but nothing happen on the screen. I've tried also adding -match at the above command.

    Thanks,
    Francesco

  • Francesco,

    I don't think you can drive a 800x480 panel to run at 320x240 just by changing the resolution settings. What I suggest is that keep the total timings same and change the active video time. I don't have time to go through the registers and figure out the exact settings. If you can share the current LCDC register values which works for 800x480, I can suggest you the values for 320x240.

  • Hi Renjith,

    thank you for your kind answer.

    These are actual configurations from da8xx-fb.c:

    /* ThreeFive S9700RTWV35TR */
        [2] = {
            .name = "TFC_S9700RTWV35TR_01B",
            .width = 320,
            .height = 240,
            .hfp = 39,
            .hbp = 39,
            .hsw = 47,
            .vfp = 13,
            .vbp = 29,
            .vsw = 2,
            .pxl_clk = 30000000,
            .invert_pxl_clk = 0,
        },

    From fbset output (the same posted above) I guess hfp and hbp are left and right margins, vbp is upper margin, vfp is lower margin, hsw is horizontal sync length and vsw is vertical sync lenght.

    So which parameter do you suggest to edit?

    Thanks,

    Francesco

  • What are the original values for 800x480?

  • Sorry Renjith, I've mistakenly copied the settings leaving there the wrong resolution.

     Actually I've changed just the resolution, timings posted are the one intended for 800x480 resolution.

    Thanks,

    Francesco

     

     

  • Hi,

    Here is my setting :

    static void ili9341_lcdc_init(int evm_id, int profile)
    {
    setup_pin_mux(lcdc_pin_mux);

    if (conf_disp_pll(16000000)) {
    pr_info("Failed to set pixclock to 16000000, not attempting to"
    "register ILI9341 LCD\n");
    return;
    }
    if (am33xx_register_lcdc(&ILI9341_bone_lcd_cape_pdata))
    pr_info("Failed to register LCDC device\n");
    return;
    }

    /* ILITEK_ILI9341 */
    [10] = {
    .name = "ILI9341",
    .width = 240,
    .height = 320,
    .hfp = 10,
    .hbp = 20,
    .hsw = 10,
    .vfp = 4,
    .vbp = 2,
    .vsw = 2,
    .pxl_clk = 6350000,
    .invert_pxl_clk = 0,
    },

    The framebuffer works fine.

    But I met problem when trying to configure and build Android 4.2 for 320x240 resolution.

    Cannot display app luncher but displays only virtual buttons, battery icon and system time infomation.

    I've used adb to force open app setting but after 1 second app setting will disapear.

    Are there anyone who success with 320x240 resolution ?

    Thanks,

    Phuong Dang 

  • Hi Phuong,

    Did you resolve this issue ?
    I am having a big trouble with 320x240 LCD:



    Regards,
    Ran

  • Yes, we use software graphic renderer instead hardware, my MPU is AM3352