1 MIPI2.5G DPHY CSI2DSI demo移植 -v1-德赢Vwin官网 网

MIPI2.5G DPHY CSI2DSI demo移植 -v1

描述

最近陆续有客户在评估易灵思的Ti180。Ti180的MIPI 2.5G是硬核。今天做一个简单的移植来试验下MIPI DSI 驱屏。 因为有客户需要,所以也把程序移植到了公司的demo板上。 框图如下: MIPI

================================

MIPI 2.5G DPHY简介

===============================

Ti180有4组MIPI 2.5G DPHY,每组是4组数据和一个时钟。

支持MIPI DPHY 1.2版本协议

支持ULPS.

支持连续与非连续时钟模式。

支持反向传输。

                ================================

MIPI  CSI

===============================

CSI的复位 上电之后先释放reset_n和reset_byte_HS_n,然后就开始了初始化时间,初始化的时间保守为500us,然后sensor端就可以发送数据了。但是在发送数据之前reset_pixel_n要提前有效数据的两个时钟周期之前释放。 MIPI 但实际上电之后,只有复位才能接收,

  always @( posedge clk_pixel or negedge reset_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的数据速率; • NUM_DATA_LANE :MIPI的lane数; • PACK_BIT:就是Table 12中的Pixel Data Bits per Pixel Clock. MIPI

===============================

MIPI TX 参考时钟来源?

==============================

MIPI TX的参考有GPIO,PLL输出和core三个来源。

MIPI

(1)如果是GPIO 输入,请参考pinout设计文件里有一栏Hard Block PLL REFCLK.就是指如果硬件如果参考时钟从外部供给时指定的管脚。这是在硬件设计时需要注意的,需要提前规划好时钟的来源。

MIPI

(2)如果把时钟参考设置为PLL又应该怎么使用,明显IP核上并没有给出任何设置PLL参考源的选项。PLL的参考只能是固定的。当我们选择PLL的时候,下图的Resource会指定需要用那个PLL,如下图的PLL_TL1,这时我们就必须要使用PLL_TL1,但是选择的是PLL_TL1的输出的那个时钟呢?在下图的Instance后面还是空白的。

MIPI

于是我们新建一个PLL_TL1,并把所有的输出时钟都打开。

MIPI

当我们再次查看DPHY的参考时,发现Instance已经不再为空,因为是指定了pll_inst__CLKOUT3.说明用的是PLL_TL1的clk_out3,所以在设计时也要注意对该时钟的规划。

MIPI

(3)如果时钟选择Core呢?这时时钟可以手动输入想选择的时钟,无论是从GCLK输入的还是PLL输出的。

MIPI

另外需要提醒要注意时钟频率的选择哦。

=================================

如果要修改速率DPHY部分应该做什么呢?

================================

(1)修改PHY Bandwidth参数。

MIPI

(2)在Timing中也可以确认

MIPI

(2)修改clk_byte_HS ,该时钟要求为phy_clk_byte_HS的两倍。

================================

时钟方案

================================

该demo中MIPI DSI TX的IP部分时钟主要如下,

(1)在DPHY中会生成一个phy_clk_byte_HS给DSI TX IP。

(2)同时还会通过PLL输出一个clk_byte_HS 给DSI TX IP,该时钟要求是phy_clk_HS的两倍,demo上这两个时钟并不同源。

(3)另外PLL还提供了MIPI TX IP需要的pixel_clk和axi_clk。

MIPI

================================

复位处理:

================================

(1)DSI TXIP是有initial时间的,所以要等待initial时间过后再配置寄存器才能发送出去。

(2)video输出复位要在寄存器配置完成之后才能释放。

(3) MIPI CSI IP同样有inital时间,所以要等待initial时间过后才能接收数据

================================

寄存器配置:

================================

Ti180的寄存器配置与Ti60一样,易灵思提供了一个DSI porch cal.xlsx表,输入想要配置的timing生成IP核的配置参数;

另外,屏的配置要根据屏厂提供的相关资料来使用,这是因为寄存器的命令会有很大差异。具体怎么使用晚些时间再更新。

================================

移植说明:

================================

该demo是MIPI DPHY 4lane 1G输出。内部产生了一个彩条。

(1)MIPI屏速率是1Gbps 4 lane.

(2)分辨率是1920x1080

(3) demo来自易灵思提供的DSI TX demo。

(4)目前demo板没有预留MIPI的GPIO参考,为了方便就直接通过Core时钟来驱动(PLL输入还是要指定位置的),实际这个时钟也是从PLL输出的。

(5)屏使用的是易灵demo板中提供的手机屏。

MIPI

(3)目前MIPI DSI TX IP里面有两个参数,clk_byte_HS和phy_clk_byte_HS,而且文档明确说明clk_byte_HS是phy_clk_byte_HS的2倍。如果在DPHY中把数据总线位宽修改成16位,还必须是2倍关系吗?

MIPI

 

 .clk_byte_HS        (dphy_byte_clk  ), .clk_pixel          (i_sysclk), .phy_clk_byte_HS    (mipi_dphy_tx_pclk),

 

=================================

注意:

(1)如果使用易灵思原厂提供的demo板评估,要连接R171,这个是LCD屏的复位信号 。

(2)屏的参数与IP的参数目前共用。

更新说明

-v2:

(1)增加了屏复位和寄存器配置说明。

(2)使用聚吉鑫科技的1080p60的LCD屏 

审核编辑 黄宇

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表德赢Vwin官网 网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分