T113开发平台mipi 5.5寸屏调试
  t5NtRixbu4xu 2023年11月02日 55 0

T113平台5.5寸1080x1920mipi屏调试指导

调试MIPI屏主要步骤如下:

1.根据屏规格书,配置MIPI屏参数。

2.基于平台中默认的MIPI LCD驱动自行修改驱动。

3.Mipi 屏驱动主要修改两点:

3.1、根据屏规格书的上电时序,配置驱动里面上电时序。

3.2、根据MIPI厂家提供的寄存器配置,来配置驱动中的屏的寄存器值。

下面以5.5寸mipi屏调试为示例进行讲解。

第一步:屏参配置

屏驱动和屏参配置以uboot为例,内核可参考uboot配置即可。

修改uboot-bord.dts配置,路径如下

t113-s3_linux-sdk-v1.1/brandy/brandy-2.0/u-boot-2018/arch/arm/dts

可以参考屏规格书timings部分,由于该规格参数不全,所以下面直接列出配好的参数

&lcd0 {

 lcd_used = <1>;

 lcd_driver_name = "tft720x1280";

 lcd_if = <4>; /* 2:ttl; 3:lvds; 4:dsi */

 lcd_x = <1080>;

 lcd_y = <1920>;

 lcd_width = <68>;

 lcd_height = <120>;

 lcd_dclk_freq = <151>;

 lcd_hbp = <100>;

 lcd_ht = <1210>;

 lcd_hspw = <10>;

 lcd_vbp = <34>;

 lcd_vt = <1976>;

 lcd_vspw = <8>;

 lcd_dsi_lane = <4>;

 lcd_dsi_if = <0>;

 lcd_dsi_format = <0>;

 lcd_dsi_te = <0>;

 lcd_frm = <0>;

 lcd_io_phase = <0>;

 lcd_gamma_en = <0>;

 lcd_bright_curve_en = <0>;

 lcd_cmap_en = <0>;

 lcd_pwm_used = <1>;

 lcd_pwm_ch = <7>;

 lcd_pwm_freq = <25000>;

 lcd_pwm_pol = <1>;

 lcd_pwm_max_limit = <255>;

 lcd_backlight = <220>;

 deu_mode = <0>;

 lcdgamma4iep = <22>;

 smart_color = <90>;

 lcd_reset = <&pio PD 16 GPIO_ACTIVE_HIGH>;

 pinctrl-0 = <&dsi4lane_pins_a>;

 pinctrl-1 = <&dsi4lane_pins_b>;

};

解析参数含义如下

lcd_used:是否使用LCD:0表示不使用;1表示使用

lcd_driver_name:LCD驱动名,只能是brandy/brandy-2.0/u-boot-2018/drivers/video/sunxi/disp2/disp/lcd/panel.c的panel_array数组中名称

lcd_if:是LCD接口类型:2:ttl; 3:lvds; 4:dsi,ttl是RGB接口

lcd_x:是LCD分辨率的X轴的值

lcd_y:是LCD分辨率的Y轴的值

lcd_width:是LCD像素点的物理宽度,单位:mm,用于计算dpi

lcd_height:是LCD像素点的物理高度,单位:mm,用于计算dpi

lcd_dclk_freq:是LCD主时钟,单位:MHz。fps=(lcd_dclk_freq*1000*1000)/(ht*vt)即:lcd_dclk_freq=lcd_ht*lcd_vt*fps;fps一般是60(刷新率)。

lcd_hbp:是有效行间,指行同步信号hsync开始到有效数据间的dclk的cyccle个数,包含行同步信号区;即lcd_hbp等于实际hbp+实际hspw

lcd_ht:是DCLK的cycle个数,等于lcd_x+lcd_hspw+lcd_hbp+lcd_hfp;驱动会自动根据这个值计算lcd_hfp

lcd_hspw:是行同步信号的宽度。即1个data cycle的时间

lcd_vbp:是场同步信号sync开始到有效数据间的行数,包括场同步信号区;即lcd_vbp等于实际vbp+实际vspw

lcd_vt:是场的总行数,等于lcd_y+lcd_vspw+lcd_vbp+lcd_vfp;驱动会自动根据这个值计算lcd_vfp

lcd_vspw:是场同步信号的宽度

lcd_lvds_if:是LVDS通道数:0是单通道;1是双通道

lcd_lvds_colordepth:是LVDS位宽:0是8位;1是6位

lcd_lvds_mode:是LVDS模式:0是NS模式;1是JEIDA模式

