MIPI Dsi的使用相比于CSI多了一些寄存器控制,生成的example直接仿真是可以的,但是修改了参数,一些参数也要做相应的调整。这里我们来做个简单总结 。
(1)BANK电压要配置成1.2V
(2)输出要接相应bank的REF_RES管脚。
(3)IP设置关键信号说明
名称 | 参数 | 说明 |
MIPI Parallel Clock frequency | 50~187.5 | 指clk_byte_HS的时钟频率。 |
IP core frequency | 100 | 指mipi_clk的时钟频率,指定100MHz |
Pack Type 48 | Enable,Disable | 使能表示打开48位的数据类型,比如RGB888, |
Packe Type 64 | Enable,Disable |
使能表示打开64位的数据类型,比如RGB565. 如果要全部支持可以同时打开Pack Type48和Packe Type 64 |
Maximum Horizontal Resolution | 行像素的最大个数。一定要注意hactive的长度,如果设置不正确可能无画面或者画面偏移。 | |
FIFO Pixel Depth Size | 最大4096 | FIFO的data width是64-bit, MIPI IP里面会缓存2~3行才发出去.所以注意这个值要大于一行的一行数据的2倍或者3倍。 |
video Transmission Packet Sequences |
Non-burst mode with Sync Pulses, Burst mode, Non-burst mode with Sync Events |
•Non-Burst Mode with Sync Pulses – 让外设可以精确的重构原始的视频时序,包括同步脉冲宽度。 •Non-Burst Mode with Sync Events –与上述类似,但精确重建同步脉冲宽度不是必需的。 •Burst mode – RGB像素包在时间上有压缩,留出更多的时间用于LP模式,或者用于复用别的传输。 |
(4)修改配置参数
视频格式如下,可能根据实际的需要进行修改。
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;
修改参数后要在Tianium-mipi-utility文件中验证,确保文件没有错误提示。
另外要把Tianium-mipi-utility文件中input fields中的信息替换Panel_1080p_reg.mem中的相应信息。这是IP需要的视频格式信息。
(5)注意修改相应的时钟
在下面,i_pclk是单像素的时钟。o_pclk对应MIPI接口的像素时钟。
i_sys_clk是MIPI AXI接口的配置时钟。i_mipi_tx_pclk是MIPI发送8位HS数据的并行时钟。
在使用中可能根据设置参数修改i_pclk,o_pclk和i_mipi_tx_pclk;一般不用修改i_sys_clk。
//video生成时钟是125M initial begin i_pclk <= 1'b1; forever #4.00 i_pclk <= ~i_pclk; end //转换成MIPI接口的pixel clock是62.5M initial begin o_pclk <= 1'b1; forever #8.00 o_pclk <= ~o_pclk; end //MIPI配置接口时钟是50M initial begin i_sys_clk <= 1'b1; forever #10 i_sys_clk <= ~i_sys_clk; end //MIPI时是100M initial begin mipi_clk <= 1'b1; forever #5 mipi_clk <= ~mipi_clk; end //数据速率是1000M initial begin i_mipi_tx_pclk <= 1'b1; forever #4 i_mipi_tx_pclk <= ~i_mipi_tx_pclk; end
(6)所设置的参数既要在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的数据速率,并非video的带宽。
3)NUM_DATA_LANE是指传输所用的lane数
4) PACK_BIT如下,详细信息请参考MIPI DSI ds。
(7)复位处理
复位timing
关于DSI_TX复位处理:
1)reset_n,reset_byte_HS_n和axi_reset_n先释放;
2)在reset_n释放之后,等待tINIT时间之后
3)通过panel_config来配置panel寄存器。
4)等待panel_config的o_confdone拉高,也就是panel_config配置完成
5)通过confdone拉高来释放video_stream的复位
6)confdone可以用于reset_pixel_n,也可以通过video_stream的输出的vs信号,在vs为blank时释放复位。
parameter FRAME_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时序要求如下:
(9) video接口数据类型格式
视频格式的顺序请参考AN015。
=========================================
example
=========================================
时钟方案
复位方案
更新说明:
update5:更新复位处理。
全部0条评论
快来发表一下你的评论吧 !