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 LCD Display

Other Parts Discussed in Thread: TFP410, AM3505, AM3359

We have a custom LCD cape with a Beaglebone and Angstrom 3.2 branch.
The LCD display is shifted to the left, with the missing portion displayed on the right. I've tried all sorts of timing changes to "da8xx-fb.c" and "board-am335cevm.c" using numbers from Vesa Coordinated Timing spreadsheet and elsewhere but it doesn't seem to fix it, permanently. Sometimes its OK when I boot but when I reboot, its offset again.
How do I go about setting up the timing correctly? What is the reason for the offset?
Regards,
James
Here's what I've added to "da8xx-fb.c":-
[6] = {
.name = "AUO-G121XN01",
.width = 1024,
.height = 768,
.hfp = 24,  //48,     //80,  //15, //48,
.hbp = 60,  //80,     //80,  //15, //80,
.hsw = 136, //176, //32,  //160,     //160, //30,  //32,
.vfp = 3,   //3,     //9,  //3,
.vbp = 29,  //15,     //9,  //15,
.vsw = 6,   //4,   //22,     //20,   //4,
.pxl_clk = 65000000,
.invert_pxl_clk = 0,
},
and this to "board-am335cevm.c":-
// we are being stupid and setting pixclock from here instead of da8xx-fb.c
if (conf_disp_pll(130000000)) {
pr_info("Failed to set pixclock to 130000000, not attempting to"
"register LCD cape\n");
}
  • JS,

    I'm not familiar with the linux driver but are you checking for errors? Specifically the sync error interrupt? I could see a scenario where you get a sync error that doesn't get handled and causes the LCD to appear to have the whole frame shifted with the excess wrapping around to the other side. 

    Regards,

    Tyler

  • Tyler,

    I do not check for interrupts. I'm using the standard driver that came with the system, I don't know if that's checking for sync errors.

    How do I deal with that?

    James

  • Hi,

    we're also experimenting many troubles to make work the LCD controller correctly using the Arago distro. I would suggest to you to decrease pxl_clk. I'm not sure if the driver is working right or not and what limitations have the AM33x LCD controller but this is what we configure and what we really get (measured with the scope):

    50Mhz ==>> 50Mhz

    60Mhz ==>> 75Mhz

    65Mhz ==>> 100Mhz

    It seems like if the resolution of the PLL of the LCD clock would have only 2 or 3 bits.

    We could configure 1280x720@60hz at 75Mhz but the image is duplicated in 2 upper quadrants (resized by the monitor) in 16bpp mode. It would be great if someone of TI would publish the timings used for the max. resolution of the BBB that is currently working.

    By the way I would like to ask a couple of doubts:

    1. What is the max resolution at 24pp?. In our case (custom board with TFP410) FB driver crashes beyond 800x480: "Error opening /dev/fb0: No such file or directory".

    2. We see that the LCD stops working (16bpp) after few minutes (the clock dissapears). Is there any WDT waiting for a touch in the screen or a mouse movement etc.? (we don't have these devices installed).

    Best regards,

    Manuel

  • Hello Manuel,

    My pixel clock seems to match my software setting i.e. in the files its 65MHz and on the scope its 65MHz. I did notice that the board file needs to be set at double the pixel clock frequency (found by trial and error).

    Regarding your point #2 above, I have noticed the same thing and using the touchscreen does not seem to wake it up. However, running an application from a terminal does wake it up.

    Regards,

    James

  • Hi James,

    thanks for your advices. The second one is already tested. Regarding to the clock frequency I need to put "pxl_clk=60000000" and "config_disp_pll(300000000) in order to get 75Mhz. Unfortunately your method seems to don't work for us. May be it deals with our OP freq (720Mhz) or something like that. I hope someone can clarify what is the right way to configure the LCD clock.

    On the other hand I've solved the previous issues (nice day today :-)).

    1. The duplicated image on the screen in 16bpp mode was due I forgot to modify the "disp_panel" struct. With 16(min_bpp) and 32(max_bpp) the 16bpp image is drawn right (well... I lie: wrong colours because our hardware is configured for 24bpp). However I've found that is necessary that min_bpp be equal to 32 in 32bit mode (24bpp is the same). No idea why.

    2. The LCD mode also works at 24bpp at higher resolutions. I found the solution here:

    http://e2e.ti.com/support/arm/sitara_arm/f/791/t/189862.aspx

    It takes a while to recompile all the kernel but worth :-).

    James. Try the above mentioned and also try this timings that are working for us (change the freq to 75Mhz that in your case does work right):

    .width = 1280,
    .height = 720,
    .hfp = 72,
    .hbp = 216,
    .hsw = 80,
    .vfp = 3,
    .vbp = 22,
    .vsw = 5,
    .pxl_clk = 60000000,
    .invert_pxl_clk = 0,

    Best regards,
    Manuel.

  • hi, Manuel

    I try to use AM3359 to relaize 19200x1080x60, but the show is at the top and left side of LCD monitor screen, almost 50% not show. For 1024x768x60, it is correct.  From your above the information, seems that you realize same function. If you did 19200x1080x60 using Am3505, could you please share the information to me?

     

    Best regards

    Kent

  • Hi Kent,

    it is not possible to configure AM335x at 1920x1080@60. Reason is because max. lcd frequency is 126Mhz and for that resolution you need at least 150mhz. As far as I know max. standard resolution is 1366x768@60 or 1280x800@60. It might be possible to configure 1920x1080@30 but I'm not sure if Linux is going to allow you that configuration as well as your monitor would work or not.

    I hope this will be helpful. Best regards,

    Manuel.