This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

急! 问,为何通过Vctr来调节CDCE913输出一个锁相时钟,一直不成功。

Other Parts Discussed in Thread: CDCE913

  大家好,我用cdce913芯片,XTAl用的是25M的4角晶振。通过FPGA用IIC配置Y1输出的也是25M。然后把Y1输出的25M,和另一个RTL8201芯片输出的25M时钟,同时输入FPGA,通过FPGA将这两个时钟分频成10K的时钟。下图一,是CDCE913的参考电路,我只是用FPGA替换了74HC4046A。两个分频后的时钟相比较用的是图二的方法。但是配置完后用示波器测量发现从CDCE913出来的时钟25M不是很规则,很多毛刺,而且根本没有和RTL8201芯片输出的25M时钟锁相。

不知道问题出在哪里,是不是FPGA的IIC没有将CDCE913配置好,还是什么原因,看了很久的手册,不知道从哪里入手了。望指点。我还需要补充什么没讲到的么?

  • 我用一个25M的4脚晶振作为Xin,将他从Y1输出的25M时钟,和我RTL8201芯片输出的25M时钟同时输入FPGA,在FPGA里面将两个25M时钟都分频为10K的时钟来比较相位,当CDCE913时钟分频出来的10K时钟,上升沿滞后时FPGA输出给Vctrl的信号变高,超前时信号变低,其他时候为高阻态。但是用示波器观察发现,Y1输出的时钟根本就没有和RTL8201的时钟锁相。而且时钟还不规范。请帮忙解答一下。

  • 有没有具体的波形?另外你的寄存器配置?

  • 你好,感谢你的关注。下面我将我的信息一一列出来。

    1.我是通过FPGA写的IIC程序对CDCE913进行配置的。因为我只是需要输出一个锁相时钟,所以只配置了offset 00-06.下面是我的配置。

    问题:1,不全部配置,CDCE913能正常工作么?

             2,我怎么检测我用IIC协议配置CDCE913成功。

    //--Slave Receiver Address
    parameter Slave_address = 8'b11001010;

    OFFSET        //--Command Code Definition      |     Data Byte
    00                         8'b10000001;                          | 8'b00000100;

    01                         8'b01000000;                          |  8'b00000100;

    02                          8'b10000010;                          | 8'b00110100;

    03                          8'b10000011;                          | 8'b00000001;
    04                          8'b10000100;                          | 8'b00000010;
    05                          8'b10000101;                          | 8'b01010000;
    06                          8'b10000110;                          | 8'b01000000;

    2,下面是我在用Signaltap 抓取的信号,注意看"pahse_error","phase_error_polarity""phase_cdce913""phase_rtl8201" "TEST_CLK""cdce913_25M_i" 这几个信号。他们之间的关系式这样的。TEST-CLK信号是输出给Vctrl脚的信号。就是像我第一个帖的图一样。当RTL8201的波形超过CDCE913的波形时,TEST-CLK为高,落后时为低,其他情况为高阻态。

    问题:1,看下面第2张图,为什么当TEST-CLK为高输给Vctrl时,CDCE913有一段时间是没有时钟的?

    assign phase_error = phase_cdce913 ^ phase_rtl8201;

    assign phase_error_polarity = phase_cdce913 && (!phase_rtl8201);

    if (phase_error )

       begin

            if (phase_error_polarity)

                         TSET_CLK <= 1'b1;

           else

                         TEST_CLK <= 1'b0;

      end

    else

      TEST_CLK <= 1'bz;

    3,下面我给出我用示波器同时测量锁相后的CDCE913和RTL8201,25MHZ 时钟。可以看到他们两个没有锁相成功。

    4,我用的是芯片手册里的推荐电路,应该是没问题的吧。

    请问还有什么要补充的么??

    期待你的答复,谢谢了,托了很久了。

  • 您好。我补充的内容全部上传上来了。能麻烦关注一下吗。

  • 大神,有木有在呀,求关注啊,我等到花儿也谢了啊。。