T113平臺5.5寸1080x1920mipi屏調試指導
調試MIPI屏主要步驟如下:
1.
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>;
該LCD屏具有4pair data,像素格式RGB888,因此lcd_dsi_lane = <4>;lcd_dsi_if = <0>;LCD引腳配置只需要根據原理圖連接配置對應引腳即可
引腳用了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
以tft720x1280.c驅動為基礎來調試。
添加上一部分需求我們需要在lcd_source.c中添加該函數的定義
在lcd_source.h中添加函數定義。
添加成功后確保編譯通過后可以在tft720x1280.c中添加屏初始化驅動,這部分一般屏廠會給,我們需要將這些參數按照我們的驅動格式寫進去即可
添加成功后編譯鏡像即可測試屏是否正常。
調試過程遇到問題匯總
硬件問題
由于轉接板接觸不是很好,在調試過程中會因為接觸不好導致屏一直點不亮,所以在調試過程中需要確保轉接板和接屏的線是好的在繼續調。
軟件問題
1、屏驅動初始化參數,由于屏廠家給的參數不對,導致后面屏的顏色發生了變化,后面把0xCC這個寄存器的值由0x08改成0x0A就解決了這個問題2、設備樹中的屏參數,由于該屏的規格書中屏參不齊,需要自己花了點時間去驗證參數是否合理。
-
驅動
+關注
關注
12文章
1787瀏覽量
84894 -
信號
+關注
關注
11文章
2739瀏覽量
76166 -
調試
+關注
關注
7文章
551瀏覽量
33759 -
全志T113
+關注
關注
0文章
44瀏覽量
177
發布評論請先 登錄
相關推薦
評論