hi all,
我现在使用i.mx6q的RGB接口来驱动3.1inch的LCD,18bit,通过spi初始化(这里使用GPIO模拟SPI)。所用系统为android4.3,Linux3.0.35..LCD控制ic为hx8369a。所用板子的RGB接口可以使用RGB转VGA转接板,连接到电脑显示器上显示,也就是此RGB接口是没有问题的。
现在初始化成功,能点亮LCD了。但是遇到几个问题:
1.图像为隔行显示的,而不是逐行
2.图像分成4部分
3.图像偏移
我修改代码如下:
1.board-mx6q_sabresd.c
static struct ipuv3_fb_platform_data sabresd_fb_data[] = {
{
.disp_dev = "lcd",
.interface_pix_fmt = IPU_PIX_FMT_RGB666,
.mode_str = "LCD-WVGA",
.default_bpp = 18,
.int_clk = false,
.late_init = false,
},
{
.disp_dev = "hdmi",
.interface_pix_fmt = IPU_PIX_FMT_RGB24,
.mode_str = "1920x1080M@60",
.default_bpp = 32,
.int_clk = false,
.late_init = false,
},
};
static struct fsl_mxc_lcd_platform_data lcdif_data = {
.ipu_id = 0,
.disp_id = 0,
.default_ifmt = IPU_PIX_FMT_RGB666,
};
2.mxc_lcdif.c
{ | |
"LCD-WVGA", 60, 480, 800, 33105, | |
30, 80, | |
4, 4, | |
10, 4, | |
0, | |
FB_VMODE_NONINTERLACED, | |
0,}, |
3.uboot启动参数使用:
setenv bootargs console=ttymxc0,115200 androidboot.console=ttymxc0 vmalloc=400M init=/init video=mxcfb0:dev=lcd,LCD-WVGA,if=RGB666,bpp=18 video=mxcfb1:off video=mxcfb2:off video=mxcfb3:off fbmem=40M an@@@@ !droidboot.hardware=freescale
4.LCD SPI初始化代码tl032wvv02_gpio.c
LCD初始化代码部分已经和LCD厂家,控制ic厂家进行联合调试,调整初始化LCD寄存器对显示效果基本没有影响,怎么调还是上面的显示效果。
然后调整mxc_lcdif.c中的lcd参数,不管怎么调整,图像显示效果都是隔行显示的,不能出现逐行显示的效果。
然后调整hfp hbp这两个参数,除了上面红字部分的,如果改成其他,不管参数增加还是减小,图像会分成更加多块,或者倾斜混乱了,完全没有改善一点的迹象。
LCD原理图,规格书,datasheet和相关代码文件在下面附近中。
LCD的电路已经多次确认是好的,信号也是正确的。
请帮忙分析以上问题,给出建议或者思路!
谢谢
Original Attachment has been moved to: tl032wvv02_gpio.c.zip
Original Attachment has been moved to: mxc_lcdif.c.zip
Hi wilson,
Here you can go to check up the screen parameter refer to its datasheet. Some parameter maybe not right. You can refer to the thread in our community made by our engineerPorting LVDS LCD With Low Resolution to i.MX6
Have a great day,
Dan
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Mark Correct button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Porting LVDS LCD With Low Resolution to i.MX6 这个只是说明如何使用低分辨率屏的修改方法。
我所用的屏的分辨率为480*800,时钟符合代码默认的代码支持的。
我的问题是:
怎么解决interlaced显示,都已经设置为逐行输出了
怎么解决屏幕图像分成4份显示。
SPI初始化LCD寄存器关于屏幕参数的已经修改过很多了,但是对屏的显示还是没影响。mxc_lcdif.c的文件里面,hfp hbp hsync这些也进行了很多尝试,但是并没有改善,最好的情况就是上面图片显示的效果。
hi wang,
现在通过分析LCD波形,根据LCD datasheet的时序说明,需要对DE脚进行控制。但是我在linux3.0.35内核源码里面并没有找到怎么修改RGB LCD输出为DE mode的相关代码
Hi wilson,
try below:
uboot启动参数使用:
setenv bootargs console=ttymxc0,115200 androidboot.console=ttymxc0 vmalloc=400M init=/init video=mxcfb0:dev=lcd,LCD-WVGA,if=RGB666,bpp=16 video=mxcfb1:off video=mxcfb2:off video=mxcfb3:off fbmem=40M an@@@@ !droidboot.hardware=freescale
{
.disp_dev = "lcd",
.interface_pix_fmt = IPU_PIX_FMT_RGB666,
.mode_str = "LCD-WVGA",
.default_bpp = 16,
.int_clk = false,
.late_init = false,
},