ICS1523型高性能可编程行同步时钟发生器的原理及应用
ICS1523是一款高性能、低功耗的同步信号发生器,它广泛应用于要求行同步、同步锁相的视频应用领域,由于采用低电压CMOS混合模式技术,使得它能够为视频工程及分辨率从VGA到UXGA的显示提供有效的时钟解决方案。ICS1523能够提供差分(高达250MHz)或者单路格式(高达125MHz)的像素时钟。动态相位调整电路可以控制像素时钟相对HYSNC的相位,先进的锁相环技术可以选择内部可编程分频或外部分频,所有的功能都可以通过行业标准的I2C总线以它的硬件接口进行配置。
2 主要特点和引脚功能
ICS1523的引脚排列如图1所示,它采用24引脚的SOIC封装,表1所列的是引脚功能。ICS1523的主要特点如下:
像素频率高达250MHz;
频率抖动非常小;
动态调整输出时钟相位;
单终端SSTL_3时钟输出;
双缓冲的PLL/DPA控制寄存器;
可以分别对PLL和PDA软件复位;
可选择内部或者外部环路滤波器;
3.3V工作电压,输入耐压高达5V;
I2C串行接口即可以100KHz工作,也可以400KHz工作。
3 工作原理和内部寄存器
3.1 工作原理
ICS1523的内部组成框图如图2所示。
ICS1523的锁相环是针对行同步应用优化设计的,内部高性能施密特触发器在很短时间内对输入的HSINC信号进行预处理,并将处理后的HSYNC作为干净的参考信号,预处理后的HSYNC信号或者HSYNC的恢复信号会在FUNC引脚上出现,这个输出信号与像素时钟的边界对齐。
ICS1523内部具有自动上电复位检测电路。如果输入电压值低于它的门限值会自动复位,因而没有必要连接外部复位信号。
动态相位调整功能使得它能够输出相关的HSYNC信号,并且延时于像素时钟的输出信号,延迟的大小可以通过编程的方式设置,增加延时功能在多个视频源要求必须同步时显得非常有用。
ICS1523使用行业标准的I2C串行总线接口进行编程。通过该接口能够访问内部的12个寄存器:1个只写寄存器、8个读写寄存器和3个只读寄存器。根据引脚I2CADR的状况可分别访问2个ICS1523,当此引脚为低电平时,读地址是4DH,写地址是4CH,如果是高电平,则它的读地址是4FH,写地址是4EH,I2C总线接口既可以低速(100KHz)工作,也可以高速(400KHz)工作,并且有5V耐压。
3.2 内部寄存器
ICS1523有12个控制寄存器,分别为输入控制寄存器、锁相控制寄存器、反馈分配0和1寄存器,DPA偏移寄存器、DPA控制寄存器、输出使能寄存器、晶体振荡器分配寄存器、复位寄存器、电路版本寄存器和状态寄存器。下面介绍几个重要的寄存器。
(1)状态寄存器(Status Register)
DPA_LOCK:动态相位调整锁定标志,0=没有锁定,1=锁定。
PLL_LOCK:锁相环锁定标志,同上。
D2-D7:Reserved。
(2)复位寄存器(Reset Register)
DPA RESET:复位动态相位调整工作寄存器,写XAh表示复位DPA工作寄存器。
PLL RESET:复位锁相环工作寄存器,写5Xh表示复位PLL工作寄存器。
其中,写5Ah而表示同时复位2个工作寄存器。
(3)晶体振荡器分频寄存器
Osc_Div:OSC(12引脚)/设置的系数(设置的数值+2)。
In_Sel:选择相位/频率检测器的输入信号,0=HSYNC,1=OSC分频器。
(4)输出使能寄存器(Output Enable Register)
OE_Pck:CLK(PECH)输出使能,0=高阻,1=使能。
OE_Tck:CLK(SSTL_3)时钟输出使能,0=高阻,1=使能。
OE_P2:CHK/2(PECL)输出使能,0=高阻,1=使能。
OE_T2:CHK/2(SSTL_3)输出使能,0=高阻,1=使能。
OE_F:FUNC输出使能,0=高阻,1=使能。
CL2_Inv:CLK/2反转使能,0=不反转,1=反转。
Out_Scl:CLK分频系列。
(5)DPA控制寄存器
PA_Res0:动态相位调整精度选择。
(6)DPA偏移寄存器
DPA_OS:动态相位调整偏移。
Fil_Sel:锁相环路选择,0=外部,1=内部。
(7)锁相环路寄存器
PFD0-2相位/频率检测增益。
PSD0-1:后分频系数。
(8)输入控制寄存器
EnDLS:使能DPA锁存状态输出到LOCK/REF脚。
EnPLS:使能PLL锁存状态输出到LOCK/REF脚。
Func_Sel:功能输出选择,0=恢复的HSYNC,1=外部的HSYNC。
Fbk_Sel:反馈选择,0=内部反馈,1=外部反馈。
4 典型应用
4.1 硬件电路
ICS1523的典型应用电路如图3所示,该电路为SID13806型显示控制器供视频同步信号。这些信号是SID13806连接LCD时所需要的。ICS1523输入时钟是50MHz(引脚12)、输出CLK1(25MHz)、CLK2(12.5MHz)和CLK3(387.6KHz)分别接S1D13806的BUSCLK(60引脚)、CLK1(66引脚)、CLK12(64引脚)和CLK13(引脚)。
4.2 软件配置
软件配置流程如图4所示,详细配置过程见下文给出的部分配置程序。结合典型应用还给出相关寄存器的具体配置数值,如表2所示(这些值可通过ICS1523专用软件获取)。
配置程序:
//ICS 1523 Initialisation
ack=ICS1523_WriteByte((unsigned char)ICS_ICR,(unsigned char)0)
error status |=ack;
ack=ICS1523_WriteByte((unsigned char)ICS_OE,(unsigned char)Ox1A);
error status |=ack:
ack=ICS1523_WriteByte((unsigned char) ICS_OD,0xFF)
error_status |=ack;
ack=ICSl523_WriteByte((unsigned char) ICS_DPAO,(unsigned char)0)
error_status |=ack;
nb_trial=0;
d0
{nb_trial++;
ack=ICS1523_WriteByte((unsigned char)ICS_ICR,0xC1);
error status |=ack;
ack=ICS1523_WriteByte((unsigned char)ICS_LCR,0x37);
error_status |=ack;
ack=ICS1523_WriteByte((unsigned char)ICS_FD0,0x39);
error_status |=ack;
ack=ICS1523_WriteByte((unsigned char)ICS_FD1,Ox00);
error_status |=ack;
ack=ICS1523_WriteByte((unsigned char)ICS_SWRST,Ox50);
error_status |=ack;
//Program l ms temporizing period initial_timeout=GetTickCount();
while(GetTickCount()<(initial_timeout+TIMEOUT_0F_1000 US));
ICS1523_ReadByte((unsigned char)ICS_SR,status);
}while(!((unsigned int)*status&(unsigned int)ICS_PLLLOCK)&&(nb_trial<10));
ack=ICS1523_WriteByte((unsigned char)ICS_DPAC,0x03);
error_status |=ack;
ack=ICS1523_WriteByte((unsigned char)ICS_SWRST,OxOA);
error_status |=ack;
initial_timeout=GetTickCount();
while(GetTickCount()<(initial_timeout+TIMEOUT_OF_1000us));
ack=ICS1523_WriteByte((unsigned char) ICS_DPAO,Ox00);
error_status |=ack;
return error_status;
5 结束语
本文提供的硬件电路及寄存器配置值已经在实际应用中得到验证,是完全正确的。ICS1523为视频领域提供了一种很好的视频时钟解决方案。
评论