Dsi(mipi)接口的lcd显示屏调试之Android 9

Chinese, Simplified

1. 概述

 lcd 显示屏有多种接口方式,dsi(mipi)是最常见的一种。Dsi lcd显示屏调试一般分时序设置及寄存器参数设置两部分。(固件版本需升级至v1.21c或之后,固件版本号在“设置”->"关于手机"页面的最后一行可以查到

2. 调试步骤

2.1 检查硬件电路。

确保开机后屏的背光能正常显示,供电电压及复位信号正常。如果是evb6开发板,请短接开发板上部调试插座右数第二个孔的scl到地,避免系统进入hdmi屏模式。

2.2 DSI 时序参数设置

dsi时序参数通过修改下面系统属性实现,参数的具体值要参考屏幕的规格书(具体命令例子请参考2.6):

persist.lcd.w : 屏的宽,单位像素.

persist.lcd.h  : 屏的高,单位像素x高即是屏的分辨率(屏分横屏和竖屏,前者宽大于高,后者反之)

persist.lcd.hsa:行同步

persist.lcd.hfp:行front porch

persist.lcd.hbp:行back porch

persist.lcd.vsa场同步宽

persist.lcd.vfpfront porch

persist.lcd.vbpback porch

persist.lcd.dsi.lane.num  :  mipi lane的数量,取1-4,默4.

persist.disp.reinit1

persist.lcd.dsi.eotp.dis:  该参数大部分屏不需要设,少数屏需设为0. 默认是1

如果当前屏分辨率和默分辨率不一致,上述属性修改后需重启一次设备 重启后运行adb shell wm size 分辨率是否正确。上述参数的需根据屏的置。

强调一下,整个调试过程中,只有发现分辨率跟实际不一样的时候,才需要重启系统,当然,增加重启次数也不会有问题。

 

2.3 屏的寄存器参数设置

寄存器的值一般要参考厂家提供的屏幕初始化参数,按照下面的格式过命令文件形式保存到设备,下面是参考例子:

lcd_cmd.cfg.zip


文件每一行代表一条命令,命令格式:命令名+参数(1个或多个),主要命令定如下,

LCD_MIPI_WR_CMD  Reg  Data1 Data2

》寄存器写命令,Reg16,代表寄存器首地址,data1,data2..对应待写入寄存器的数据,16

LCD_MIPI_RD_CMD  Reg  Count

》寄存器命令,Reg16制,代表寄存器首地址,Count10制,表示读的字节. 该命令尽量少用,如果用,最好只读1~2个寄存器。调试过程中如果屏没有任何显示可以加该命令协助定位问题,一个寄存器都读不到请重点排查硬件。

LCD_DELAY_CMD    Time

》延命令,Time位是毫秒,10

LCD_MIPI_RST_CMD  Level

》复位命令,Level表示复位脚电平,取0或1,10制。该命令一般不需要用。

注释,以英文#号开头

》参数文件第一行请添加注释,注明芯片型号和分辨率等,如:#ic:st7701,size:480x800


命令文件必lcd_cmd.cfg命名,可通adb push命令把文件拷设备/data/misc/,如:
adb  push  lcd_cmd.cfg   /data/misc/lcd_cmd.cfg

2.4 参数生效

时序参数或寄存器参数修改后,设置属性tml.hdmi.timing.up  1让参数马上生效,此时可观察屏的显示变化。命令如下:adb shell setprop tml.lcd.timing.up 1

2.5 状态查询

可以通过读取下面属性来了解当前参数的值

tml.lcd.paras      : 属性的值包含 lcd_w/lcd_h/lcd_hsa/lcd_hfp/mipi_lane等参数

tml.lcd.paras2      : 属性的值包含屏的其它参数,重点看cmd_cnt,该参数表示lcd_cmd.cfg的有效命令行数

tml.lcd.read.data  : 属性的值代表读命令的返回结果

tml.lcd.paras3      : 其它参数,一般不需要关注。

2.6 命令举例

adb shell setprop persist.lcd.w 800

adb shell setprop persist.lcd.h 1280

adb shell setprop persist.lcd.hsa 8

adb shell setprop persist.lcd.hfp 52

adb shell setprop persist.lcd.hbp 48

adb shell setprop persist.lcd.vsa 6

adb shell setprop persist.lcd.vfp 16

adb shell setprop persist.lcd.vbp 15

adb shell setprop persist.lcd.dsi.lane.num 4

adb push lcd_cmd.txt  /data/misc/lcd_cmd.cfg

adb shell setprop persist.disp.reinit 1

adb reboot

//如果已经显示正常,后续命令请忽略,否则继续调整参数

//确认分辨率是否正常

adb shell  wm  size

//… 调整参数

//参数生效:

adb shell setprop tml.lcd.timing.up 1

查看状态:

adb shell  getprop  tml.lcd.paras

adb shell  getprop  tml.lcd.paras2

//如果显示异常..再次调整

//参数生效:

adb shell setprop tml.lcd.timing.up 1

2.7 生成固件

调试OK后,后续批量生产,可以按下面步骤生成驱动固件:

2.7.1 准备参数文件:

设备连接电脑,先运行adb devices,确保设备识别,在电脑命令行终端运行 adb shell getprop > props.txt, 命令执行后会生成props.txt文件 ,然后把props.txt 和lcd_cmd.cfg 两个文件(名字不能变)放到一个文件夹如lcd, 然后压缩成lcd.zip。

2.7.2  参数文件压缩包上传服务器生成固件

点击下面网址:

https://www.temolin.com/webform/zai-xian-bootzi-dong-sheng-cheng

点击’GPIO配置文件’ 下面的第一个‘选择文件’按钮,把上一步骤的lcd.zip上传,然后在’接收boot文件邮件地址‘ 一栏下填写客户自己的邮箱地址,再点击提交,10分钟左右新固件会生成发到上述到邮箱。新固件刷机方法请参考:

https://www.temolin.com/doc/48/gu-jian-sheng-ji-gong-ju-shi-yong-zhi-nan


 

谢谢!

 


文档中心

以上内容是否对您有帮助?