问题描述:最近在调试一个项目,遇到如标题所说的问题,特此来寻求下帮助。
1. 硬件连接情况就是imx6s的display0(LCD接口)接ADV7123芯片(VGA芯片)然后连接VGA接口--->LCD显示器(项目中的是800*600分辨率的lcd屏,为了调试问题,直接接到了电脑的液晶显示器上),但是最终出现的问题是一样的,本来想贴图的,但是用的ubuntu的系统,好像有点麻烦。。。就先描述下硬件吧,硬件的RGB都是8条线,所以采用了RGB24,bpp32的uboot参数。。。
2. 软件修改部分
A. BSP的板级文件修改如下:
static struct ipuv3_fb_platform_data sabr_fb_data[] = {
{ /*fb0*/
.disp_dev = "lcd",
.interface_pix_fmt = IPU_PIX_FMT_RGB24,
.mode_str = "VGA800X600X60", //我用的这个,下边的两个是为了测试不同的频率和bpp有没有什么影响
.default_bpp = 32,
.int_clk = false,
.late_init = false,
},
{
.disp_dev = "lcd",
.interface_pix_fmt = IPU_PIX_FMT_RGB24,
.mode_str = "VGA800X60X56",
.default_bpp = 24,
.int_clk = false,
.late_init = false,
},
{
.disp_dev = "lcd",
.interface_pix_fmt = IPU_PIX_FMT_RGB24,
.mode_str = "VGA1024X768X60",
.default_bpp = 24,
.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_RGB24, //我用这个
};
B. mxc_lcdif.c文件的修改如下:
static struct fb_videomode lcdif_modedb[] = {
{
/* 800x480 @ 57 Hz , pixel clk @ 27MHz */
"CLAA-WVGA", 57, 800, 480, 37037, 40, 60, 10, 10, 20, 10,
FB_SYNC_CLK_LAT_FALL,
FB_VMODE_NONINTERLACED,
0,},
{
/* 800x480 @ 60 Hz , pixel clk @ 32MHz */
"SEIKO-WVGA", 60, 800, 480, 29850, 89, 164, 10, 23, 10, 10,
FB_SYNC_CLK_LAT_FALL,
FB_VMODE_NONINTERLACED,
0,},
{
/* 800x480 @ 60 Hz , pixel clk @ 32MHz */
"AT070TN83", 60, 800, 480, 29850, 89, 164, 23, 10, 10, 10,
FB_SYNC_CLK_LAT_FALL,
FB_VMODE_NONINTERLACED,
0,},
{
"WXGAPLUS", 60, 1440, 900, 9392, 80, 232, 1, 28, 152, 3,
FB_SYNC_CLK_LAT_FALL,
FB_VMODE_NONINTERLACED,
0,},
{
/* 320x480 @ 60 Hz , pixel clk @ 32MHz */
"ILI9488_LCD35", 60, 320, 480, 49850, 96, 170, 1, 2, 4, 1,
FB_SYNC_CLK_LAT_FALL,
FB_VMODE_NONINTERLACED,
0,},
{
"VGA640X48060", 60, 640, 480, 39721, 16, 48, 10, 33, 96, 2,
FB_SYNC_CLK_LAT_FALL,
FB_VMODE_NONINTERLACED,
0,},
{
/*我用这个,其余的也都是为了测试,添加的项*/
"VGA800X600X60", 60, 800, 600, 25000, 88, 40, 23, 1, 128, 4,
FB_SYNC_CLK_LAT_FALL,
FB_VMODE_NONINTERLACED,
0,},
{
"VGA1024X768X60", 60, 1024, 768, 15385, 24, 160, 29, 3, 136, 6,
FB_SYNC_CLK_LAT_FALL,
FB_VMODE_NONINTERLACED,
0,},
{
"VGA768X576X60", 60, 768, 576, 28604, 24, 104, 1, 17, 80, 3,
FB_SYNC_CLK_LAT_FALL,
FB_VMODE_NONINTERLACED,
0,},
{
"VGA800X600X56", 56, 800, 600, 27778, 128, 24, 22, 1, 72, 2,
FB_SYNC_CLK_LAT_FALL,
FB_VMODE_NONINTERLACED,
0,},
{
"VGA800X600X63", 63, 800, 600, 25806, 88, 56, 8, 19, 32, 4,
FB_SYNC_CLK_LAT_FALL,
FB_VMODE_NONINTERLACED,
0,},
};
3. uboot的参数设置:
setenv bootargs 'console=ttymxc3,115200n8 ubi.mtd=3 root=ubi0:rootfs rootfstype=ubifs rootwait rw mtdparts=gpmi-nand:2m(boot)ro,6m(kernel)ro,16m(**),150m(rootfs),-(data) video=mxcfb0:lcd,VGA800X600X60,if=RGB24,bpp=32 fb0base=0x27b00000 fbmem=28M'
4. 关于VGA的时序设置,我是按照标准的VGA时序调整的。
修改已经描述完毕,现在出现的问题是图像质量很差劲,感觉像是丢掉了一些颜色似的,显示一个字,断断续续的,不连贯,所以看到的就是断断续续的一个字,很不清楚。。。找了好久,不知道哪里的问题额,请大家帮忙看看。。。。 |