mxj1005071012

AD9516-3时钟芯片配置

mxj1005071012 在 2013-10-3 建立的討論區
最後回覆由ADI_Wei於2013-10-15提供

特性:

VCO频率范围:1750Mhz~2250Mhz6LVPECL(最大输出频率1.6Ghz)输出和4LVDS输出(800Mhz)

内部结构:

         如下图所示,常用引脚说明:

REF1:参考输入1

REF2:参考输入2

REF_SEL:选择是参考输入1或者参考输入2

LF:环路滤波器输出,使用内部VCO时使用

CLK:外部VCO输入

SYNC:同步输入,低有效,如果不同步,直接拉高。

REFMON:参考的输出,详细看datasheet

STATUS:状态输出,详细看datasheet

LD:            PLL状态指示,详细看datasheet


 

 

需要用的工具

AD9516_17_18 Evaluation Software.exe

AD9516_17_18EvalSetup1.1.0.zip

使用步骤

软件界面如下:

输入你的参考时钟,我以我的自己的例子来讲解哈。

1我使用了REF1=61.44Mhz,那么在REF1中输入61.44,并选择为输入(点击黄色块)。

        2配置N分频和R分频,这个要稍微计算下咯。以R=1为例。VCO的频率范围为1750Mhz~2250Mhz,则N的范围为1750/61.44~2250/61.4428.48~36.6,则可选的值为29~36

考虑到我的输出,选择N=32,同时选择内部VCO作为N分频的输入。

            3根据需要配置输出,并选择PLL MODE NormOp

4导出配置文档,导出的文档格式为stp格式,可以直接用记事本打开。

        5查看配置文档,找出变化了寄存器值(也可以不找出,将全部寄存器值写进去也可以)。

配置注意事项

         在配置完成后注意校准VCO

         示例如下:


——回复可见——

module Control_AD9516(

    input CLK,

    input Reset_n,

    input Send_Busy,

//  input AD9516_LD,

    output reg[23:0]Dataout,

    output reg AD9516_SYNC,

    output reg Start_Sig

    );

 

 

/***************************************/

parameter R0_R =24'h00003C; //soft reset

parameter R0   =24'h000018;

 

parameter R10  =24'h00107C;     //1100 power on

parameter R11   =24'h001101;    // R=4

parameter R14   =24'h001404;    // B=16 N=16*8=128

parameter R16  =24'h001604;     // mode 8 / 9

parameter R17  =24'h001700;     // status = N divider output

 

parameter R18   =24'h001807;    //initial

parameter R18_R =24'h001806;   //Reset VCO calibration

 

parameter R1B  =24'h001BA0;    //open VCO frequency monitor and Ref1 frequency monitor

parameter R1C  =24'h001C02;    //select ref1 power on

 

parameter RF0   =24'h00F008;    //out0 output  V=780mV 1000

parameter RF1  =24'h00F108;    //out1 outupt  V=780mV

parameter RF2   =24'h00F208;    //out2 outupt  V=780mV

parameter RF3  =24'h00F30B;    //out3 Total power down 1011

parameter RF4  =24'h00F40B;    //out4 Total power down 1011

parameter RF5  =24'h00F508;    //out5 output  V=780mV

parameter R140 =24'h014042;    //out6 output I=3.5MA

parameter R141  =24'h014143;    //out7 power down

parameter R142  =24'h01425a;    //out8 COMS output

parameter R143  =24'h014343;    //out9 power down

 

parameter R190 =24'h019011;     // out0 & out 1 divider 4 get 245.76Mhz

parameter R191  =24'h019100;

 

parameter R193  =24'h019300;    // out 3 divider 2 get 491.52Mhz

 

parameter R196  =24'h019611;    // out 5 divider 4 get 245.76Mhz

 

parameter R199  =24'h019911;    // out 6 divider 4 get 245.76Mhz

parameter R19B  =24'h019B00;

parameter R19C  =24'h019C20;

 

parameter R19E =24'h019E11;     //out 8 divider 4*4 get 61.44Mhz

parameter R1A0 =24'h01A011;

 

parameter R1E0 =24'h01E000;     //VCO divider 2 get 983.04Mhz

parameter R1E1  =24'h01E102;    //Select VCO as source CLK

 

parameter R232  =24'h023201;    //updata all Reg

 

 

/***************************************/

 

reg [5:0]count;

reg flag;

//reg [2:0]count_sync;

 

/***************************************/

 

always @ (posedge CLK or negedge Reset_n)

    if(!Reset_n)begin

        Start_Sig <= 1'b0;

        count <= 6'd0;

        flag <= 1'b0;

        Dataout <= 24'd0;

        AD9516_SYNC <= 1'b1;

//      count_sync <= 3'd0;

        end

    else if (count < (6'd35))begin

                    AD9516_SYNC <= 1'b1;

                   if((!Send_Busy) && (!flag))begin

                    flag <= 1'b1;

                    Start_Sig <= 1'b1;

                    case (count)

                    0:begin Dataout <= R0_R; end  //soft reset

                    1:begin Dataout <= R0;end     //clear reset

                    //PLL config

                    2:begin Dataout <= R10; end   //PPL power on

                    3:begin Dataout <= R11; end   //VCO  =1966.08Mhz; N =128;

                    4:begin Dataout <= R14; end   //REF1 =61.44Mhz; R=4;

                    5:begin Dataout <= R16; end 

                    6:begin Dataout <= R17; end

                    7:begin Dataout <= R1B; end

                    8:begin Dataout <= R1C; end

                  

               //output Config

                    9:begin Dataout <= RF0; end  //out 0

                    10:begin Dataout <= RF1;end  //out 1

                    11:begin Dataout <= RF2;end  //out 2

                    12:begin Dataout <= RF3;end  //out 3

                    13:begin Dataout <= RF4;end  //out 4

                    14:begin Dataout <= RF5;end  //out 5

                    15:begin Dataout <= R140;end //out 6

                    16:begin Dataout <= R141;end //out 7

                    17:begin Dataout <= R142;end //out 8

                    18:begin Dataout <= R143;end //out 9

                    //output divider

                    19:begin Dataout <= R190;end      

                    20:begin Dataout <= R191;end

                    21:begin Dataout <= R193;end

                    22:begin Dataout <= R196;end

                    23:begin Dataout <= R199;end

                    24:begin Dataout <= R19B;end                      

                    25:begin Dataout <= R19C;end

                    26:begin Dataout <= R19E;end

                    27:begin Dataout <= R1A0;end

                    //VCO Config

                    28:begin Dataout <= R1E0;end

                    29:begin Dataout <= R1E1;end

                    30:begin Dataout <= R232;end

                    //VCO calibraion

                    31:begin Dataout <= R18_R;end

                    32:begin Dataout <= R232; end

                    33:begin Dataout <= R18;  end

                    34:begin Dataout <= R232; end

                    endcase

                    end

                 if (flag)begin

 

                        flag <= 1'b0;

                        Start_Sig <=1'b0;

                        count <= count + 1'b1;

 

                end

            end

 

endmodule

]

遇见的问题

1、  输出频率有偏差,但频率稳定(PLL锁定了),检查参考频率,参考频率的极小偏差都有可能导致输出频率偏差

2、  输出为直流,检查SYNC电平,应该为高。

結果