LVDS介面分類與資料格式
轉發路徑:https://blog.csdn.net/a617996505/article/details/82386952
1.LVDS介面分類與資料格式
-
單路6it LVDS
這種介面電路中,採用單路方式傳輸,每個基色訊號採用6位資料,共18位RGB資料,因此,也稱18位或18bit LVDS介面。此,也稱18位或18bit LVDS介面。
-
雙路6bit LVDS
這種介面電路中,採用雙路方式傳輸,每個基色訊號採用6位資料,其中奇路資料為18位,偶路資料為18位,共36位RGB資料,因此,也稱36位或36bit LVDS介面。
-
單路8bit LVDS
這種介面電路中,採用單路方式傳輸,每個基色訊號採用8位資料,共24位RGB資料,因此,也稱24位或24bit LVDS介面。
-
雙路8bit LVDS
這種介面電路中,採用雙路方式傳輸,每個基色訊號採用8位資料,其中奇路資料為24位,偶路資料為24位,共48位RGB資料,因此,也稱48位或48bit LVDS介面
現在市場上基本是8bit和6bit的螢幕,
LVDS介面電路中,將畫素的並行資料轉換為序列資料的格式主要有兩種標準:VESA和JEIDA
1)VSEA標準格式如下圖所示:
以上圖片是單路的VESA標準訊號,對一行資料輸入則多2bit。
關於雙路的訊號格式這個可以舉個例子:
以上圖片是雙路8bit 的VSEA標準訊號。
2)JEIDA標準是由日本電子行業開發協會(JAPANELECTRONIC INDUSTRY DEVELOPMENT ASSOCIATION)制定的標準,其格式如下:
可以對比參照檢視,如果畫素為6bit RGB,則每個通道只需要最上面的3對資料線,其中的R9…R4, G9…G4, B9…B4 對應實際的R5…R0, G5…G0, B5…B0;同樣,如果畫素是 8 bit RGB,則每個通道只需要靠上面的4對資料線,其中的R9…R2, G9…G2, B9…B2 對應實際的R7…R0, G7…G0, B7…B0。
基本上每個螢幕的datesheet上都有相關訊號圖。
由這些訊號圖基本上可以判斷: 1.單雙路;
2.是多少bit RGB;
3.資料訊號格式;
檢視IMX6Q_LDB Control Register,內有相關設定:
1.單雙路;
2.是多少bit RGB;
3.資料訊號格式;
有裝置樹的核心可以直接修改裝置樹來操作暫存器,紅色部分即可修改的三個引數:
&ldb {
status = "okay";
dual-mode = <1>; //這裡為單路LVDS,雙路應設為 split-mode = <1>;
lvds-channel@0 {
fsl,data-mapping = "spwg"; //這裡為資料格式(VESA),還有一種為JEIDA的標準
fsl,data-width = <24>; //這裡是資料位寬,即8bit RGB
status = "okay";
display-timings {
native-mode = <&timing0>;
timing0: hsd100pxn1 {
clock-frequency = <65000000>; //畫素時鐘
hactive = <1280>; //橫畫素點數
vactive = <800>; //豎畫素點數
hback-porch = <10>; //水平後沿
hfront-porch = <30>; //水平前沿
vback-porch = <2>; //垂直後沿
vfront-porch = <4>; //垂直前沿
hsync-len = <10>; //行同步脈寬
vsync-len = <6>; //垂直同步脈寬
};
};
};
下面我們分析藍色部分應該如何填寫。
2.螢幕引數的相關設定(藍色部分)
fb_videomode各個引數的意義
各引數的抽象如下圖所示:
關於fb_videomode各個成員的意義詳解:
名稱 | 資料手冊中的簡稱 | 中文名 | 意義 | 備註 (簡稱或另名稱) |
name | No | 名字 | 液晶屏名字(可選) | No |
refresh | No | 重新整理頻率 | 重新整理頻率(核心中很多例子都賦值為60) | No |
xres | No | 行寬 | 每行的畫素個數 | No |
yres | No | 螢幕高度 | 螢幕的行數 | No |
pixclock | No | 畫素時鐘 | 每個畫素時鐘週期的長度,單位是皮秒(10的負12次方分之1秒) | No |
left_margin | HBP | 水平後沿 | 在每行或每列的象素資料開始輸出時要插入的象素時鐘週期數 | No |
right_margin | HFP | 水平前沿 | 在每行或每列的象素結束到LCD 行時鐘輸出脈衝之間的象素時鐘數 | No |
upper_margin | VBP | 垂直後沿 | 在垂直同步週期之後幀開頭時的無效行數 | No |
lower_margin | VFP | 垂直前沿 | 本幀資料輸出結束到下一幀垂直同步週期開始之前的無效行數 | No |
hsync_len | HPW | 行同步脈寬 | 單位:畫素時鐘週期 | HWH(HSYNC width) |
vsync_len | VPW | 垂直同步脈寬 | 單位:顯示一行的時間th | HWH(HSYNC width) |
sync | No | 同步極性設定 | 可以根據需要設定FB_SYNC_HOR_HIGH_ACT(水平同步高電平有效)和FB_SYNC_VERT_HIGH_ACT(垂直同步高電平有效) | No |
vmode | No | No | 在核心中的大多數示例都直接置為FB_VMODE_NONINTERLACED。interlaced的意思是交錯[隔行]掃描,電視中使用2:1的交錯率, 即每幀分兩場,垂直掃描兩次,一場掃描奇數行,另一場掃描偶數行。很顯然LCD目前不是這種模式。 | No |
flag | No | No | 目前沒有看到用法 | No |
由上圖可得:
水平總週期 = left_margin + right_margin + hsync_len
垂直總週期 = upper_margin + lower_margin + vsync_len
下面主要以16BPP的TFT屏作為例子。有的LCD會給出引數列表,比如下圖,可以很清楚的在紅框中找到需要的引數,取“type”典型值即可。但是有的LCD並沒有直接給出這樣的列表,設定某些引數沒有給出,這需要通過時序圖來確定。
下面以天馬的3.5寸TFT液晶屏 TM035KDH03為例進行講解。
引數計算:
可以看到LCD時鐘是28M,所以pixclock=1000000/28 ,在裝置樹上是clock-frequency = <28000000>;
行同步脈衝寬度是一個時鐘週期,所以,hsync_len=1
場同步脈衝的寬度是一個行週期,所以,vsync_len = 1
上圖是一幀影像的顯示時序圖。的上圖顯示,up_margin = 13-1=12,, yres= 240,
整個場週期為263,所以lower_margin= 263-13-240 = 10
同時看到,列同步訊號高電平有效,行同步訊號也是高電平有效。
上圖是一行的時序圖。
可以看到,left_margin = 69, xres = 320, right_margin = 408 -320 - 70 = 18
資料在上升沿有效,輸出使能是高電平有效。
總計一下上面的引數,得到如下結果:
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,
},
}
所以用裝置樹可以這樣寫:
clock-frequency = <28000000>; //畫素時鐘
hactive = <240>; //橫畫素點數
vactive = <320>; //豎畫素點數
hback-porch = <18>; //水平後沿
hfront-porch = <69>; //水平前沿
vback-porch = <10>; //垂直後沿
vfront-porch = <12>; //垂直前沿
hsync-len = <1>; //行同步脈寬
vsync-len = <1>; //垂直同步脈寬
3.除錯過程中的常見問題
1.背光
除錯螢幕首先要把背光點亮,沒有點亮背光螢幕什麼都顯示不了,根據規格書將背光點亮,可以尋求硬體工程師幫忙
2.螢幕上星星點點
在除錯的時候,我們會發現螢幕上有莫名其妙的星星點點,一般這種情況下,我們首先要看看VGH和VGL電壓是否處於datasheet所描述的範圍之 內。如果屬於標準範圍之內,但星星點點依舊,很有可能就是時序問題。這時候不妨在程式碼中變更取樣的時序(比如上升沿取樣改為下降沿取樣)。如果無法在程式碼 中更改,也可以在clk訊號線加個100R電阻,也可能解決該問題。
3.顯示抖動
在確認VPW,VBP,VFP,HPW,HBP,HFP的設定已經符合LCD規格要求後,如果螢幕的顯示還在抖動的話,不妨將輸出的時鐘訊號頻率降低,有可能解決該問題。
還存在一種現象,LVDS的訊號線電壓高出規格書一點也會出現。曾經有過LVDS訊號電壓為3.3V的接到5V導致螢幕顯示出現細小電波抖動。
4.顯示花屏
出現花屏現象,理論上是RGB沒有調好導致的。如顏色位數, 顏色順序導致的。
檢查一下規格書的顏色格式部分, 是否將RGB888格式設定成了666,或者順序是RBG,BGR之類的都有可能。
相關文章
- 資料治理與資料分類分級!
- LVDS 螢幕的兩種介面標準:VESA 和 JEIDA;單/雙路 LVDS 訊號
- 常用介面分類與模組設計的方法
- 資料庫用途分類資料庫
- 京東獲得jd商品分類API介面(父分類、根分類、子分類)API
- java後臺介面相容jsonp格式資料JavaJSON
- 抽象類與介面抽象
- 資料庫分類有哪些資料庫
- golang 簡單實現介面資料格式化Golang
- 類與介面(三)java中的介面與巢狀介面Java巢狀
- 資料探勘概念與技術 - chapter 8 - 分類:基本概念APT
- 蝦皮商品詳情介面返回資料的json格式JSON
- 棉花病害影像分類資料集
- 水稻病害影像分類資料集
- 資料分類分級究竟是什麼
- 探索多種資料格式:JSON、YAML、XML、CSV等資料格式詳解與比較JSONYAMLXML
- 把JSON資料格式轉換為Python的類物件JSONPython物件
- SAP MM 物料主資料分類檢視的資料會帶入批次分類檢視裡?
- typescript探索(二)- 介面與類TypeScript
- TypeScript介面與類的使用TypeScript
- api介面資料安全格式轉換-DES,AES,SM2API
- 好大夫資料安全分類分級實踐探索
- 八大資料結構分類大資料資料結構
- 分類與擴充
- 蕪湖人社×美創科技,人社局資料安全管理制度與資料分類分級建設
- Springboot使用ResponseBodyAdvice進行統一返回介面資料格式的使用Spring Boot
- 《工業資料分類分級指南(試行)》解讀
- Java總結-抽象類與介面Java抽象
- java中的抽象類與介面Java抽象
- Java的抽象類與介面理解Java抽象
- 大資料分類和架構簡介大資料架構
- JS資料型別分類和判斷JS資料型別
- MySQL 資料型別分類和選擇MySQL 資料型別
- thinkphp5資料的無限分類PHP
- Laravel 中 dingo API tranformer 返回自定義分頁格式資料LaravelGoAPIORM
- 1688商品資料API介面的資料分析與挖掘技巧API
- 資料包格式
- 《資料安全能力成熟度模型》實踐指南01:資料分級分類模型