ADF4350设置频率函数【原创】
0赞
发表于 7/27/2011 10:52:43 PM
阅读(33038)
/*设置ADF4350频率函数*/
#define FOSC 10M
#define R 10
#define CHANNEL 100//KHz
#define FREQ 275000//275M
u8 Reg[6];
void setfreq(u32 freq)
{
u8 div,div2,clk_div;
u16 n,frac,mod;
u32 fref1,fref2,fref;
fref=FOSC/R;
clk_div=(fref/125)+1;
//---DIV
if(freq<FREQ)
{
div=4;
div2=16;
}
else if(freq<(FREQ*2))
{
div=3;
div2=8;
}
else if(freq<(FREQ*4))
{
div=2;
div2=4;
}
else if(freq<(FREQ*8))
{
div=1;
div2=2;
}
else
{
div=0;
div2=1;
}
//---MOD
mod=(fref/div2/CHANNEL)
if(mod<2)mod =2;
else if(mod>4095) mod=4095;
//---N&FRAC
fref2=freq>>div;
n=freq/fref2;
fref1=freq-n*fref2;
frac=fref1*mod/f2;
//---REG
Reg[0]=frac<<3;
Reg[0]=(u32)n<<15;
Reg[1]&=0xffff8007;
Reg[1]|=(((u32)mod)<<3);
Reg[2]&=0xff003fff;
Reg[2]|=(((u32)R<<14);
Reg[4]&=0xff800fff;
Reg[4]|=(((u32)clk<<12);
Reg[4]|=(((u32)div<<20);
update_Reg(Reg);//更新寄存器
}
之前说了要发个设置频率的,最近有点忙,现在补上,有什么不对,大家指点下
有什么不明白的,也可以参考之前的几篇
过几天在发个AD8318的,呵呵,闪了
