MIPI Dsi的使用相比于CSI多了一些寄存器控制,生成的example直接仿真是可以的,但是修改了參數(shù),一些參數(shù)也要做相應(yīng)的調(diào)整。這里我們來做個(gè)簡單總結(jié) 。
(1)BANK電壓要配置成1.2V
(2)輸出要接相應(yīng)bank的REF_RES管腳。
(3)IP設(shè)置關(guān)鍵信號說明
名稱 | 參數(shù) | 說明 |
MIPI Parallel Clock frequency | 50~187.5 | 指clk_byte_HS的時(shí)鐘頻率。 |
IP core frequency | 100 | 指mipi_clk的時(shí)鐘頻率,指定100MHz |
Pack Type 48 | Enable,Disable | 使能表示打開48位的數(shù)據(jù)類型,比如RGB888, |
Packe Type64 | Enable,Disable |
使能表示打開64位的數(shù)據(jù)類型,比如RGB565. 如果要全部支持可以同時(shí)打開Pack Type48和Packe Type 64 |
MaximumHorizontalResolution | 行像素的最大個(gè)數(shù)。一定要注意hactive的長度,如果設(shè)置不正確可能無畫面或者畫面偏移。 | |
FIFOPixelDepthSize | 最大4096 | FIFO的data width是64-bit, MIPIIP里面會(huì)緩存2~3行才發(fā)出去.所以注意這個(gè)值要大于一行的一行數(shù)據(jù)的2倍或者3倍。 |
videoTransmission Packet Sequences |
Non-burst mode with SyncPulses, Burst mode, Non-burst mode with Sync Events |
?Non-Burst Mode with Sync Pulses – 讓外設(shè)可以精確的重構(gòu)原始的視頻時(shí)序,包括同步脈沖寬度。 ?Non-Burst Mode with Sync Events –與上述類似,但精確重建同步脈沖寬度不是必需的。 ?Burst mode – RGB像素包在時(shí)間上有壓縮,留出更多的時(shí)間用于LP模式,或者用于復(fù)用別的傳輸。 |
(4)修改配置參數(shù)
視頻格式如下,可能根據(jù)實(shí)際的需要進(jìn)行修改。
parameter MAX_HRES = 16'd1920; parameter MAX_VRES = 12'd4; parameter HSP = 10'd2; parameter HBP = 10'd2; parameter HFP = 10'd246; parameter VSP = 6'd5; parameter VBP = 6'd8; parameter VFP = 6'd32;
修改參數(shù)后要在Tianium-mipi-utility文件中驗(yàn)證,確保文件沒有錯(cuò)誤提示。
另外要把Tianium-mipi-utility文件中input fields中的信息替換Panel_1080p_reg.mem中的相應(yīng)信息。這是IP需要的視頻格式信息。
(5)注意修改相應(yīng)的時(shí)鐘
在下面,i_pclk是單像素的時(shí)鐘。o_pclk對應(yīng)MIPI接口的像素時(shí)鐘。
i_sys_clk是MIPI AXI接口的配置時(shí)鐘。i_mipi_tx_pclk是MIPI發(fā)送8位HS數(shù)據(jù)的并行時(shí)鐘。
在使用中可能根據(jù)設(shè)置參數(shù)修改i_pclk,o_pclk和i_mipi_tx_pclk;一般不用修改i_sys_clk。
//video生成時(shí)鐘是125M initial begin i_pclk <= 1'b1; forever #4.00 i_pclk <= ~i_pclk; end //轉(zhuǎn)換成MIPI接口的pixel clock是62.5M initial begin o_pclk <= 1'b1; forever #8.00 o_pclk <= ~o_pclk; end //MIPI配置接口時(shí)鐘是50M initial begin i_sys_clk <= 1'b1; forever #10 i_sys_clk <= ~i_sys_clk; end //MIPI時(shí)是100M initial begin mipi_clk <= 1'b1; forever #5 mipi_clk <= ~mipi_clk; end //數(shù)據(jù)速率是1000M initial begin i_mipi_tx_pclk <= 1'b1; forever #4 i_mipi_tx_pclk <= ~i_mipi_tx_pclk; end
(6)所設(shè)置的參數(shù)既要在Tianium-mipi-utility在評估通過,還要滿足公式
PIX_CLK_MHZ < (DATARATE_MPBS * NUM_DATA_LANE) / PACK_BIT
1)這里的PIX_CLK_MHZ就是指MIPI IP接口的pixel_clk
2)DATARATE_MPBS是指MIPI的數(shù)據(jù)速率,并非video的帶寬。
3)NUM_DATA_LANE是指傳輸所用的lane數(shù)
4) PACK_BIT如下,詳細(xì)信息請參考MIPI DSI ds。
(7)復(fù)位處理
復(fù)位timing
關(guān)于DSI_TX復(fù)位處理:
1)reset_n,reset_byte_HS_n和axi_reset_n先釋放;
2)等待panel_config的o_confdone拉高,也就是panel_config配置完成
3)通過confdone拉高來釋放video_stream的復(fù)位
4)confdone可以用于reset_pixel_n,也可以通過video_stream的輸出的vs信號,在vs為blank時(shí)釋放復(fù)位。
parameterFRAME_NUM = 5 reg vs_r; reg [10:0] r_vs_cnt; wire neg_vs; always@(negedge sys_rst_n or posedge i_sysclk_div_2) begin if(!sys_rst_n) vs_r <= 1'b0; else ????????vs_r????<=?vs; end assign neg_vs = {vs_r,vs} == 2'b10; always@(negedge sys_rst_n or posedge i_sysclk_div_2) begin ????if(?!sys_rst_n?) r_vs_cnt <= 16'b0; else if (neg_vs && r_vs_cnt <= FRAME_NUM ) ????????r_vs_cnt????<=?r_vs_cnt?+?1'b1; end always@(negedge sys_rst_n or posedge i_sysclk_div_2) begin ????if?(!sys_rst_n) reset_pixel_n <= 1'b0; ????else?if?(neg_vs?&&?r_vs_cnt?==?FRAME_NUM-1??)?//?? reset_pixel_n <= 1'b1; end
(8) MIPI IP接口的timing時(shí)序要求如下:
(9)video接口數(shù)據(jù)類型格式
視頻格式的順序請參考AN015。
=========================================
example
=========================================
時(shí)鐘方案
復(fù)位方案
審核編輯:劉清
-
寄存器
+關(guān)注
關(guān)注
31文章
5336瀏覽量
120224 -
MIPI
+關(guān)注
關(guān)注
11文章
310瀏覽量
48613 -
FIFO存儲(chǔ)
+關(guān)注
關(guān)注
0文章
103瀏覽量
5968 -
DSI
+關(guān)注
關(guān)注
0文章
51瀏覽量
42349
原文標(biāo)題:MIPI dsi TX移植注意事項(xiàng) - update4
文章出處:【微信號:gh_ea2445df5d2a,微信公眾號:FPGA及視頻處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論