ARM-A7开发板适配京东方10.4寸液晶屏
介绍
最近项目又添加了一块国产的ARM-A7开发板,具体型号就不说了。开发板配套的嵌入式Linux系统的LVDS驱动参数和我们使用的液晶屏不匹配,这里记录一下匹配过程。我们使用的屏幕也是国产的京东方BA104S01-300。这是一块分辨率800*600的工业液晶模组。具体参数如下:
适配
根据型号下载液晶面板的手册。打开DTS设备树文件,找到disp显示描述部分,如下图:
这里将fb0的宽和高改为屏幕分辨率800*600。
再找到lcd0的描述部分,进行修改如下图:
lcd_x和lcd_y是屏幕分辨率,lcd_width和lcd_height是屏幕的物理尺寸的宽和高,单位是毫米,根据手册这里是211(mm)*158(mm)。lcd_dclk_freq为串行时钟输入频率,计算公式如下:fps=(lcd_dclk_freq﹡1024﹡1024) / (ht﹡vt)
fps是屏幕刷新率为60Hz,ht即lcd_ht参数,为屏幕行周期,vt即lcd_vt参数为屏幕的列周期。
根据手册上的参数计算出lcd_dclk_freq=37.9(MHz),取整为38。
其中
lcd_ht的计算公式为:lcd_ht = lcd_x + lcd_hspw + lcd_hbp + lcd_hfp
lcd_vt的计算公式为:lcd_vt = lcd_y + lcd_vspw + lcd_vbp + lcd_vfp
根据手册提供的参数lcd_ht=1056,lcd_hbp=88,lcd_hfp=40,可以计算出lcd_hspw=128。
根据手册提供的参数lcd_vt=628,lcd_vbp=23,lcd_vfp=1,可以计算出lcd_vspw=4。
最后由于我们做的LVDS信号线的第四根:色彩深度选择线(6位/8位),这根线是浮空状态代表6位,故lcd_lvds_colordepath=1。
如此参数修改完毕。还要注意DTS设备树文件有两个,一个是Linux内核的设备树文件,一个是Uboot的设备树文件。两个文件都要修改。修改后重新编译,打包,重新刷开发板。屏幕点亮成功!