您好,我是一名在校大学生,最近因为教师的项目需求,需要制作一个2.4GHz
的单频点的射频信号源,在查阅了各大公司的频率合成器后,最终选择了贵公司的ADF4360-0
,目前我购买了贵公司的芯片以及相应的开发板,有4360-0
和4350
的开发板,其它的参考晶振什么的,我都准备好了,根据官网的资料和仿真工具,外围威廉希尔官方网站
已确立的差不多。目前困扰我最大的就是有关于程序的!我想问以下几个问题:
1
、代码怎么写,看了官网的通用模板,自己对单片机不太熟悉,不知道具体要更改通用代码的哪些数据!
2
、我又看了ADF4360-2
和ADF4360-8
的参考代码,根据它们两个的代码,写了4360-0
的代码(下面有),但是相比较官网给的通用代码,我感觉我写出来的代码太简单了,是不是因为它们两个芯片的代码是基于开发板,所有只需要很简单的代码就能输出相应的频率。
3
、单片机我想用的是C8051F300
,不知道贵公司能否帮我写一个4360-0
产生2.4GHz
的信号,或者告诉我在通用参考代码里怎么改
备注:我写的用C8051F300控制4360-0产生2.4GHz参考代码,输入频率16MHz 鉴相频率8MHz N:300 P:16 B:18 A:12 大神帮我看看啊
Descrip
tion :
Test condition:
Hardware: ADF4360-8 Evaluation Board
RF VCO Output Frequency:2400.00000MHz
PFD Frequency: 8000.00000KHz
REF IN Frequency: 16.00000MHz
RF Prescaler: 16/17
Internal Divide By 2 Selected
Output Divide By 2 Selected
N:300 P:16 B:18 A:12
*********************************************************************/
#include
#include
***it DATA=P0^0;
***it SCLOCK=P0^1;
***it LATCH=P0^6;
***it CE=P0^7;
void delay(int);
void main()
{
unsigned long int registe0,registe1,registe2,temp1;
int i;
registe0=0x300009; //R Register
registe1=0x4ff104; //C Register
registe2=0xc01232; //N Register
temp1=0x800000;
CE=1; //Update R Latch, the writing order should be R, C, N
SCLOCK=1;
DATA=0;
LATCH=0;
for(i=0;i<24;i++)
{
if((temp1®iste0)==0x0)
DATA=0;
else
DATA=1;
SCLOCK=0;
SCLOCK=1;
temp1=temp1>>1;
}
temp1=0x800000;
LATCH=1;
LATCH=0;
for(i=0;i<24;i++) //Update C Latch
{
if((temp1®iste1)==0x0)
DATA=0;
else
DATA=1;
SCLOCK=0;
SCLOCK=1;
temp1=temp1>>1;
}
temp1=0x800000;
LATCH=1;
LATCH=0;
delay(5000); //interval between programming C and N register needs to be at least 5ms
for(i=0;i<24;i++) //Update N Register
{
if((temp1®iste2)==0x0)
DATA=0;
else
DATA=1;
SCLOCK=0;
SCLOCK=1;
temp1=temp1>>1;
}
temp1=0x800000;
LATCH=1;
while(1);
}
void delay(int length)
{
while (length >=0)
length--;
}