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.

CDCE421A配置后无输出

Other Parts Discussed in Thread: CDCE421A

最近用CDCE421A做一个1024MHZ的时钟输出,配置后无输出,芯片焊接和电源都没有问题,时钟输入用的是插针时钟32MHZ,针两端接15PF的电容(电容不焊接同样无输出),为了配置时钟芯片,用单片机设置定时时间分别为3us和12us(设为定时函数),这样只需改变单片机上的引脚电平就能实现芯片手册上的时序,15us的周期符合芯片手册上说的SADATA引脚输入时钟60khz到80khz之间。下面有些问题恳请ti专业人员解答:

问题一:依照ti提供的gui软件算出word0-5的配置字C7 9E 27 7A 80 00进行配置,还是没有输出,为此对比了CDCE421和CDCE421A芯片手册的区别发现了如下图的区别 这是CDCE421的表格,下图为CDCE421A的表格

这两个区别主要是t6的时间差别,一个是16us,一个是16ms,请问一下CDCE421A到底时间单位是ms还是us?

问题二:按照配置时序要求上升沿和下降时间为2ns,而我用的单片机当引脚配置为IO输出时,上升和下降时间最小为3ns,最大为5ns,SADATA走线长度大约9mm,请问这个因素影响配置结果吗?

问题三:单片机的CPU工作频率为50Mhz,在每次调用定时函数后,定时器启动之前,要执行三条定时寄存器装载语言(c语言),这个影响配置结果吗?

 

折腾了将近一个月了,求解答

  • 1.CDCE421即将停产,请使用CDCE421A来替代,参数也参考CDCE421A的datasheet表格。

     2和3应该不会导致完全没有输出,想问下,首先时钟输入的32MHz的晶振能正常起振吗?

  • 能够起振,32MHZ的频率,用示波器观察过

  • 有没有将芯片使能引脚CE 拉高? 如果CE=L的话,所有的输出将被disable掉。

  • 已经拉高了,芯片有输出了,可是不满足输出1024M的要求,输出只有60多Mhz,而且用示波器观察还很不稳定,等于说输出是输入的2倍左右,我该怎样解决这个问题?谢谢你哈

  • 检查下寄存器word 0的bit3 SELVCO是否写的是1选择VCO2,输出1024MHz的频率需要选择VCO2.

  • 原理图和单片机应用程序粘贴如下,原理图如下图

    CDCE和SADATA分别接单片机的IO口,MCCLK为时钟输出引脚。

    软件部分如下:

    bit0 bit1 bit2 bit3 bit4 bit5 bit6 bit7 bit 8 bit9 bit 10

    word0: 0 0 0 1 1 1 0 0 0 1 1 //除去寄存器地址位后,由高位到低位为0xc7,

    word1: 1 0 0 0 1 1 1 1 0 0 1 //除去寄存器地址位后,由高到低为0x9e

    word2到word5依次按照上面的顺序排序。

    为了配置CDCE421A芯片,在软件中编了两个函数如下:

    void out0(uint16_t s) //此函数代表向CDCE421A写0,形参s代表写入0的个数

    { while(s!=0)

    { LPC_GPIO0->DATA |= 1<<4; //向SADATA线上写1

    T16B0_delay_us(3); //定时器查询延时3us

    LPC_GPIO0->DATA &= ~(1<<4); //向SADATA线上写0

    T16B0_delay_us(12); //延时12us

    s--; }

    }

    void out1(uint16_t s) //此函数代表向CDCE421A写1,形参s代表写入1的个数

    { while(s!=0)

    { LPC_GPIO0->DATA |= 1<<4; //向SADATA线上写1

    T16B0_delay_us(12); //定时器查询延时12us

    LPC_GPIO0->DATA &= ~(1<<4); //向SADATA线上写0

    T16B0_delay_us(3); //延时3us

    s--; }

    }

    部分主函数如下:

    LPC_GPIO0->DATA |= (1<<5); //CDCE线置高

    T16B0_delay_us(45); //延时3t时间,t=15us

    out0(2); //输入两个0

    out1(2);

    out0(2);//进入编程模式

    out0(3);

    out1(3);

    out0(3);

    out1(2);//写入word0,从bit0开始依次写入,即写3个0,3个1,3个0,2个1.

    word1-word5省略。

  • 硬件部分和软件部分如上,把32Mhz晶振两端的电容去除,输出很不稳定,在64MHZ和128Mhz两个频率点来回跳变,就是输不出来1024MHZ的时钟,除去3位寄存器地址位,word0-word5的配置字为c7 9e 27 7a 80 00,写入时序按照bit0到bit10的顺序写入。求求各位帮帮我吧,搞这个时钟已经很长时间了

  • 谢谢您的关注,请您帮我看下我的硬件原理图和软件程序有没有问题,谢谢您了