AD9850介绍及应用
0赞
发表于 5/17/2012 9:25:57 PM
阅读(2749)
AD9850是AD公司生产的最高时钟为125 MHz、采用先进的CMOS技术的直接频率合成器,主要由可编程DDS系统、高性能模数变换器(DAC)和高速比较器3部分构成,能实现全数字编程控制的频率合成。内含可编程DDS 系统和高速比较器,可实现全数字编程控制的频率合成。可编程DDS系统的核心是相位累加器,由一个加法器和一个N位相位寄存器组成,N 一般为24~32。每来一个外部参考时钟,相位寄存器便以步长M递加。相位寄存器的输出与相位控制字相加后可输入到正弦查询表地址上。正弦查询表包含一个正弦波周期的数字幅度信息,每一个地址对应正弦波中0°~360°范围的一个相位点。查询表把输入地址的相位信息映射成正弦波幅度信号,然后驱动DAC 输出模拟量。 下面是编的程序。
#includesbit ad9850_fq_up =P1^1; //接ad9850的fq_up脚 sbit ad9850_bit_data =P1^2; //接ad9850的D7脚 sbit ad9850_w_clk =P1^3; //接ad9850的w_clk脚 //***************************************************// // 向ad9850中写命令(串口) // //---------------------------------------------------// void ad9850_wr_com(unsigned char w, double frequence) { unsigned char i; unsigned long int M; //计算频率值 frequence=frequence*85.89934592+0.5; //适合50M晶振 f=fclk*M/2^32即M=f*2^32/fclk M=frequence; //频率控制字 ad9850_w_clk=0; //初始化 ad9850_fq_up=0; //写频率控制字 for(i=0;i<32;i++) //连续写入32位频率控制字 { ad9850_w_clk=0; ad9850_bit_data=(bit)((M>>i)&0x0001); ad9850_w_clk=1; //上升沿写入数据 } //写相位控制字 for(i=0;i<8;i++) //需要w<=32 相位有180、90、45、22.5、11.25以及它们的组合。 { ad9850_w_clk=0; ad9850_bit_data=(bit)(w>>i)&0x01; ad9850_w_clk=1; //上升沿写入数据 } //移入始能 ad9850_fq_up=0; ad9850_fq_up=1; //上升沿将40位数一次性打入数据寄存器 } void main() { ad9850_wr_com(0,1000000); while(1); }
