当前位置:首页 > 百科大全

高频dds信号发生器幅度放大(简述dds信号发生器使用说明)

2022-11-19 14:12:57

  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为主做介绍

免责声明:本文由用户上传,如有侵权请联系删除!