应用环境: 搭配FPGA,输出1080P。
从规格书看出,SiI9134 支持多种格式的video input. 不同的视频格式对应的输入像素时钟也不同。其中VGA=640*480,480P=720*480,XGA=1024*768,720P=1280*720,SXGA=1280*1024.这里我们以1080P(1920*1080) RGB 24Bit 输入为例,了解如何配置SiI9134。(音频部分暂时不使能)
这里需要通过I2C配置10个寄存器(0x72=base register):
assign cfg_data_reg[0] ={8'h72,16'h05,8'h01}; //Reset all
assign cfg_data_reg[1] ={8'h72,16'h05,8'h00}; //Reset done
assign cfg_data_reg[2] ={8'h72,16'h08,8'h37}; //配置控制寄存器
assign cfg_data_reg[3] ={8'h72,16'h49,8'h00};
从芯片视频处理流程图可以看出,芯片自带很多功能模块,这些都是通过寄存器0x49,0x4A配置。
因为我们的输入是RGB格式,输出是RGB格式,所以禁用芯片某些converter, compression,clip等功能。
assign cfg_data_reg[4] ={8'h72,16'h4a,8'h00}; //同上,禁用芯片某些功能模块。
下面重点是配置PLL Control registers。 不同的输入像素时钟要求不同的配置。这些配置都是根据规格书中Table10-Table14得出。这里以1080P 148.50MHz时钟为例:
assign cfg_data_reg[5] ={8'h72,16'h82,8'h25};
assign cfg_data_reg[6] ={8'h72,16'h83,8'h1b};
assign cfg_data_reg[7] ={8'h72,16'h84,8'h30};
寄存器0x83,0x84中,我们配置了 :
FFR_COUNT= 011
FFB_COUNT= 011
FPOST = 000
这样配置是通过Table10得出的:
输入时钟148.50MHz位于Orange区域, 所以配置如图。
assign cfg_data_reg[8] ={8'h72,16'h85,8'h02};
寄存器0x85中,TFR_COUNT = 10
这样配置是根据Table14得出:
assign cfg_data_reg[9] ={8'h7a,16'h2f,8'h00}; //禁止audio
至此,我们已经完成了SiI9134基本寄存器的配置。SiI9034/9134自带 DE信号发生器,但是这里我们提供独立的Hsync, Vsync,DE信号,所以涉及相关的寄存器不用理会。
RGB-24bit输出占用的Data引脚信息:
RGB 24bit 输入时序图,一个像素时钟传输一个像素: