TI的FPD Link III 系列的視頻傳輸橋接器件,是專門用于車載信息娛樂系統以及車載ADAS應用的視頻傳輸橋接器件。通常是串化器與解串器一起配對使用,通過50Ω 單端同軸或 100Ω 差分屏蔽雙絞線 (STP) 電纜提供單通道或雙通道高速串行數據流,從而簡化高速音視頻數據遠距離傳輸對線束的要求,并減少車內線束用量。
本文以串化器DS90UB947-Q1,以及解串器DS90UB948-Q1為例,介紹FPD Link III系列器件獨有的Test Pattern Generator測試模式生成器。使用該測試模式,可以通過947或者948,使用內部/外部時鐘,以及內部/外部timing 參數,來產生純色/漸變/彩條等測試畫面直接顯示于屏幕,以輔助判斷整個高速視頻傳輸鏈路的穩定性。
a) 水平黑白漸變
b) 彩條Color Bar
1. 947/948 內部測試模式生成器
947/948內部均帶有一個測試模式生成器,能用于對顯示面板或者高速鏈路的調試工作中。該測試模式十分簡單且輸出測試畫面的分辨率以及幀率,均可以通過內部自帶的寄存器進行調節,能適用于不同的應用及不同的顯示面板調試上。
只要保證947/948的供電穩定,且PDB使能腳可靠拉高,即使此時沒有視頻信號輸入,也能進行顯示。如果沒有接收到SOC輸出的時鐘,則可以將測試模式配置為時鐘內部的OSC產生顯示時鐘。而視頻的timing參數(HS/VS/DE)既可以使用SOC輸出的timing,也可以
使用947/948內部產生的timing參數。測試模式的使能以及相關配置,只需要通過本地I2C,或者遠端的I2C設置相關寄存器即可,無需更改外部管腳的配置。
以947/948為例,整個視頻鏈路下共有4種測試模式工作方式:
? 通過947產生測試模式圖樣,并使用SOC產生的PCLK/timing時序
? 通過947產生測試模式圖樣,并使用947內部自行產生的PCLK/timing時序
? 通過948產生測試模式圖樣,并使用SOC產生的PCLK/timing時序
? 通過948產生測試模式圖樣,并使用948內部自行產生的PCLK/timing時序
c) 配置選項
1.1. 視頻時序video timing
測試模式下,有兩種可選的視頻時序模式,分別是外部/內部時序。在 默認的外部時序模式下,測試模式生成器會自動檢測由SOC輸入的HS/VS/DE視頻時序參數,并由此產生相應的相應的時序參數。
而在內部時序模式下,測試模式生成器會根據控制寄存器中配置的分辨率及幀率等參數,產生相應的HS/VS/DE時序參數。
在使用內部時序模式產生測試模式圖樣時,測試模式生成器可以使用內部OSC產生不同分辨率或幀率下所需的PCLK以及時序參數。這個內部參考的OSC頻率典型值是200MHz,帶有N=3—63的整數分頻器,以產生不同幀率說需要的PCLK。
d) 不同分頻系數下的幀率
1.2. 測試圖樣選擇
947/948能提供如下的共16種測試圖樣。
且947/948可以使能auto-scrolling自動滾動功能,在以下的測試圖樣中自動循環顯示,這個功能可以通過0x65的bit 0 來使能。
i. 純白色
ii. 純黑色
iii. 純紅色
iv. 純綠色
v. 純藍色
vi. 水平黑色到白色漸變
vii. 水平黑色到紅色漸變
viii. 水平黑色到綠色漸變
ix. 水平黑色到藍色漸變
x. 垂直黑色到白色漸變
xi. 垂直黑色到紅色漸變
xii. 垂直黑色到綠色漸變
xiii. 垂直黑色到藍色漸變
xiv. 自定義顏色
xv. 垂直彩條
xvi. 顏色反轉
2. 測試模式配置寄存器
如果需要輸出自定義分辨率或者幀率的測試模式輸出的話,需要通過間接寄存器來配置時鐘,時序,以及相應的模式。
2.1. 測試模式相關的直接控制寄存器
0x64的PGCTL寄存器,以及0x65的PGCFG寄存器是用于配置測試模式的直接控制寄存器。
e) 0x64寄存器
2.2. 間接寄存器
0x66是間接地址寄存器,用于存放需要訪問的間接寄存器地址。而0x67是間接數據寄存器,用于存放需要寫入間接寄存器的數據。
所以如果要訪問間接寄存器,需要先將該間接寄存器的地址寫入0x66,然后將數據寫入到0x67中,947/948就會自動將該數據寫入到該間接寄存器中了。
f) 0x66/67寄存器
2.3. 間接寄存器表
以下與時序/幀率等自定義參數相關的間接寄存器的讀寫,都是通過0x66/0x67來進行的。下面簡單介紹一下自定義測試模式下所需要配置的相關寄存器。
g) 間接寄存器表
2.3.2. PGTFS1/2/3: 0x04/05/06 總幀大小配置寄存器
0x04配置的是12 位的總幀水平寬度低8位。
0x05的低4位配置的是12 位的總幀水平寬度的高4位。而高4位配置的是12 位的總幀垂直寬度的低4位。
0x06配置的是12位的總幀垂直寬度的高8位。
2.3.3. PGAFS1/2/3:0x07/08/09 有效幀大小配置寄存器
0x07 配置的是12位的有效幀水平寬度低8位。
0x08的低4位配置的是12位的有效幀水平寬度的高4位。而高4位配置的是12位的有效垂直寬度的低4位。
0x09配置的是12位的有效垂直寬度的高8位。
2.3.4. PGHSW:0x0A 水平同步信號寬度該參數只有在內部時序使能的時候才會生效。
2.3.5. PGVSW:0x0B 垂直同步信號寬度,該參數只有在內部時序使能的時候才會生效。
2.3.6. PGHBP:0x0C 水平后肩信號寬度,該參數只有在內部時序使能的時候才會生效。
2.3.7. PGVBP:0x0D垂直后肩信號寬度,參數只有在內部時序使能的時候才會生效。
2.3.8. PGSC:0x0E同步信號配置寄存器
3. 自定義測試模式配置示例
該示例是基于以下的PCLK及timing時序參數來配置自定義分辨率測試模式的:
3.1. 相關寄存器配置
3.1.1. 設置像素時鐘PCLK以及總幀大小。
a) 像素時鐘PCLK為66.7MHz:寫0x03到寄存器0x66,然后寫0x03到寄存器0x67,從而設置時鐘分頻系數為3,200MHz/3 = 66.7MHz
b) 總幀水平寬度為2288,總幀垂直寬度為1230:2288(dec)=0x8F0,1230(dec)=0x4CE。
先寫0x04到寄存器0x66,然后寫0xF0到寄存器0x67。
寫0x05到寄存器0x66,然后寫0xE8到寄存器0x67。
寫0x06到寄存器0x66,然后寫0x4C到寄存器0x67。
3.1.2. 設置有效幀大小:
a) 有效幀水平寬度為1920(0x780),垂直寬度為1200(0x4B0)。
先寫0x07到寄存器0x66,然后寫0x80到寄存器0x67。
寫0x08到寄存器0x66,然后寫0x07到寄存器0x67。
寫0x09到寄存器0x66,然后寫0x4B到寄存器0x67。
3.1.3. 設置同步信號寬度:水平同步信號為80,垂直同步信號為5。
a) 寫0x0A到寄存器0x66,然后寫0x50到寄存器0x67,設置水平同步信號寬度。
寫0x0B到寄存器0x66,然后寫0x05到寄存器0x67,設置垂直同步信號寬度。
3.1.4. 設置后肩消隱信號寬度:水平后肩寬度為80,垂直后肩寬度為5。
a) 寫0x0C到寄存器0x66,然后寫0xD8到寄存器0x67。
寫0x0D到寄存器0x66,然后寫0x16到寄存器0x67。
3.1.5. 使能測試模式生成器
a) 先選定使用內部生成的像素時鐘PCLK以及timing時序:寫0x04到寄存器0x65。
b) 使能測試模式生成器,并輸出彩條圖像:寫0x15到寄存器0x64。
3.2. 示例代碼
以下代碼僅為示例代碼,0x2C為947的I2C地址,此地址需要與系統上的947實際的I2C地址相匹配。如果要使能948的測試模式,則需要將I2C地址更改為948的地址。
isend -n /dev/i2c1 -a 0x2c 0x66 0x03
isend -n /dev/i2c1 -a 0x2c 0x67 0x03 //200MHz Clock divider, 66.7MHz
isend -n /dev/i2c1 -a 0x2c 0x66 0x04
isend -n /dev/i2c1 -a 0x2c 0x67 0xF0 // least 8 bit of Total Horizontal frame size
isend -n /dev/i2c1 -a 0x2c 0x66 0x05
isend -n /dev/i2c1 -a 0x2c 0x67 0xE8 // Least 4 bit TV + Most 4 bit TH
isend -n /dev/i2c1 -a 0x2c 0x66 0x06
isend -n /dev/i2c1 -a 0x2c 0x67 0x4C // Most 8 bit of Total Vertical frame size
isend -n /dev/i2c1 -a 0x2c 0x66 0x07
isend -n /dev/i2c1 -a 0x2c 0x67 0x80 // least 8 bit of active Horizontal frame size
isend -n /dev/i2c1 -a 0x2c 0x66 0x08
isend -n /dev/i2c1 -a 0x2c 0x67 0x07 // Least 4 bit AV + Most 4 bit AH
isend -n /dev/i2c1 -a 0x2c 0x66 0x09
isend -n /dev/i2c1 -a 0x2c 0x67 0x4B // Most 8 bit of active Vertical frame size
isend -n /dev/i2c1 -a 0x2c 0x66 0x0A
isend -n /dev/i2c1 -a 0x2c 0x67 0x50 // Horizontal Sync Width
isend -n /dev/i2c1 -a 0x2c 0x66 0x0B
isend -n /dev/i2c1 -a 0x2c 0x67 0x05 // Vertical Sync Width
isend -n /dev/i2c1 -a 0x2c 0x66 0x0C
isend -n /dev/i2c1 -a 0x2c 0x67 0xD8 // Horizontal back porch
isend -n /dev/i2c1 -a 0x2c 0x66 0x0D
isend -n /dev/i2c1 -a 0x2c 0x67 0x16 // Vertical back porch
isend -n /dev/i2c1 -a 0x2c 0x65 0x04 //using internal timing and internal clock
isend -n /dev/i2c1 -a 0x2c 0x64 0x15 // Color Bar, enable PG
-
汽車
+關注
關注
13文章
3433瀏覽量
37180
發布評論請先 登錄
相關推薦
評論