T113平臺5.5寸1080x1920mipi屏調(diào)試指導(dǎo)
調(diào)試MIPI屏主要步驟如下:
1.
根據(jù)屏規(guī)格書,配置MIPI屏參數(shù)。
2.
基于平臺中默認(rèn)的MIPI LCD驅(qū)動自行修改驅(qū)動。
3.
Mipi 屏驅(qū)動主要修改兩點(diǎn):
3.1、根據(jù)屏規(guī)格書的上電時(shí)序,配置驅(qū)動里面上電時(shí)序。
3.2、根據(jù)MIPI廠家提供的寄存器配置,來配置驅(qū)動中的屏的寄存器值。
下面以5.5寸mipi屏調(diào)試為示例進(jìn)行講解。
第一步:屏參配置
屏驅(qū)動和屏參配置以uboot為例,內(nèi)核可參考uboot配置即可。
修改uboot-bord.dts配置,路徑如下t113-s3_linux-sdk-v1.1/brandy/brandy-2.0/u-boot-2018/arch/arm/dts
可以參考屏規(guī)格書timings部分,由于該規(guī)格參數(shù)不全,所以下面直接列出配好的參數(shù)
&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>;
};
解析參數(shù)含義如下lcd_used:是否使用LCD:0表示不使用;1表示使用
lcd_driver_name:LCD驅(qū)動名,只能是brandy/brandy-2.0/u-boot-2018/drivers/video/sunxi/disp2/disp/lcd/panel.c的panel_array數(shù)組中名稱
lcd_if:是LCD接口類型:2:ttl; 3:lvds; 4:dsi,ttl是RGB接口
lcd_x:是LCD分辨率的X軸的值
lcd_y:是LCD分辨率的Y軸的值
lcd_width:是LCD像素點(diǎn)的物理寬度,單位:mm,用于計(jì)算dpi
lcd_height:是LCD像素點(diǎn)的物理高度,單位:mm,用于計(jì)算dpi
lcd_dclk_freq:是LCD主時(shí)鐘,單位:MHz。fps=(lcd_dclk_freq*1000*1000)/(ht*vt)即:lcd_dclk_freq=lcd_ht*lcd_vt*fps;fps一般是60(刷新率)。
lcd_hbp:是有效行間,指行同步信號hsync開始到有效數(shù)據(jù)間的dclk的cyccle個(gè)數(shù),包含行同步信號區(qū);即lcd_hbp等于實(shí)際hbp+實(shí)際hspw
lcd_ht:是DCLK的cycle個(gè)數(shù),等于lcd_x+lcd_hspw+lcd_hbp+lcd_hfp;驅(qū)動會自動根據(jù)這個(gè)值計(jì)算lcd_hfp
lcd_hspw:是行同步信號的寬度。即1個(gè)data cycle的時(shí)間
lcd_vbp:是場同步信號sync開始到有效數(shù)據(jù)間的行數(shù),包括場同步信號區(qū);即lcd_vbp等于實(shí)際vbp+實(shí)際vspw
lcd_vt:是場的總行數(shù),等于lcd_y+lcd_vspw+lcd_vbp+lcd_vfp;驅(qū)動會自動根據(jù)這個(gè)值計(jì)算lcd_vfp
lcd_vspw:是場同步信號的寬度
lcd_lvds_if:是LVDS通道數(shù):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:是伽馬參數(shù):0是關(guān)閉;1是開啟;設(shè)置1后需要對屏驅(qū)動中的lcd_gamma_tbl[256]賦值
lcd_cmap_en:是色彩映射功能:0是關(guān)閉;1是開啟;設(shè)置1后需要對lcd_cmap_tbl[2][3][4]進(jìn)行賦值
lcd_rb_swap:是調(diào)換tcon模塊RGB中的R分量和B分量:0是不變;1是對調(diào)
lcd_dsi_lane:是mipi-DSI的lane通道數(shù):1、2、3、4
lcd_dsi_if:是mipi-DSI的類型:0是video mode(即:實(shí)時(shí)刷屏);1是command mode(即:屏幕有個(gè)te引腳)
lcd_dsi_format:是mipi-DSI的數(shù)據(jù)格式: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個(gè)te脈沖;0是自動;1是上升沿;2是下降沿lcd_dsi_port_num:是mipi-DSI的接口數(shù):0是1個(gè)接口;1是2個(gè)接口
lcd_tcon_mode:是mipi-DSI的tcon模式:0是通用模式;1是tcon主模式(第一次發(fā)送數(shù)據(jù)同步);2是tcon主模式(每幀都同步);3是tcon從模式;4是1個(gè)tcon驅(qū)動2個(gè)DSI(即8條lane)
lcd_pwm_used:是否使用背光:0表示不使用;1表示使用
lcd_pwm_ch:背光的PWM通道號,請根據(jù)實(shí)際硬件填寫
lcd_pwm_freq:背光的PWM頻率,單位:Hz
lcd_pwm_pol:背光PWM的占空比極性:0表示高有效;1表示低有效
lcd_pwm_max_limit:背光PWM的亮度最高值,比如設(shè)置為150,即將0~255的分為線性映射到0~150
lcd_backlight:背光默認(rèn)值
因?yàn)槭荕IPI屏,因此下面幾個(gè)參數(shù)需要特別注意配置cd_driver_name = tft720x1280"";
//這個(gè)需要跟實(shí)際驅(qū)動名字匹配上即可
lcd_if = <4>;
//lcd類型,mipi屏配置4,lvds配置3
lcd_dsi_lane = <4>;
//mipi屏lane 數(shù)量,根據(jù)規(guī)格來填寫即可,這個(gè)地方如果不對,屏幕點(diǎn)不亮
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引腳配置只需要根據(jù)原理圖連接配置對應(yīng)引腳即可
引腳用了PD0-PD9。復(fù)位腳為PD16
//該配置很重要,如果不對屏點(diǎn)不亮
。lcd_reset = <&pio PD 16 GPIO_ACTIVE_HIGH>;
1.
驅(qū)動調(diào)試LCD屏的驅(qū)動路徑如下t113-s3_linux-sdk-v1.1/brandy/brandy-2.0/u-boot-2018/drivers/video/sunxi/disp2/disp/lcd
以tft720x1280.c驅(qū)動為基礎(chǔ)來調(diào)試。
添加上一部分需求我們需要在lcd_source.c中添加該函數(shù)的定義
在lcd_source.h中添加函數(shù)定義。
添加成功后確保編譯通過后可以在tft720x1280.c中添加屏初始化驅(qū)動,這部分一般屏廠會給,我們需要將這些參數(shù)按照我們的驅(qū)動格式寫進(jìn)去即可
添加成功后編譯鏡像即可測試屏是否正常。
調(diào)試過程遇到問題匯總
硬件問題
由于轉(zhuǎn)接板接觸不是很好,在調(diào)試過程中會因?yàn)榻佑|不好導(dǎo)致屏一直點(diǎn)不亮,所以在調(diào)試過程中需要確保轉(zhuǎn)接板和接屏的線是好的在繼續(xù)調(diào)。
軟件問題
1、屏驅(qū)動初始化參數(shù),由于屏廠家給的參數(shù)不對,導(dǎo)致后面屏的顏色發(fā)生了變化,后面把0xCC這個(gè)寄存器的值由0x08改成0x0A就解決了這個(gè)問題2、設(shè)備樹中的屏參數(shù),由于該屏的規(guī)格書中屏參不齊,需要自己花了點(diǎn)時(shí)間去驗(yàn)證參數(shù)是否合理。
-
驅(qū)動
+關(guān)注
關(guān)注
12文章
1840瀏覽量
85291 -
信號
+關(guān)注
關(guān)注
11文章
2791瀏覽量
76763 -
調(diào)試
+關(guān)注
關(guān)注
7文章
578瀏覽量
33941 -
全志T113
+關(guān)注
關(guān)注
0文章
54瀏覽量
266
發(fā)布評論請先 登錄
相關(guān)推薦
評論