l?i.MX8MM?顯示結(jié)構(gòu)
imx8m mini的顯示只有1個MIPI_DSI接口,顯示接口的結(jié)構(gòu)如下:
l??顯示參數(shù)調(diào)節(jié)
我們在調(diào)試顯示的時候,需要初始化LCDif和MIPI_DSI,?uboot中驅(qū)動程序已經(jīng)提供了完整的驅(qū)動程序,我們只需要設(shè)置環(huán)境變量panel,驅(qū)動按照panel的值匹配顯示設(shè)備列表內(nèi)顯示設(shè)備的名稱,選擇當(dāng)前設(shè)備顯示。如設(shè)定panel的值為“MIPI7”,就會在顯示列表內(nèi)找到名稱為“MIPI7”的顯示設(shè)備,按照該設(shè)備初始化相關(guān)的設(shè)備。該設(shè)備是我們默認(rèn)支持的7寸mipi顯示屏,可以從下圖看到設(shè)備的名字和詳細(xì)的顯示參數(shù)。
如果用戶需要添加自己的顯示屏,只需要按照屏的手冊額外添加一組顯示參數(shù),設(shè)置panel,指定使用所添加的參數(shù)即可。(注:此方法只針對不需要額外初始化的mipi屏)
但是由于我們的uboot不開源,用戶無法修改源碼,也就自行添加一組顯示參數(shù)。針對這種情況,我們提供了一種解決方法。我們提供了一組參數(shù),用戶選定這組參數(shù)后,可以通過修改環(huán)境變量的方法來修改這組參數(shù)內(nèi)顯示參數(shù)。
這組用來顯示mipi屏的顯示參數(shù)的名字是“MIPI_CUSTOM”,只要將panel設(shè)置為“MIPI_CUSTOM”,就會選定這組參數(shù),下圖是這組參數(shù)的默認(rèn)值。
如何修改這組參數(shù)呢?默認(rèn)是無法修改這組參數(shù)的,我們通過做了額外的工作,在檢測到使用的panel的名稱為 “MIPI_CUSTOM” 時做了特殊處理,如果檢測到環(huán)境變量custom_video_mode的值不為空,則解析custom_video_mode,將其內(nèi)包含的顯示參數(shù)替換默認(rèn)的顯示參數(shù)。
判斷是否是自定義參數(shù)
自定義參數(shù)替換默認(rèn)參數(shù)
l??實際測試
我們實際演示下如何使用,首先在啟動開發(fā)板,在uboot按下空格鍵進(jìn)入uboot菜單,按1,退出菜單進(jìn)入命令模式
然后,我們在輸入命令設(shè)置panel值為MIPI_CUSTOM, 設(shè)置custom_video_mode值使refresh,xres,yres,pixclock,left_margin,right_margin,upper_margin,lower_margin,hsync_len,vsync_len等值設(shè)置為我們想要的值,例如我們有一塊800x1280的顯示屏,要將參數(shù)設(shè)置為refresh=60,xres=800,yres=1280,pixclock=20000,left_margin=32,right_margin=20,upper_margin=8,lower_margin=4,hsync_len=40,vsync_len=1(注:時鐘為時間值,單位是皮秒,10的12次方除以此值就是頻率值)
那么需要輸入命令以下命令
設(shè)置panel值為MIPI_CUSTOM
setenv ??panel MIPI_CUSTOM
設(shè)置自定義參數(shù)
setenv ??custom_video_mode refresh=60,xres=800,yres=1280,pixclock=20000,left_margin=32,right_margin=20,upper_margin=8,lower_margin=4,hsync_len=40,vsync_len=1
保存環(huán)境變量
saveenv
重啟后顯示參數(shù)生效。
我們還可以用這種方法快速測試我們的顯示參數(shù)是否準(zhǔn)確,因為這樣測試非??焖?,只需要在uboot設(shè)置環(huán)境變量即可,不需要修改代碼和燒寫。
l??批量燒寫
在我們測試顯示正常后,我們還可以通過追加uboot環(huán)境變量的方式,將我們測試好的環(huán)境變量,在TF卡燒寫的時候直接燒寫到存儲介質(zhì)中,燒寫完成啟動就是我們想要的顯示結(jié)果。
追加uboot環(huán)境變量的方法:
在電腦上創(chuàng)建一個文件,文件名env.ini。該文件的每一行是一個環(huán)境變量,?格式是:?環(huán)境變量的名字=環(huán)境變量的值。
將我們在上面操作步驟確認(rèn)的環(huán)境變量添加到env.ini,每個環(huán)境變量一行,按照格式添加如:在第一行添加panel =MIPI_CUSTOM,第二行添加custom_video_mode= refresh=60,xres=800,yres=1280,pixclock=20000,left_margin=32,right_margin=20,upper_margin=8,lower_margin=4,hsync_len=40,vsync_len=1
將修改好的env.ini放入到制作好的TF卡(TF卡制作過程參考用戶手冊),使用次TF卡燒寫即可。燒寫完成后重啟,檢驗環(huán)境變量是否已經(jīng)追加到存儲中,顯示是否正常。
fqj
評論
查看更多