搜索
bottom↓
回复: 16

39元的ad9850模块驱动起来了。

[复制链接]

出0入0汤圆

发表于 2010-12-28 11:44:23 | 显示全部楼层 |阅读模式
测试驱动如下,m16,icc编译。。。
看起来频谱很干净。波形很漂亮呵呵。

(原文件名:无标题1.jpg)


(原文件名:无标题2.jpg)


(原文件名:无标题3.jpg)


(原文件名:无标题4.jpg)


(原文件名:无标题5.jpg)

点击此处下载 ourdev_607608VZF8PC.pdf(文件大小:62K) (原文件名:原理图.pdf)


/************************************************************
串行驱动 AD9850
FRUD -- B0
REST -- B1
WCLK -- B2
d7------B3
数据接口 D7 -- A7(注意:串行方式时D0,D1接高电平,D2接地)
ADout 定义输出频率

****************************************************************/

#include <iom16v.h>
#include <macros.h>
#include <delay.h>
#include <avr_bit.h>

#define uint unsigned int
#define uchar unsigned char

#define SET_1(a,b) a|=(1<<b)
#define CLE_0(a,b) a&=~(1<<b)

#define FRUD_1 PORTB_0=1
#define FRUD_0 PORTB_0=0
#define REST_1 PORTB_1=1
#define REST_0 PORTB_1=0
#define WCLK_1 PORTB_2=1
#define WCLK_0 PORTB_2=0

#define ADout 10000000 // 定义 输出 频率 ADout
#define IO9850 PORTA
#define IO_1 PORTB_3=1
#define IO_0 PORTB_3=0


void initIO(void)
{
DDRA = 0xff;
DDRB = 0xff;
}


void init9850(void)
{
WCLK_0;
FRUD_0;
REST_1;
REST_0;

}

void UPDATE(void)
{
FRUD_1;
FRUD_0;
}

void sentcom(void)
{
sendword(0);
sendword(0);
sendword(1);
sendword(0);
sendword(0);
sendword(0);
sendword(0);
}

void sendword(uchar dat)
{
if(dat)
IO_1;
else
IO_0;

WCLK_1;
WCLK_0;
}



void startAD(void)
{ long unsigned int dat;
unsigned char i = 0;
UPDATE();
dat =(long int) ADout * 42.949672;
dat=dat>>1;
for(;i<32;i++)
{
sendword((uchar) (dat&1));
dat=dat>>1;
}

sentcom();
UPDATE();

}


int main(void)
{ initIO();
init9850();
startAD();
while(1)
{

NOP();
}
}

阿莫论坛20周年了!感谢大家的支持与爱护!!

你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。

出0入0汤圆

发表于 2010-12-28 11:59:47 | 显示全部楼层
请问楼主,你的模块输出波形的幅值是否稳定啊,当输出频率升高时,幅值是否降低了啊???

出0入300汤圆

发表于 2010-12-28 12:00:25 | 显示全部楼层
1.对于这种频谱仪,跟踪源不用的时候一定要关掉,我都帮人修过2支了(如果你改用5011)
2.至少要设法把谐波压到50
3.无论如何先接一个至少10db的衰减器在仪器上,9850需要搁置再进频谱仪,不然频谱仪可能随时烧掉里面的主混频器
4.最好不要用示波器的表笔插到频谱仪上
5.DDS是毒药,如果你钻,水很深,但掌握后也没什么用,所以希望可以适可而止
6.9850可以稳定超频到150MHz,这样频率可以出的高点,好点

出0入300汤圆

发表于 2010-12-28 12:01:40 | 显示全部楼层
这个程序极简易,没有频率修正,算出来的频率偏差较大

出0入0汤圆

 楼主| 发表于 2010-12-28 12:24:59 | 显示全部楼层
幅度随频率升高会降低
我的破频谱没有跟踪源,
现在谐波抑制40db。
一般频谱上的衰减都调到-30
这个频谱到我手上时就没有附件。
玩玩而已呵呵
的确很简易,测试用而已

出0入0汤圆

 楼主| 发表于 2010-12-28 12:26:07 | 显示全部楼层
回复【3楼】ibmx311
-----------------------------------------------------------------------

频率偏差是挺大的。正在琢磨。。。。

出0入0汤圆

发表于 2010-12-28 12:30:45 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-3-3 15:57:25 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-3-3 18:00:47 | 显示全部楼层
用查表法好些吧

出0入0汤圆

发表于 2011-5-4 14:44:31 | 显示全部楼层
顶楼主,正准备玩玩DDS。。。

出0入0汤圆

发表于 2011-5-11 00:33:41 | 显示全部楼层
哈哈 我也开始玩了

出0入0汤圆

发表于 2011-5-21 17:26:04 | 显示全部楼层
想问下楼主,你这个AD9850的模块。。最高能到多少M呢?输出波形怎么样呢?

出0入0汤圆

发表于 2011-6-22 15:00:35 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-7-14 22:04:32 | 显示全部楼层
我也准备玩玩dds,呵呵

出0入0汤圆

发表于 2011-7-14 22:58:32 | 显示全部楼层
不错.支持.我想要做很久了,一直拖着.最近打算弄起来

出0入0汤圆

发表于 2011-8-2 00:24:15 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-7-7 14:14:44 | 显示全部楼层
问下 出来的正弦波是正负对称的?我的板子调了好久了  不见效果啊
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-10-3 06:23

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表