LCD colors look wrong. Android 4.3 with18-bit Parallel RGB on IMX6S.

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

LCD colors look wrong. Android 4.3 with18-bit Parallel RGB on IMX6S.

Jump to solution
7,810 Views
mukelarvin
Contributor IV

Photo 2014-07-14, 3 58 19 PM.jpg

I'm trying to get a HX8369A based lcd to display 18-bit parallel RGB. I've got it working but the colors look terrible. A lot of pixels just go to green like the color data is incorrect. I've tried a variety of timings but it doesn't help.


Does this seem like a timing issue? Is the software giving bad color data? Could my LCD be expecting color data in a slightly different format?

I'm using an IMX6S based RIoTboard which only has DISP_DAT0 - DISP0_DAT17 accessible on the header so I can't use 24 bits. Kernel 3.0.35, Android 4.3.

Boot Arguments:

setenv bootargs console=ttymxc1,115200 init=/init video=mxcfb0:dev=lcd,CLAA-WVGA@60,bpp=18,if=RGB666 video=mxcfb1:off fbmem=10M vmalloc=400M androidboot.console=ttymxc1 androidboot.hardware=freescale

Timing in mxc_lcdif.c:

static struct fb_videomode lcdif_modedb[] = {

  {

     "CLAA-WVGA", 60, 480, 800, KHZ2PICOS(25000), 5, 5, 2, 2, 5, 2,

     FB_SYNC_CLK_LAT_FALL,

     FB_VMODE_NONINTERLACED,

     0,

  },

//...

}

FB configuration in board-mx6solo_RIoTboard.c:

static struct fsl_mxc_lcd_platform_data lcdif_data = {

  .ipu_id = 0,

  .disp_id = 0,

  .default_ifmt = IPU_PIX_FMT_RGB666,

};

//...

static struct ipuv3_fb_platform_data RIoTboard_fb_data[] = {

  {

  .disp_dev = "lcd",

  .interface_pix_fmt = IPU_PIX_FMT_RGB666,

  .mode_str = "CLAA-WVGA",

  .default_bpp = 18,

  .int_clk = false,

  },

//...

}

Pin Muxing in board-mx6solo_RIoTboard.h:

/* DISPLAY */

  MX6DL_PAD_DI0_DISP_CLK__IPU1_DI0_DISP_CLK,

  MX6DL_PAD_DI0_PIN15__IPU1_DI0_PIN15, /* DE */

  MX6DL_PAD_DI0_PIN2__IPU1_DI0_PIN2, /* HSync */

  MX6DL_PAD_DI0_PIN3__IPU1_DI0_PIN3, /* VSync */

  //MX6DL_PAD_DI0_PIN4__IPU1_DI0_PIN4, /* Contrast not connected*/

  MX6DL_PAD_DISP0_DAT0__IPU1_DISP0_DAT_0,

  MX6DL_PAD_DISP0_DAT1__IPU1_DISP0_DAT_1,

  MX6DL_PAD_DISP0_DAT2__IPU1_DISP0_DAT_2,

  MX6DL_PAD_DISP0_DAT3__IPU1_DISP0_DAT_3,

  MX6DL_PAD_DISP0_DAT4__IPU1_DISP0_DAT_4,

  MX6DL_PAD_DISP0_DAT5__IPU1_DISP0_DAT_5,

  MX6DL_PAD_DISP0_DAT6__IPU1_DISP0_DAT_6,

  MX6DL_PAD_DISP0_DAT7__IPU1_DISP0_DAT_7,

  MX6DL_PAD_DISP0_DAT8__IPU1_DISP0_DAT_8,

  MX6DL_PAD_DISP0_DAT9__IPU1_DISP0_DAT_9,

  MX6DL_PAD_DISP0_DAT10__IPU1_DISP0_DAT_10,

  MX6DL_PAD_DISP0_DAT11__IPU1_DISP0_DAT_11,

  MX6DL_PAD_DISP0_DAT12__IPU1_DISP0_DAT_12,

  MX6DL_PAD_DISP0_DAT13__IPU1_DISP0_DAT_13,

  MX6DL_PAD_DISP0_DAT14__IPU1_DISP0_DAT_14,

  MX6DL_PAD_DISP0_DAT15__IPU1_DISP0_DAT_15,

  MX6DL_PAD_DISP0_DAT16__IPU1_DISP0_DAT_16,

  MX6DL_PAD_DISP0_DAT17__IPU1_DISP0_DAT_17,

Does 18-bit color just look this bad?

Labels (3)
0 Kudos
1 Solution
3,120 Views
mukelarvin
Contributor IV

I think I've nearly got it!

SteveRathjen was correct about adding a 330 Ohm resistor inline with the CLK signal. That improved the image dramatically.

Photo 2014-07-28, 2 31 57 PM.jpg

Then using the patches louiskoziarz recommended as a guide I changed the CLK pin strength, I bumped the control type up to PAD_CTL_DSE_240ohm and have a nearly perfect image. Although there are still a few errant blue pixels.

Photo 2014-07-29, 9 47 05 AM.jpg

I have asked my coworker to add pads for inline resistors on all the display lines for the next version of our board. I'm sure that tuning those values and the pin strengths will help us get a perfect image.

Thanks to everyone for their help!

View solution in original post

0 Kudos
21 Replies
99 Views
Ahmet_Cihan_AKINCA
Contributor III

I have same problem with my custom imx7d based board. I've been trying to solve this color problem for two weeks. How did you solve this problem?

0 Kudos