您好,我在使用CDCE62002的过程中,利用CDCE62002 EVM软件生成相应的寄存器值,在利用FPGA通过SPI写寄存器时有点问题,写Register0时,通过读寄存器指令能够正常的读出寄存器内的值,在写Register1时,写完后读出的寄存器值却是Register0,而且芯片也没有锁定,在ISE利用Chipscope看,spi时序上没有问题,现在搞不清楚问题出在哪里,需要您的帮助。寄存器的值为Register0,F60FD0A0,Register1,E3856011。
Robin Feng:
你寄存器是否有全部写完,看是否锁定?
你读命令是否有32位全部发完了,读写之前片选是否有拉高超过20nS以上?
Xuelian Ji1:
回复 Robin Feng:
是需要register0 1 2都要写吗?写入的32bits数据都代表什么?谢谢
Kailyn Chen:
回复 Xuelian Ji1:
32bit指的是4位寄存器地址+28bit data,一共是32bit。
Xuelian Ji1:
回复 Kailyn Chen:
那配置的时候需要寄存器0 1 2都写入数据吗?还是只配置寄存器0 1就可以了?
我根据evm软件生成的寄存器值,配置后,输出频率是原设定频率的1.8倍,这是什么原因?
Kailyn Chen:
回复 Xuelian Ji1:
Xuelian Ji1那配置的时候需要寄存器0 1 2都写入数据吗?还是只配置寄存器0 1就可以了? 我根据evm软件生成的寄存器值,配置后,输出频率是原设定频率的1.8倍,这是什么原因?
Xuelian Ji1:
回复 Kailyn Chen:
我把PD外部引脚拉高了
输入频率10M,输出频率要150M差分
寄存器0配置为32260070
寄存器1配置为8385a001
寄存器2没有单独配置
这样配置有问题吗?Kailyn Chen:
回复 Xuelian Ji1:
register 0配置的有问题,这是用GUI 配置得到的结果:
可以看出,output divider=4, prescaler=3, reference divider=1(如果使用PRI输入),input divider=1,VCO frequency=1800Mhz,feeback divider=60.
因为你这里采用的是AUX输入,那么得到的寄存器配置结果为
REGISTERS0 32A000A01 8385A0012 00000002
点击黄色MUX模块,如果选择auto的话,得到的结果为
REGISTERS
0 32A000E01 8385A0012 00000002
Xuelian Ji1:
回复 Kailyn Chen:
根据您给的寄存器值,重新配置后还是输出270M时钟,其他还有什么地方需要注意的吗?
Xuelian Ji1:
回复 Kailyn Chen:
把输入参考的时钟替换成25MHz就可以输出正确的频率了,手册写的范围应该包括10MHz的,是不是只能用25MHz,不能使用其他频率的晶振?
Kailyn Chen:
回复 Xuelian Ji1:
晶振10M没问题,这个不用怀疑,输入范围为2M~42MHz。
采用10M的时候,晶振能正常起振吗?另外,有没有换块新的试下,是不是晶振本身不稳定的原因导致。