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 = ; lcd_driver_name = tft720x1280; lcd_if = ; /* 2:ttl; 3:lvds; 4:dsi */ lcd_x = ; lcd_y = ; lcd_width = ; lcd_height = ; lcd_dclk_freq = ; lcd_hbp = ; lcd_ht = ; lcd_hspw = ; lcd_vbp = ; lcd_vt = ; lcd_vspw = ; lcd_dsi_lane = ; lcd_dsi_if = ; lcd_dsi_format = ; lcd_dsi_te = ; lcd_frm = ; lcd_io_phase = ; lcd_gamma_en = ; lcd_bright_curve_en = ; lcd_cmap_en = ; lcd_pwm_used = ; lcd_pwm_ch = ; lcd_pwm_freq = ; lcd_pwm_pol = ; lcd_pwm_max_limit = ; lcd_backlight = ; deu_mode = ; lcdgamma4iep = ; smart_color = ; lcd_reset = ; pinctrl-0 = ; pinctrl-1 = ;};
解析参数含义如下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,用于计算dpilcd_height:是lcd像素点的物理高度,单位:mm,用于计算dpilcd_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+实际hspwlcd_ht:是dclk的cycle个数,等于lcd_x+lcd_hspw+lcd_hbp+lcd_hfp;驱动会自动根据这个值计算lcd_hfplcd_hspw:是行同步信号的宽度。即1个data cycle的时间lcd_vbp:是场同步信号sync开始到有效数据间的行数,包括场同步信号区;即lcd_vbp等于实际vbp+实际vspwlcd_vt:是场的总行数,等于lcd_y+lcd_vspw+lcd_vbp+lcd_vfp;驱动会自动根据这个值计算lcd_vfplcd_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是rgb565lcd_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、4lcd_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 rgblcd_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频率,单位:hzlcd_pwm_pol:背光pwm的占空比极性:0表示高有效;1表示低有效lcd_pwm_max_limit:背光pwm的亮度最高值,比如设置为150,即将0~255的分为线性映射到0~150lcd_backlight:背光默认值
因为是mipi屏,因此下面几个参数需要特别注意配置cd_driver_name = tft720x1280;
//这个需要跟实际驱动名字匹配上即可
lcd_if = ;
//lcd类型,mipi屏配置4,lvds配置3
lcd_dsi_lane = ;
//mipi屏lane 数量,根据规格来填写即可,这个地方如果不对,屏幕点不亮
lcd_dsi_if = ;lcd_dsi_format = ;lcd_dsi_te = ;
该lcd屏具有4pair data,像素格式rgb888,因此lcd_dsi_lane = ;lcd_dsi_if = ;lcd引脚配置只需要根据原理图连接配置对应引脚即可
引脚用了pd0-pd9。复位脚为pd16
//该配置很重要,如果不对屏点不亮
。lcd_reset = ;
1.
驱动调试lcd屏的驱动路径如下t113-s3_linux-sdk-v1.1/brandy/brandy-2.0/u-boot-2018/drivers/video/sunxi/disp2/disp/lcd
以tft720x1280.c驱动为基础来调试。
添加上一部分需求我们需要在lcd_source.c中添加该函数的定义
在lcd_source.h中添加函数定义。
添加成功后确保编译通过后可以在tft720x1280.c中添加屏初始化驱动,这部分一般屏厂会给,我们需要将这些参数按照我们的驱动格式写进去即可
添加成功后编译镜像即可测试屏是否正常。
调试过程遇到问题汇总
硬件问题
由于转接板接触不是很好,在调试过程中会因为接触不好导致屏一直点不亮,所以在调试过程中需要确保转接板和接屏的线是好的在继续调。
软件问题
1、屏驱动初始化参数,由于屏厂家给的参数不对,导致后面屏的颜色发生了变化,后面把0xcc这个寄存器的值由0x08改成0x0a就解决了这个问题2、设备树中的屏参数,由于该屏的规格书中屏参不齐,需要自己花了点时间去验证参数是否合
怎么从电路板上拆卸多针脚电子元器件
将自定义IP内核添加到Vivado中
一文详解Verilog表达式
在设计IC时如何加入节能思想?
以太网链路层协议封装格式介绍
T113开发平台mipi 5.5寸屏调试
科普 | 什么是ChatGPT?试用ChatGPT,ChatGPT的启示!
基于GMSK差分解调仿真(1)
趣味科普:啥是5G,看完就明白了
机器人技术的发展:盘点十大惊掉人下巴的机器人黑科技!
滴滴联合比亚迪推出了首款定制网约车D1
小米6最新消息:没抢到小米6你是否后悔了呢?网友:很后悔!
人脸识别需要安全技术的加持才能实现弯道加速
特斯拉全新电池4680:能量密度与输出功率都有大幅提升
工信部发布了关于中国联通开展物联网等领域eSIM技术应用服务的批复
农业气象综合监测站
国产品牌5G手机抢先进入国际市场,中国5G手机也纷纷上市
2018“名人”世界末日,我们究竟最该悼念谁?
飞宏新推出的65W 2C1A USB PD适配器采用Transphorm的氮化镓技术
开发用于冷链维护的资产跟踪系统