硬件平臺
軟件平臺:
使用注意事項(xiàng)
MIPI Dsi的使用相比于CSI多了一些寄存器控制,生成的example直接仿真是可以的,但是修改了參數(shù),一些參數(shù)也要做相應(yīng)的調(diào)整。這里我們來做個簡單總結(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 | 行像素的最大個數(shù)。一定要注意hactive的長度,如果設(shè)置不正確可能無畫面或者畫面偏移。 | |
FIFOPixelDepthSize | 最大4096 | FIFO的data width是64-bit, MIPIIP里面會緩存2~3行才發(fā)出去.所以注意這個值要大于一行的一行數(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)證,確保文件沒有錯誤提示。另外要注意VFP的值最小是2。
另外要把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í)鐘是125Minitialbegin i_pclk <= 1'b1; forever #4.00 i_pclk <= ~i_pclk;end//轉(zhuǎn)換成MIPI接口的pixel clock是62.5Minitial begin o_pclk <= 1'b1; forever #8.00 o_pclk <= ~o_pclk;end//MIPI配置接口時(shí)鐘是50Minitial begin i_sys_clk <= 1'b1; forever #10 i_sys_clk <= ~i_sys_clk;end//MIPI時(shí)是100Minitial begin mipi_clk <= 1'b1; forever #5 mipi_clk <= ~mipi_clk;end//數(shù)據(jù)速率是1000Minitial 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)在reset_n釋放之后,等待tINIT時(shí)間之后
3)通過panel_config來配置panel寄存器。
4)等待panel_config的o_confdone拉高,也就是panel_config配置完成
5)通過confdone拉高來釋放video_stream的復(fù)位
6)confdone可以用于reset_pixel_n,也可以通過video_stream的輸出的vs信號,在vs為blank時(shí)釋放復(fù)位。
parameterFRAME_NUM = 5reg vs_r;reg [10:0] r_vs_cnt;wire neg_vs;always@(negedge sys_rst_n or posedge i_sysclk_div_2)beginif(!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í)鐘方案
審核編輯 黃宇
-
MIPI
+關(guān)注
關(guān)注
11文章
310瀏覽量
48623 -
DSI
+關(guān)注
關(guān)注
0文章
51瀏覽量
42352
發(fā)布評論請先 登錄
相關(guān)推薦
評論