最近在幫助客戶分析MIPI的問題,所以有此總結(jié)。第一次使用MIPI的人可能不知道怎么在易靈思平臺上下手,今天我們來分享下MIPI的調(diào)試過程。
一、平臺介紹
軟件 :Efinity 2022.1.226.4.3
硬件平臺 :易靈思的IMX477子卡加上代理商中印云端(全稱:中印云端(深圳)科技有限公司)制作的Ti60F100核心板。
二、獲取并掌握MIPI傳輸評估工具
(1)獲取易靈思提供的鈦金系列FPGA-mipi-utility.xlsm文件,在文件內(nèi)進(jìn)行設(shè)置。
首先在Enter the video information中輸入要傳輸?shù)?a target="_blank">視頻信息。要說明的是Pixel clock frequency對應(yīng)IP核64位接口位寬的時鐘,并不對應(yīng)每個像素的時鐘。另外Horizontal blanking per line(us)是指Thfp + Thbp + Thsa和,
另外要求HSA,HBP和HFP的值都不能是0。因為要留給MIPI包中PH(Packet Head,32Bit)和PF(Packet Footer,16Bit)傳輸時間。
這是在傳輸過程確保能否正確傳輸?shù)臈l件。
在Enter the MIPI interface details輸入MIPI接口的參數(shù)
在Enter the TX timing parameter settings欄可以勾掉use default values根據(jù)接收端的參數(shù)來設(shè)置。
當(dāng)參數(shù)都輸入完成之后,在Results中提示PASS說明參數(shù)輸入正確,否則會有錯誤提示,需要根據(jù)錯誤提示來修改參數(shù)。
三、硬件準(zhǔn)備
(1)修改硬件電壓。
MIPI自環(huán)測試先要把MIPI IO所在的bank電壓調(diào)到1.2V,本demo中,我選擇的是Bank_3A的IO作為輸出和Bank_1B的IO作為輸入。
所以要把P1和P2的電壓切換到VCC_1V2
(2)生成example并分配管腳
因為生成的example是對應(yīng)易靈思Ti60F225 demo板的,所我們要移植到Ti60F100 demo板上。管腳分配在J1和J2的對應(yīng)位置。另外要修改下對應(yīng)的時鐘和復(fù)位即可。
時鐘分配到GPIOL_P_07。這是一個全局時鐘,頻率為25M,剛好與原來的demo對應(yīng)。正因為是全局,所以要注意pll要選擇core輸入。
復(fù)位管腳我們分配給GPIOL_N_18
四、評估傳輸參數(shù)
(1)根據(jù)時鐘要求計算pixel時鐘支持的范圍??赡茏原h(huán)的時候這兩個時鐘會有一些矛盾,但是相差不大的話,經(jīng)過確認(rèn)是沒有問題的。另外我們也相信能夠發(fā)送成功的,接收也可以。
MIPI TX要求:
PIX_CLK_MHZ <=?(DATARATE_MPBS * NUM_DATA_LANE) / PACK_BIT。
MIPI RX要求:
PIX_CLK_MHZ >= (DATARATE_MPBS * NUM_DATA_LANE) / PACK_BIT
MIPI接口參數(shù)如下:
MIPI Data Lane = 2
MIPIData Rate = 800Mbps
視頻格式如下:
parameter PIXEL_BIT = 24, parameter PACK_BIT = 48, parameterHSA=5,//minimumvalueispixelcntvalue,eg:RGB888-2 parameter HBP = 5, //minimum value is pixel cnt value, eg: RGB888 - 2 parameter HFP = 1024, parameterHACT_CNT =1920,//h_total=2945 parameter VSA = 1, parameter VBP = 1, parameter VFP = 100, parameter VACT_CNT = 1080, // v_total = 1182 3,480,990 parameter HS_BYTECLK_MHZ = 100, parameter DATATYPE = 6'h24 //24 - RGB888
按照上面的公式計算像素時鐘。
DATARATE_MPBS = 800 NUM_DATA_LANE = 2 PACK_BIT = 48 PIX_CLK_MHZ<=?800?*?2/?48?=?33.33?//像素時鐘頻率
是這樣就行了嗎?當(dāng)然不是,還要確認(rèn)修改成兩個lane之后原來的數(shù)據(jù)帶寬是否還能傳輸呢?要用評估工具進(jìn)行評估保證PASS。
這里Horizontal blankingper line(us) =(5+5+1024)*(1000/66)ns = 15.51us
demo上我們選擇30M.要計算視頻帶寬是否能傳輸,即要考慮公式也要考慮utility表。OK ,PASS.
===================================
五、MIPI 自環(huán)測試
===================================
連續(xù)時鐘方案
(1)配置參數(shù)
首先我們想要測試的是兩個lane的自環(huán),所以要先在IP核把data lane修改成2。
(2)修改傳輸時鐘頻率。
(3)上板調(diào)試
這一步到了測試環(huán)節(jié)。首先添加debug,觀察r_fail和r_pass信號。上板之后我們檢測r_pass和r_fail信號,如果r_pass為高,說明測試通。
assign led[1] = r_fail; assign led[2] = r_pass;
不連續(xù)時鐘方案
在生成IP時選擇時鐘不連續(xù)
demo中第一幀幀頭解析錯誤,所以會出現(xiàn)不能pass的提示,但實(shí)際后面的幀都解析出來了。所以經(jīng)過分析傳輸正常。
下面直觀感受下什么是連續(xù)和不連續(xù)。
不連續(xù)發(fā)送的波形,可以看到很多LP_CLK_OE上拉
連續(xù)時則沒有。
六、問題分析
(1)如果是不連續(xù)的話由于時鐘是不連續(xù)的,所以通過邏輯分析儀抓取數(shù)據(jù)會出現(xiàn)明顯的錯誤,這個是可以理解的。那要怎么分析數(shù)據(jù),這里有個歪點(diǎn)子,因為是自環(huán),所以發(fā)送時鐘與接收時鐘是同尖的。所以用發(fā)送時鐘去抓取接收數(shù)據(jù),事實(shí)證明很好用。就算相位有偏差也問題不大。
(2)另一個問題是,如果出現(xiàn)了沒有pass的情況,應(yīng)該怎樣去定位問題?
檢查控制寄存器。通過讀取寄存器的值可以大致判斷數(shù)據(jù)出錯的方向。
MIPI RX控制寄存器
MIPI TX控制寄存器
如果還是不能正確接收數(shù)據(jù)的話,易靈思還會有一些別的方式可以幫助解析數(shù)據(jù)包。
審核編輯:湯梓紅
-
調(diào)試
+關(guān)注
關(guān)注
7文章
578瀏覽量
33923 -
MIPI
+關(guān)注
關(guān)注
11文章
310瀏覽量
48613 -
CSI
+關(guān)注
關(guān)注
1文章
36瀏覽量
50981 -
核心板
+關(guān)注
關(guān)注
5文章
1008瀏覽量
29742 -
易靈思
+關(guān)注
關(guān)注
5文章
46瀏覽量
4862
原文標(biāo)題:易靈思MIPI CSI 自環(huán)調(diào)試步驟
文章出處:【微信號:gh_ea2445df5d2a,微信公眾號:FPGA及視頻處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論