39元的ad9850模块驱动起来了。
测试驱动如下,m16,icc编译。。。看起来频谱很干净。波形很漂亮呵呵。
http://cache.amobbs.com/bbs_upload782111/files_35/ourdev_607603KB5MO7.jpg
(原文件名:无标题1.jpg)
http://cache.amobbs.com/bbs_upload782111/files_35/ourdev_607604OI96ZT.jpg
(原文件名:无标题2.jpg)
http://cache.amobbs.com/bbs_upload782111/files_35/ourdev_607605MK9F6A.jpg
(原文件名:无标题3.jpg)
http://cache.amobbs.com/bbs_upload782111/files_35/ourdev_607606RMZ4SZ.jpg
(原文件名:无标题4.jpg)
http://cache.amobbs.com/bbs_upload782111/files_35/ourdev_607607SVILTY.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();
}
} 请问楼主,你的模块输出波形的幅值是否稳定啊,当输出频率升高时,幅值是否降低了啊??? 1.对于这种频谱仪,跟踪源不用的时候一定要关掉,我都帮人修过2支了(如果你改用5011)
2.至少要设法把谐波压到50
3.无论如何先接一个至少10db的衰减器在仪器上,9850需要搁置再进频谱仪,不然频谱仪可能随时烧掉里面的主混频器
4.最好不要用示波器的表笔插到频谱仪上
5.DDS是毒药,如果你钻,水很深,但掌握后也没什么用,所以希望可以适可而止
6.9850可以稳定超频到150MHz,这样频率可以出的高点,好点 这个程序极简易,没有频率修正,算出来的频率偏差较大 幅度随频率升高会降低
我的破频谱没有跟踪源,
现在谐波抑制40db。
一般频谱上的衰减都调到-30
这个频谱到我手上时就没有附件。
玩玩而已呵呵
的确很简易,测试用而已 回复【3楼】ibmx311
-----------------------------------------------------------------------
频率偏差是挺大的。正在琢磨。。。。 mark mark 用查表法好些吧 顶楼主,正准备玩玩DDS。。。 哈哈 我也开始玩了 想问下楼主,你这个AD9850的模块。。最高能到多少M呢?输出波形怎么样呢? mark 我也准备玩玩dds,呵呵 不错.支持.我想要做很久了,一直拖着.最近打算弄起来 mark 问下 出来的正弦波是正负对称的?我的板子调了好久了不见效果啊
页:
[1]