Part Number:CDCE62002
我的SPI写内容如下:
SPI写入时序如下:
其中reg2的写入内容参考了以下一篇帖子:
http://billauer.co.il/blog/2010/10/cdce62002-pll-vco-registers-ram-eeprom/
如文章所说,我也在约100ms时延后重新发送了以上整段SPI数据,但芯片仍未锁定
(注:我也尝试过正常按顺序写入R0-R1-R2中的内容,芯片不能锁定)
我所使用的电路原理图如下:
(注:目前我通过飞线的方式,从pin31输入了LVCMOS类型的30MHz时钟信号,并未使用pin2输入,其中PD脚始终拉高)
Amy Luo:
您好,
您 Register 0配置的好像不对,根据datasheet 寄存器说明,如果输入LVCMOS类型的时钟信号,应配置Register 0 [1:0]bit 为11,且 Smart MUX配置为10 – REF_IN Select。
建议您检查下寄存器值是否符合期望值,重新写入芯片看输出怎样?
,
? ?:
您好,我今天也发现了这个问题,现已将这个问题修改,现在写入的数据如下:
同时我将内部环路滤波调整为了外部环路滤波,具体滤波参数如下:
现在可以在EXT_LFP管脚读到一个高电平信号,但锁相环仍未锁定,且也没有输出
在进行以上测试前,已通过指令回读了寄存器数据,确定数据已经成功写入芯片中
,
? ?:
抱歉,缺少了一张图片,目前我配置的参数如下:
,
Amy Luo:
看上面寄存器值也不对,REF_IN输入LVCMOS类型的时钟信号,Register0的低四位应该是1011
,
? ?:
您好,感谢您的回复,确实这里是没有写正确的,目前我的数据写入内容如下:
SPI上的写入指令如下:
从芯片上回读到的SPI数据如下:
共有七段数据,其中后三段为回读的SPI内容,具体数值分别为如下:
R0回读内容为:0D000348 R1回读内容为:BFD44084
R2回读内容为:4FD44084 ,可写入的位都是正确的
发现R1回读到的内容地址位出现了问题,遂把代码改为如下,只回读R1内容:
现回读到的内容如下:
发现有一个回读SPI数据段没有任何数据,考虑第一次回读时的同位置SPI数据确实是有问题的
此次R1的回读数据为:8006C1C8 ,与写入数据8006C1C9不同
看数据手册可知,R1中不同的那一位是只读位,不能写入,所以R1地址也是正确的
在此状态下,芯片依旧未能正确输出时钟信号,事实上输出端没有任何信号
此时R2中的PD位没有配置其翻转
输入时钟如下:
此时外部PD管脚始终保持拉高状态,检查外围供电全部正常
(注,为了芯片的SPI_OUT能正常输出,我将VCC_OUT通过飞线的方式供了3.3V的电,如果不供电,会导致芯片的SPI_MISO无法正常工作)
,
Amy Luo:
PD拉高时上电,EEPROM的内容会写入到设备寄存器中,默认值是 register 0 0x72A000E0, register 1 0x8389A061,您可以先读取默认寄存器值吗?看是否可以正确读出?
,
? ?:
您好,这里是可以正常读出的,两个地址内的默认值都正确
,
Amy Luo:
感谢您的反馈!您可以再明确下您的寄存器配置值吗?
,
? ?:
好的,目前我的数据写入是这样的:
该段数据以100ms为周期,不停的循环写入:
此时,我板子上的芯片,可以观测到lockdown管脚拉高,即PIN32-PLL_LOCK管脚拉高:
但令我最为困惑的,是输出管脚仍然没有任何信号
此时芯片的时钟输入为AUX_IN的50MHz标准信号源输入,使用外部环路滤波
,
? ?:
然后我又尝试了另外一块一样的板子,程序完全相同的情况下,lockdown管脚没有拉高,也没有信号输出
输入的时钟信号如下
,
Amy Luo:
您先把PD拉低,编写寄存器后再把PD拉高,读取寄存器值是否发生了改变?因为我看下下面链接的解释,此时寄存器会复位至开机默认值:
https://e2e.ti.com/support/clock-timing-group/clock-and-timing/f/clock-timing-forum/350062/cdce62002—register-programming-in-power-down?tisearch=e2e-sitesearch&keymatch=CDCE62002%25252525252525252520%25252525252525252520PD#
? ? 说:此时芯片的时钟输入为AUX_IN的50MHz标准信号源输入
AUX_IN输入是负载电容8pF~10pF的 AT-Cut晶振输入,频率是 2 to 42 MHz,50MHZ不在这个频率范围内。
,
? ?:
您好,我将50MHz的时钟输入换成了30MHz的时钟输入,目前SPI的写入数据如下:
同时我回读了PD拉高前后的芯片内数据,如下:
总回读数据,共11段
从回读数据来看,PD在拉低时,对R0和R1写入数据,在PD未拉高之前,不会被重置,且在PD拉高之后,也不会被重置
我认为可能是输入时钟信号的问题,请问对于该芯片,应该怎样输入时钟信号,才能够让它正常工作呢
,
? ?:
您好,感谢您的帮助,我已解决问题
真正的问题是,芯片的PD在拉高拉低时,对应的功耗会发生改变,我的整板功耗无法支持功耗升高,导致芯片供电出现了问题,我将板上其他芯片的供电暂时切断后,芯片工作就正常了
再次感谢您的帮助
,
Amy Luo:
很高兴您的问题得到解决,非常感谢您的反馈