最近陸續(xù)有客戶在評(píng)估易靈思的Ti180。Ti180的MIPI 2.5G是硬核。今天做一個(gè)簡(jiǎn)單的移植來試驗(yàn)下MIPI DSI 驅(qū)屏。 因?yàn)橛锌蛻粜枰砸舶殉绦蛞浦驳搅?a target="_blank">公司的demo板上。 框圖如下:
================================
MIPI 2.5G DPHY簡(jiǎn)介
===============================
Ti180有4組MIPI 2.5G DPHY,每組是4組數(shù)據(jù)和一個(gè)時(shí)鐘。
支持MIPI DPHY 1.2版本協(xié)議
支持ULPS.
支持連續(xù)與非連續(xù)時(shí)鐘模式。
支持反向傳輸。
================================
MIPI CSI
===============================
CSI的復(fù)位 上電之后先釋放reset_n和reset_byte_HS_n,然后就開始了初始化時(shí)間,初始化的時(shí)間保守為500us,然后sensor端就可以發(fā)送數(shù)據(jù)了。但是在發(fā)送數(shù)據(jù)之前reset_pixel_n要提前有效數(shù)據(jù)的兩個(gè)時(shí)鐘周期之前釋放。 但實(shí)際上電之后,只有復(fù)位才能接收,
always@(posedgeclk_pixel ornegedgereset_pixel_n)
begin
if( ! reset_pixel_n )
data_en <=?1'b0;
elseif(&RxStopState)
data_en <=?1'b1;
end
.RxDataHS0 (data_en ?RxDataHS[0]:1'b0),
.RxDataHS1 (data_en ?RxDataHS[1]:1'b0),
.RxDataHS2 (data_en ?RxDataHS[2]:1'b0),
.RxDataHS3 (data_en ?RxDataHS[3]:1'b0),
pixel_clk的頻率是有限制的,
PIX_CLK_MHZ >= (DATARATE_MBPS * NUM_DATA_LANE) / PACK_BIT, ? DATARATE_MBPS:MIPI的數(shù)據(jù)速率; ? NUM_DATA_LANE :MIPI的lane數(shù); ? PACK_BIT:就是Table 12中的Pixel Data Bits per Pixel Clock.
===============================
MIPI TX 參考時(shí)鐘來源?
==============================
MIPI TX的參考有GPIO,PLL輸出和core三個(gè)來源。
(1)如果是GPIO 輸入,請(qǐng)參考pinout設(shè)計(jì)文件里有一欄Hard Block PLL REFCLK.就是指如果硬件如果參考時(shí)鐘從外部供給時(shí)指定的管腳。這是在硬件設(shè)計(jì)時(shí)需要注意的,需要提前規(guī)劃好時(shí)鐘的來源。
(2)如果把時(shí)鐘參考設(shè)置為PLL又應(yīng)該怎么使用,明顯IP核上并沒有給出任何設(shè)置PLL參考源的選項(xiàng)。PLL的參考只能是固定的。當(dāng)我們選擇PLL的時(shí)候,下圖的Resource會(huì)指定需要用那個(gè)PLL,如下圖的PLL_TL1,這時(shí)我們就必須要使用PLL_TL1,但是選擇的是PLL_TL1的輸出的那個(gè)時(shí)鐘呢?在下圖的Instance后面還是空白的。
于是我們新建一個(gè)PLL_TL1,并把所有的輸出時(shí)鐘都打開。
當(dāng)我們?cè)俅尾榭碊PHY的參考時(shí),發(fā)現(xiàn)Instance已經(jīng)不再為空,因?yàn)槭侵付藀ll_inst__CLKOUT3.說明用的是PLL_TL1的clk_out3,所以在設(shè)計(jì)時(shí)也要注意對(duì)該時(shí)鐘的規(guī)劃。
(3)如果時(shí)鐘選擇Core呢?這時(shí)時(shí)鐘可以手動(dòng)輸入想選擇的時(shí)鐘,無(wú)論是從GCLK輸入的還是PLL輸出的。
另外需要提醒要注意時(shí)鐘頻率的選擇哦。
=================================
如果要修改速率DPHY部分應(yīng)該做什么呢?
================================
(1)修改PHY Bandwidth參數(shù)。
(2)在Timing中也可以確認(rèn)
(2)修改clk_byte_HS ,該時(shí)鐘要求為phy_clk_byte_HS的兩倍。
================================
時(shí)鐘方案
================================
該demo中MIPI DSI TX的IP部分時(shí)鐘主要如下,
(1)在DPHY中會(huì)生成一個(gè)phy_clk_byte_HS給DSI TX IP。
(2)同時(shí)還會(huì)通過PLL輸出一個(gè)clk_byte_HS 給DSI TX IP,該時(shí)鐘要求是phy_clk_HS的兩倍,demo上這兩個(gè)時(shí)鐘并不同源。
(3)另外PLL還提供了MIPI TX IP需要的pixel_clk和axi_clk。
================================
復(fù)位處理:
================================
(1)DSI TXIP是有initial時(shí)間的,所以要等待initial時(shí)間過后再配置寄存器才能發(fā)送出去。
(2)video輸出復(fù)位要在寄存器配置完成之后才能釋放。
(3) MIPI CSI IP同樣有inital時(shí)間,所以要等待initial時(shí)間過后才能接收數(shù)據(jù)
================================
寄存器配置:
================================
Ti180的寄存器配置與Ti60一樣,易靈思提供了一個(gè)DSI porch cal.xlsx表,輸入想要配置的timing生成IP核的配置參數(shù);
另外,屏的配置要根據(jù)屏廠提供的相關(guān)資料來使用,這是因?yàn)榧拇嫫鞯拿顣?huì)有很大差異。具體怎么使用晚些時(shí)間再更新。
================================
移植說明:
================================
該demo是MIPI DPHY 4lane 1G輸出。內(nèi)部產(chǎn)生了一個(gè)彩條。
(1)MIPI屏速率是1Gbps 4 lane.
(2)分辨率是1920x1080
(3) demo來自易靈思提供的DSI TX demo。
(4)目前demo板沒有預(yù)留MIPI的GPIO參考,為了方便就直接通過Core時(shí)鐘來驅(qū)動(dòng)(PLL輸入還是要指定位置的),實(shí)際這個(gè)時(shí)鐘也是從PLL輸出的。
(5)屏使用的是易靈demo板中提供的手機(jī)屏。
(3)目前MIPI DSI TX IP里面有兩個(gè)參數(shù),clk_byte_HS和phy_clk_byte_HS,而且文檔明確說明clk_byte_HS是phy_clk_byte_HS的2倍。如果在DPHY中把數(shù)據(jù)總線位寬修改成16位,還必須是2倍關(guān)系嗎?
.clk_byte_HS (dphy_byte_clk ),.clk_pixel (i_sysclk),.phy_clk_byte_HS (mipi_dphy_tx_pclk),
=================================
注意:
(1)如果使用易靈思原廠提供的demo板評(píng)估,要連接R171,這個(gè)是LCD屏的復(fù)位信號(hào) 。
(2)屏的參數(shù)與IP的參數(shù)目前共用。
更新說明
-v2:
(1)增加了屏復(fù)位和寄存器配置說明。
(2)使用聚吉鑫科技的1080p60的LCD屏
審核編輯 黃宇
-
MIPI
+關(guān)注
關(guān)注
11文章
312瀏覽量
48721 -
demo板
+關(guān)注
關(guān)注
1文章
33瀏覽量
40857 -
DSI
+關(guān)注
關(guān)注
0文章
52瀏覽量
42382
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論