lcd_frm:是LCD的色深,0是RGB888;1是RGB666;2是RGB565

lcd_gamma_en:是伽马参数:0是关闭;1是开启;设置1后需要对屏驱动中的lcd_gamma_tbl[256]赋值

lcd_cmap_en:是色彩映射功能:0是关闭;1是开启;设置1后需要对lcd_cmap_tbl[2][3][4]进行赋值

lcd_rb_swap:是调换tcon模块RGB中的R分量和B分量:0是不变;1是对调

lcd_dsi_lane:是mipi-DSI的lane通道数:1、2、3、4

lcd_dsi_if:是mipi-DSI的类型:0是video mode(即:实时刷屏);1是command mode(即:屏幕有个te引脚)

lcd_dsi_format:是mipi-DSI的数据格式:0是24bit RGB;1是loosely的18bit RGB;2是18bit RGB;3是16bit RGB

lcd_dsi_te:是mipi-DSI的刷屏间隔:0的刷屏间隔是lcd_ht*lcd_vt;1或2的刷屏间隔是2个te脉冲;0是自动;1是上升沿;2是下降沿

lcd_dsi_port_num:是mipi-DSI的接口数:0是1个接口;1是2个接口

lcd_tcon_mode:是mipi-DSI的tcon模式:0是通用模式;1是tcon主模式(第一次发送数据同步);2是tcon主模式(每帧都同步);3是tcon从模式;4是1个tcon驱动2个DSI(即8条lane)

lcd_pwm_used:是否使用背光:0表示不使用;1表示使用

lcd_pwm_ch:背光的PWM通道号,请根据实际硬件填写

lcd_pwm_freq:背光的PWM频率,单位:Hz

lcd_pwm_pol:背光PWM的占空比极性:0表示高有效;1表示低有效

lcd_pwm_max_limit:背光PWM的亮度最高值,比如设置为150,即将0~255的分为线性映射到0~150

lcd_backlight:背光默认值

因为是MIPI屏,因此下面几个参数需要特别注意配置

cd_driver_name = tft720x1280""; //这个需要跟实际驱动名字匹配上即可

lcd_if = <4>; //lcd类型,mipi屏配置4,lvds配置3

lcd_dsi_lane = <4>; //mipi屏lane 数量,根据规格来填写即可,这个地方如果不对,屏幕点不亮

lcd_dsi_if = <0>;

lcd_dsi_format = <0>;

lcd_dsi_te = <0>;       

T113开发平台mipi 5.5寸屏调试_引脚

该LCD屏具有4pair data,像素格式RGB888,因此

lcd_dsi_lane = <4>;

lcd_dsi_if = <0>;

LCD引脚配置只需要根据原理图连接配置对应引脚即可       

T113开发平台mipi 5.5寸屏调试_ide_02

引脚用了PD0-PD9。

复位脚为PD16 //该配置很重要,如果不对屏点不亮

lcd_reset = <&pio PD 16 GPIO_ACTIVE_HIGH>;

1.驱动调试

LCD屏的驱动路径如下

t113-s3_linux-sdk-v1.1/brandy/brandy-2.0/u-boot-2018/drivers/video/sunxi/disp2/disp/lcd         

T113开发平台mipi 5.5寸屏调试_引脚_03

以tft720x1280.c驱动为基础来调试。        

T113开发平台mipi 5.5寸屏调试_ide_04

添加上一部分需求我们需要在lcd_source.c中添加该函数的定义        

T113开发平台mipi 5.5寸屏调试_sed_05

在lcd_source.h中添加函数定义。         

T113开发平台mipi 5.5寸屏调试_引脚_06

添加成功后确保编译通过后可以在tft720x1280.c中添加屏初始化驱动,这部分一般屏厂会给,我们需要将这些参数按照我们的驱动格式写进去即可         

T113开发平台mipi 5.5寸屏调试_引脚_07

添加成功后编译镜像即可测试屏是否正常。

调试过程遇到问题汇总

硬件问题

由于转接板接触不是很好,在调试过程中会因为接触不好导致屏一直点不亮,所以在调试过程中需要确保转接板和接屏的线是好的在继续调。

软件问题

1、屏驱动初始化参数,由于屏厂家给的参数不对,导致后面屏的颜色发生了变化,后面把0xCC这个寄存器的值由0x08改成0x0A就解决了这个问题

2、设备树中的屏参数,由于该屏的规格书中屏参不齐,需要自己花了点时间去验证参数是否合理。


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
t5NtRixbu4xu