分享一个DDS数字频率合成器AD9850的函数
chaily945202013/08/15电子技术 IP:广东
这两天在测试AD9850数字频率合成器模块,该DDS可以在125MHz晶振下稳定输出1Hz-40MHz的正弦波信号,频率分辩率为0.03Hz,换而言之,在整个输出范围内,频率可以以0.03Hz为步进单位改变。
以下是测试的图片和使用的函数。实际模块输出信号已由9850内置的高速比较器整形为方波输出。
合并图.jpg

1.5M.jpg 顺便上一个1.5MHz的测试图,由于晶振误差,实际是在函数里面写了一个1.49999MHz的值才输出此信号

测试程序里面可以任意改变函数的输出频率值(当然是在范围内的)。图中程序是以15000.5Hz为输出频率,实际因为晶振有些许误差,导致频率输出有误差。
以下是分享的程序代码(完整简洁的并口驱动代码):

//硬件连接使用P1口的8位并口与AD9851的8位并口直接连接
#include <reg51.h>
#define ulong unsigned long
sbit wclk=P3^0;  //定义数据传输控制位
sbit ud=P3^1; //定义频率刷新控制位
sbit reset=P3^2; //定义复位端口
ulong temp; //频率控制字值
void output(float);


void main()
{
P3=0x00[s:9]1=0x00;
reset=1;reset=1;reset=0; //复位模块

output(15000.5);   //以输出15000.5Hz测试,实际输出15000.6Hz,经查是由晶振误差引起。 想要输出什么频率直接在表达式里面写就行


        while(1);
}

void output(float temp0) //频率输出函数。这里采用浮点函数,因为输出频率需要精确到小数点后
{
temp=temp0*34.35973837; //计算控制字值temp,34.35...是由2的32次方除以晶振频率(4294967296/125000000)得来
P1=0x00;wclk=1;wclk=0; //设定工作模式等
P1=temp/16777216;wclk=1;wclk=0;  //对控制字值除以二进制的1 00000000 00000000 00000000求模送入控制字第一字节
P1=temp%16777216/65536;wclk=1;wclk=0; //对控制字值求余以后对下一字节求模送入第二字节
P1=temp%65536/256;wclk=1;wclk=0;  //下一个字节
P1=temp%256;wclk=1;wclk=0; //最后一个字节
ud=1;ud=0;  //刷新频率输出
}
来自:电子信息 / 电子技术
6
已屏蔽 原因:{{ notice.reason }}已屏蔽
{{notice.noticeContent}}
~~空空如也
yanli12321
11年6个月前 IP:未同步
560318
最近我也在做一个基于AVR 和 AD9850的信号发生器,为了节省IO口使用了串口驱动,速度也不错
AD9850标称能输出0-70MHZ的正弦波,但经过我的实测波形超过20MHZ就比较渣渣了......方波不能超过1MHZ
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
novakon
11年6个月前 IP:未同步
560319
回 1楼(yanli12321) 的帖子
时间分辨率有限,出来的波形当然不会那么完美。要加滤波

加了滤波得到的正弦波,再用电压比较器(内置或者外置的)产生方波,这个方波就漂亮了
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
chaily94520作者
11年6个月前 IP:未同步
560320
回 1楼(yanli12321) 的帖子
能输出70MHz的是AD9851不是9850喔~~ 我用的测试模块方波达到10MHz才开始明显失真。正弦波输出的话出20MHz以上确实开始变差,40MHz输出的时候波形畸变厉害。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
yanli12321
11年6个月前 IP:未同步
560321
回 2楼(novakon) 的帖子
我用的DDS模块上带有低通滤波,以后找时间试试外置高速比较器(手头刚好有俩MAX913)搞方波
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
刘海石
11年6个月前 IP:未同步
560767
回 3楼(chaily94520) 的帖子
加LPF就ok了
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论

想参与大家的讨论?现在就 登录 或者 注册

所属专业
上级专业
同级专业
chaily94520
进士 笔友
文章
10
回复
82
学术分
0
2012/03/19注册,1年8个月前活动
暂无简介
主体类型:个人
所属领域:无
认证方式:邮箱
IP归属地:未同步
插入公式
评论控制
加载中...
文号:{{pid}}
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

加载中...
详情
详情
推送到专栏从专栏移除
设为匿名取消匿名
查看作者
回复
只看作者
加入收藏取消收藏
收藏
取消收藏
折叠回复
置顶取消置顶
评学术分
鼓励
设为精选取消精选
管理提醒
编辑
通过审核
评论控制
退修或删除
历史版本
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{format('YYYY/MM/DD HH:mm:ss', toc)}}