高频dds信号发生器幅度放大(简述dds信号发生器使用说明)
51驱动AD9850/AD9851—DDS信号发生器
AD9850/AD9851的简介
AD9850/AD9851模块是采用ADI应用最广泛的DDS(AD9850和AD9851)制作的模块。
主要功能特点:
*模块能够输出正弦波和方波,2个正弦波和2个方波输出。
AD9850:0-40MHz
AD9851:0-70MHz
频率在20-30MHz后谐波越来越大,波形会越来越不干净。
方波:0-1MHz
*采用70MHz的低通滤波器,使波形的SN比更好
*比较器的基准输入端电压由可变电阻产生,调节该电阻可以得到不同的占空比方波
*AD9850模块采用125MHz的有源晶振,AD9851模块采用30MHZ的有源晶振
AD9850和AD9851主要区别
*AD9850的时钟频率最高125MHz,AD9851的时钟频率最高180MHz。输出最高频率
AD9851要比AD9850高。
*AD9850没有6倍频,AD9851有
原理图
DDS输出波形的灵活性
关于DDS的其他性能这里暂不多叙。关于DDS的输出波形灵活性只要在DDS内部加上相应控制如调频控制FM、调相控制PM和调幅控制AM,即可以方便灵活地实现调频、调相和调幅功能,产生FSK、PSK、ASK和MSK等信号。另外,只要在DDS的波形存储器存放不同波形数据,就可以实现各种波形输出,如三角波、锯齿波和矩形波甚至是任意的波形。当DDS的波形存储器分别存放正弦和余弦函数表时,既可得到正交的两路输出。
DDS的原理框图:
AD9850/AD9851模块的输出波形:
输出正弦波和方波,
注:在输出正弦波的情况下,接线到方波输出的IO口,直接调节
蓝色的电位器可输出方波。
程序介绍
下面对主要的源代码进行简单的介绍
//初始化DDS
void init_dds(void)
{
clk=0;
load=0;
delay(2);
clk=1;
delay(2);
clk=0;
delay(5);
load=1;
delay(2);
load=0;
}
//写入40bit到DDS芯片,频率占用前32bit,相位暂不可调
void write_dds(unsigned long dds)
{
uchar i;
load=0;
clk=0;
for(i=0;i<40;i++)
{
clk=0;
delay(3);
if(dds&0x00000001)
dat=1;
else dat=0;
delay(2);
clk=1;
dds=dds>>l;
}
load=1;clk=0;delay(5);load=0;
}
//输出你要的频率,例如输出12.5M则调用write freq(12500000);
void write_freq(unsigned long freq)
{
unsigned long dds;
dds=42.94967296*freq;write_dds(dds);
}
实验接线
ad9850|51
--------|-----
w_clk|P2^2
fq_up|P2^1
rest|P2^0
bit_data|P1^7
当然,还要接电源供电
调试结果
下载好对应的代码
OUT1和OUT2端能测试到对应输出1KHz信号。如需测试方波,调节可变电位器,可在方波1和方波2端测试到方波。
AD9851的程序设计
其实软件和AD9850差不多,主要采用注意6clock打开还是关闭,其余的当成180M的时钟处理。
外部晶体为30M,6倍频打开,不像AD9854可以4—20倍频可选。在AD9851的基础上稍做修改就可搞定。
本次主要以AD9850为主做介绍
免责声明:本文由用户上传,如有侵权请联系删除!