LVDS接口分类与数据格式
轉(zhuǎn)發(fā)路徑:https://blog.csdn.net/a617996505/article/details/82386952
1.LVDS接口分類與數(shù)據(jù)格式
單路6it LVDS
這種接口電路中,采用單路方式傳輸,每個(gè)基色信號(hào)采用6位數(shù)據(jù),共18位RGB數(shù)據(jù),因此,也稱18位或18bit LVDS接口。此,也稱18位或18bit LVDS接口。
?
雙路6bit LVDS
這種接口電路中,采用雙路方式傳輸,每個(gè)基色信號(hào)采用6位數(shù)據(jù),其中奇路數(shù)據(jù)為18位,偶路數(shù)據(jù)為18位,共36位RGB數(shù)據(jù),因此,也稱36位或36bit LVDS接口。
?
單路8bit LVDS
這種接口電路中,采用單路方式傳輸,每個(gè)基色信號(hào)采用8位數(shù)據(jù),共24位RGB數(shù)據(jù),因此,也稱24位或24bit LVDS接口。
?
雙路8bit LVDS
這種接口電路中,采用雙路方式傳輸,每個(gè)基色信號(hào)采用8位數(shù)據(jù),其中奇路數(shù)據(jù)為24位,偶路數(shù)據(jù)為24位,共48位RGB數(shù)據(jù),因此,也稱48位或48bit LVDS接口
?
????? 現(xiàn)在市場上基本是8bit和6bit的屏幕,
?
????? LVDS接口電路中,將像素的并行數(shù)據(jù)轉(zhuǎn)換為串行數(shù)據(jù)的格式主要有兩種標(biāo)準(zhǔn):VESA和JEIDA
????? 1)VSEA標(biāo)準(zhǔn)格式如下圖所示:
??????
??????
????? 以上圖片是單路的VESA標(biāo)準(zhǔn)信號(hào),對(duì)一行數(shù)據(jù)輸入則多2bit。
?
????? 關(guān)于雙路的信號(hào)格式這個(gè)可以舉個(gè)例子:
?????
??? ? 以上圖片是雙路8bit 的VSEA標(biāo)準(zhǔn)信號(hào)。
????? 2)JEIDA標(biāo)準(zhǔn)是由日本電子行業(yè)開發(fā)協(xié)會(huì)(JAPANELECTRONIC INDUSTRY DEVELOPMENT ASSOCIATION)制定的標(biāo)準(zhǔn),其格式如下:
????
可以對(duì)比參照查看,如果像素為6bit RGB,則每個(gè)通道只需要最上面的3對(duì)數(shù)據(jù)線,其中的R9…R4, G9…G4, B9…B4 對(duì)應(yīng)實(shí)際的R5…R0, G5…G0, B5…B0;同樣,如果像素是 8 bit RGB,則每個(gè)通道只需要靠上面的4對(duì)數(shù)據(jù)線,其中的R9…R2, G9…G2, B9…B2 對(duì)應(yīng)實(shí)際的R7…R0, G7…G0, B7…B0。
基本上每個(gè)屏幕的datesheet上都有相關(guān)信號(hào)圖。
由這些信號(hào)圖基本上可以判斷: ? ? ? 1.單雙路;
?2.是多少bit RGB;
?????? 3.數(shù)據(jù)信號(hào)格式;
?
?
查看IMX6Q_LDB Control Register,內(nèi)有相關(guān)設(shè)置:
?????? 1.單雙路;
?2.是多少bit RGB;
?????? 3.數(shù)據(jù)信號(hào)格式;
?
有設(shè)備樹的內(nèi)核可以直接修改設(shè)備樹來操作寄存器,紅色部分即可修改的三個(gè)參數(shù):
&ldb {
status = "okay";
dual-mode = <1>; //這里為單路LVDS,雙路應(yīng)設(shè)為 split-mode = <1>;
???????????????? lvds-channel@0 {
???????????????? fsl,data-mapping = "spwg"; //這里為數(shù)據(jù)格式(VESA),還有一種為JEIDA的標(biāo)準(zhǔn)
???????????????? fsl,data-width = <24>; //這里是數(shù)據(jù)位寬,即8bit RGB
???????????????? status = "okay";
?????????????????????????????? display-timings {
?????????????????????????????? native-mode = <&timing0>;
?????????????????????????????? timing0: hsd100pxn1 {
??????????????? ? ? ? ? ? ? ?? clock-frequency = <65000000>; //像素時(shí)鐘
?????????????????????????????? hactive = <1280>; //橫像素點(diǎn)數(shù)
?????????????????????????????? vactive = <800>; //豎像素點(diǎn)數(shù)
??????????????? ? ? ? ? ? ? ?? hback-porch = <10>; //水平后沿
?????????????????????????????? hfront-porch = <30>; //水平前沿
?????????????????????????????? vback-porch = <2>; //垂直后沿
??????????????? ? ? ? ? ? ? ?? vfront-porch = <4>; //垂直前沿
?????????????????????????????? hsync-len = <10>; //行同步脈寬
?????????????????????????????? vsync-len = <6>; //垂直同步脈寬
?????????????? ? ? ? ? ? ? ?? };
????? ? ? ? ? ?? };
};
下面我們分析藍(lán)色部分應(yīng)該如何填寫。
?
2.屏幕參數(shù)的相關(guān)設(shè)置(藍(lán)色部分)
fb_videomode各個(gè)參數(shù)的意義
各參數(shù)的抽象如下圖所示:
關(guān)于fb_videomode各個(gè)成員的意義詳解:
| 名稱 | 數(shù)據(jù)手冊(cè)中的簡稱 | 中文名 | 意義 | 備注 (簡稱或另名稱) |
| name | No | 名字 | 液晶屏名字(可選) | No |
| refresh | No | 刷新頻率 | 刷新頻率(內(nèi)核中很多例子都賦值為60) | No |
| xres | No | 行寬 | 每行的像素個(gè)數(shù) | No |
| yres | No | 屏幕高度 | 屏幕的行數(shù) | No |
| pixclock | No | 像素時(shí)鐘 | 每個(gè)像素時(shí)鐘周期的長度,單位是皮秒(10的負(fù)12次方分之1秒) | No |
| left_margin | HBP | 水平后沿 | 在每行或每列的象素?cái)?shù)據(jù)開始輸出時(shí)要插入的象素時(shí)鐘周期數(shù) | No |
| right_margin | HFP | 水平前沿 | 在每行或每列的象素結(jié)束到LCD 行時(shí)鐘輸出脈沖之間的象素時(shí)鐘數(shù) | No |
| upper_margin | VBP | 垂直后沿 | 在垂直同步周期之后幀開頭時(shí)的無效行數(shù) | No |
| lower_margin | VFP | 垂直前沿 | 本幀數(shù)據(jù)輸出結(jié)束到下一幀垂直同步周期開始之前的無效行數(shù) | No |
| hsync_len | HPW | 行同步脈寬 | 單位:像素時(shí)鐘周期 | HWH(HSYNC width) |
| vsync_len | VPW | 垂直同步脈寬 | 單位:顯示一行的時(shí)間th | HWH(HSYNC width) |
| sync | No | 同步極性設(shè)置 | 可以根據(jù)需要設(shè)置FB_SYNC_HOR_HIGH_ACT(水平同步高電平有效)和FB_SYNC_VERT_HIGH_ACT(垂直同步高電平有效) | No |
| vmode | No | No | ? 在內(nèi)核中的大多數(shù)示例都直接置為FB_VMODE_NONINTERLACED。interlaced的意思是交錯(cuò)[隔行]掃描,電視中使用2:1的交錯(cuò)率, 即每幀分兩場,垂直掃描兩次,一場掃描奇數(shù)行,另一場掃描偶數(shù)行。很顯然LCD目前不是這種模式。 | No |
| flag | No | No | 目前沒有看到用法 | No |
?
由上圖可得:
水平總周期?= left_margin?+ right_margin?+ hsync_len
垂直總周期 = upper_margin?+ lower_margin?+ vsync_len
下面主要以16BPP的TFT屏作為例子。有的LCD會(huì)給出參數(shù)列表,比如下圖,可以很清楚的在紅框中找到需要的參數(shù),取“type”典型值即可。但是有的LCD并沒有直接給出這樣的列表,設(shè)置某些參數(shù)沒有給出,這需要通過時(shí)序圖來確定。
?
下面以天馬的3.5寸TFT液晶屏 TM035KDH03為例進(jìn)行講解。
參數(shù)計(jì)算:
可以看到LCD時(shí)鐘是28M,所以pixclock=1000000/28?,在設(shè)備樹上是clock-frequency = <28000000>;
行同步脈沖寬度是一個(gè)時(shí)鐘周期,所以,hsync_len=1
場同步脈沖的寬度是一個(gè)行周期,所以,vsync_len = 1
上圖是一幀圖像的顯示時(shí)序圖。的上圖顯示,up_margin = 13-1=12,, yres= 240,
整個(gè)場周期為263,所以lower_margin= 263-13-240 = 10
同時(shí)看到,列同步信號(hào)高電平有效,行同步信號(hào)也是高電平有效。
上圖是一行的時(shí)序圖。
可以看到,left_margin = 69, xres = 320, right_margin = 408 -320 - 70 = 18
數(shù)據(jù)在上升沿有效,輸出使能是高電平有效。
總計(jì)一下上面的參數(shù),得到如下結(jié)果:
static struct clcd_panel conn_lcd_panel = { ?
.mode = { ?
.name = "QVGA TM035KDH03", ?
.refresh = 60, ?
.xres = 240, ?
.yres = 320, ?
.pixclock = 35714, ?
.left_margin = 69, ?
.right_margin = 18, ?
.upper_margin = 12, ?
.lower_margin = 10, ?
.hsync_len = 1, ?
.vsync_len = 1, ?
.sync = FB_SYNC_HOR_HIGH_ACT|FB_SYNC_VERT_HIGH_ACT, ?
.vmode = FB_VMODE_NONINTERLACED, ?
}, ?
}
所以用設(shè)備樹可以這樣寫:
????????????? clock-frequency = <28000000>; ??????? //像素時(shí)鐘
????????????????????????????hactive = <240>; ?????????????????????????????//橫像素點(diǎn)數(shù)
????????????????????????????vactive = <320>; ?????????????????????????????//豎像素點(diǎn)數(shù)
????????????????????????????hback-porch = <18>; ??????????????????????????//水平后沿
????????????????????????????hfront-porch = <69>; ??????????????????????????//水平前沿
????????????????????????????vback-porch = <10>; ??????????????????????????//垂直后沿
????????????????????????????vfront-porch = <12>; ??????????????????????????//垂直前沿
????????????????????????????hsync-len = <1>; ?????????????????????????????//行同步脈寬
????????????????????????????vsync-len = <1>; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //垂直同步脈寬
3.調(diào)試過程中的常見問題
??? 1.背光
?????? 調(diào)試屏幕首先要把背光點(diǎn)亮,沒有點(diǎn)亮背光屏幕什么都顯示不了,根據(jù)規(guī)格書將背光點(diǎn)亮,可以尋求硬件工程師幫忙
??? 2.屏幕上星星點(diǎn)點(diǎn)
? 在調(diào)試的時(shí)候,我們會(huì)發(fā)現(xiàn)屏幕上有莫名其妙的星星點(diǎn)點(diǎn),一般這種情況下,我們首先要看看VGH和VGL電壓是否處于datasheet所描述的范圍之 內(nèi)。如果屬于標(biāo)準(zhǔn)范圍之內(nèi),但星星點(diǎn)點(diǎn)依舊,很有可能就是時(shí)序問題。這時(shí)候不妨在代碼中變更采樣的時(shí)序(比如上升沿采樣改為下降沿采樣)。如果無法在代碼 中更改,也可以在clk信號(hào)線加個(gè)100R電阻,也可能解決該問題。
? ?? 3.顯示抖動(dòng)
? ? ? ? ? ? ? ? 在確認(rèn)VPW,VBP,VFP,HPW,HBP,HFP的設(shè)置已經(jīng)符合LCD規(guī)格要求后,如果屏幕的顯示還在抖動(dòng)的話,不妨將輸出的時(shí)鐘信號(hào)頻率降低,有可能解決該問題。 ?????? ??????????
?????????????? 還存在一種現(xiàn)象,LVDS的信號(hào)線電壓高出規(guī)格書一點(diǎn)也會(huì)出現(xiàn)。曾經(jīng)有過LVDS信號(hào)電壓為3.3V的接到5V導(dǎo)致屏幕顯示出現(xiàn)細(xì)小電波抖動(dòng)。
??? 4.顯示花屏
?????????????? 出現(xiàn)花屏現(xiàn)象,理論上是RGB沒有調(diào)好導(dǎo)致的。如顏色位數(shù), 顏色順序?qū)е碌摹?/p>
?????????????? 檢查一下規(guī)格書的顏色格式部分, 是否將RGB888格式設(shè)置成了666,或者順序是RBG,BGR之類的都有可能。
???????????
?
總結(jié)
以上是生活随笔為你收集整理的LVDS接口分类与数据格式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Win10开机wsappx进程占用CPU
- 下一篇: 【无标题】2022甘肃省安全员C证试题及