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