AD9850如何调试才能输出方波?希望各位指点一二,谢谢
最近在玩AD9850,我是直接用网上别人的简单驱动程序,在BNC P11处可以用示波器测得很漂亮的正弦波,可是P12、P13处却测不到输出的方波,我是参照官方的Datasheet画的原理图,按照我对资料的理解,把P11输出的正弦波加到AD9850的15、16脚,经过芯片本身内置的高速比较器后,可以在13、14脚输出方波的,可是我的无论如何都没有方波输出,哎!!!伤心啊,求各位前辈给小弟指点一下,真诚地谢谢大家!!!!{:handshake:}用别人的程序如下:
# include <reg52.h>
# include <stdio.h>
# include <intrins.h>
sbit ad9850_w_clk =P0^2;//P2.2口接ad9850的w_clk脚/PIN7
sbit ad9850_fq_up =P0^1;//P2.1口接ad9850的fq_up脚/PIN8
sbit ad9850_rest =P0^0;//P2.0口接ad9850的rest脚/PIN22
//P1为8位数据口
//***************************************************//
// ad9850复位(并口模式) //
//---------------------------------------------------//
void ad9850_reset()
{
ad9850_w_clk=0;
ad9850_fq_up=0;
//rest信号
ad9850_rest=0;
ad9850_rest=1;
ad9850_rest=0;
}
//***************************************************//
// ad9850复位(并口模式) //
//---------------------------------------------------//
void ad9850_reset_serial()
{
ad9850_w_clk=0;
ad9850_fq_up=0;
//rest信号
ad9850_rest=0;
ad9850_rest=1;
ad9850_rest=0;
//w_clk信号
ad9850_w_clk=0;
ad9850_w_clk=1;
ad9850_w_clk=0;
//fq_up信号
ad9850_fq_up=0;
ad9850_fq_up=1;
ad9850_fq_up=0;
}
//***************************************************//
// 向ad9850中写命令与数据(并口) //
//---------------------------------------------------//
void ad9850_wr_parrel(unsigned char w0,double frequence)
{
unsigned char w;
long int y;
double x;
//计算频率的HEX值
x=4294967295/100;//适合100M晶振
//如果时钟频率不为100MHZ,修改该处的频率值,单位MHz !!!
frequence=frequence/1000;
frequence=frequence*x;
y=frequence;
//写w0数据
AD9850_FQUD_CLR ;
wdata=0x00 ;//写w0
GPIO_Write(AD9850_DATA_PORT ,wdata) ;
AD9850_WCLK_SET ;
AD9850_WCLK_CLR ;
wdata=y>>24 ;//写w1
GPIO_Write(AD9850_DATA_PORT ,wdata) ;
AD9850_WCLK_SET ;
AD9850_WCLK_CLR ;
wdata=y>>16 ;//写w2
GPIO_Write(AD9850_DATA_PORT ,wdata) ;
AD9850_WCLK_SET ;
AD9850_WCLK_CLR ;
wdata=y>>8 ;//写w3
GPIO_Write(AD9850_DATA_PORT ,wdata) ;
AD9850_WCLK_SET ;
AD9850_WCLK_CLR ;
wdata=y>>0 ;//写w4
GPIO_Write(AD9850_DATA_PORT ,wdata) ;
AD9850_WCLK_SET ;
AD9850_WCLK_CLR ;
AD9850_FQUD_SET ;//移入使能
要产生1000hz的正弦
}
//***************************************************//
// 测试程序1000Hz //
//---------------------------------------------------//
main()
{
P0=0x00;
P1=0x00;
P2=0x00;
P3=0x00;
//---------------------------------------------------//
//并行写1000Hz程序
ad9850_reset();
ad9850_wr_parrel(0x00,1000);
//---------------------------------------------------//
while(1){}
} 我的理解也是这样,是不是你的芯片问题 楼主,请问你知道如何用proteus仿真ad9850吗,或者怎么用分立元件搭也行啊,最近在做dds的信号源毕设,老师非得让仿真,郁闷啊,元件库没这个的。 aaabbbad 发表于 2013-4-5 13:40 static/image/common/back.gif
楼主,请问你知道如何用proteus仿真ad9850吗,或者怎么用分立元件搭也行啊,最近在做dds的信号源毕设,老师 ...
用分立元件我不会搭,仿真没试过,应该可以
请教一下:你的能输出方波么?怎么弄? 上个ad9850的资料看看? lxa0 发表于 2013-4-5 18:49 static/image/common/back.gif
上个ad9850的资料看看?
好的!!!!!{:handshake:}
上传不了,贴个网址给您吧
英文版:http://wenku.baidu.com/view/f1caa888680203d8ce2f242b.html
中文版:http://wenku.baidu.com/view/4fc47a84b9d528ea81c77995.html 马克,回去看 沉了,再顶顶,搞了好久,还是不能输出正弦波,无语了 你仔细看看英文版的PDF的第八页,第一个图,你是比较器的输入没接对地方,只要硬件没有错,能出正弦波,肯定能出方波。 bg6nw 发表于 2013-4-6 14:33 static/image/common/back.gif
你仔细看看英文版的PDF的第八页,第一个图,你是比较器的输入没接对地方,只要硬件没有错,能出正弦波,肯 ...
我看了N遍,还是没有发现哪里接错,恕我眼拙,请前辈详细指点一下,万分感谢 zhenyifei 发表于 2013-4-6 16:41 static/image/common/back.gif
我看了N遍,还是没有发现哪里接错,恕我眼拙,请前辈详细指点一下,万分感谢 ...
我看了一下中文的
里面只说可以输出方波
但是没有讲具体的
。。。。。 lxa0 发表于 2013-4-7 01:11 static/image/common/back.gif
我看了一下中文的
里面只说可以输出方波
但是没有讲具体的
我的理解是输出的正弦波经过内部比较器后输出方波,15、16脚为内部比较器的输入端,13、14为输出端 很久之前有过接触,半忘了,记得好像方波是高速比较器出来的,正弦的话ASK,PSK,AM,FM应该都可以,内置表是正弦表。傅里叶合成的话低速方波理论上是可行的,高速的话就有点欠补偿了。 本帖最后由 bg6nw 于 2013-4-7 09:00 编辑
R150欧,还像是多余,官方的PDF里面没有 官方英文版的第一页就有一个内部方框图,上面清清楚楚的画着一个比较器,你应该用示波器直接在15脚和16脚上面看一下,一个是中点电压,一个是跟正弦波输出一样的波形,如果有误,就是虚焊或者其他问题 bg6nw 发表于 2013-4-7 08:49 static/image/common/back.gif
R150欧,还像是多余,官方的PDF里面没有
这个只是预留的,实际中没焊上 bg6nw 发表于 2013-4-7 09:23 static/image/common/back.gif
官方英文版的第一页就有一个内部方框图,上面清清楚楚的画着一个比较器,你应该用示波器直接在15脚和16脚上 ...
这些方法早就试过了,没得啊 zhenyifei 发表于 2013-4-7 18:39 static/image/common/back.gif
这些方法早就试过了,没得啊
如果软件没问题的话
那就仔细的检查一下硬件部分
包括各个焊接点、插接头等等 正弦波终于自己调出来了,{:victory:} 把正弦波出来了低通后送到比较器就出方波 比较器有输出,是需要足够大的输入信号幅度的。很可能是你经过滤波之后信号幅度不够了。
其实很简单。你要的只是方波而已。把两个输出Iout都用上,这样就是互补输出。直接21脚通过一个电容耦合到15脚,20脚通过一个电容直接接到16脚。如果频率不太低,电容直接用1000p应该就可以了。如果还不行,那就15脚和16脚,外部用两个100K电阻对地,对电源分别接起来。给它一个偏置在1/2的中点电压。 我以前用过AD9850 方波是可以出的,而且出的很漂亮,我有程序,你给个邮箱,我发给你! 谭春林 发表于 2013-4-28 13:23 static/image/common/back.gif
我以前用过AD9850 方波是可以出的,而且出的很漂亮,我有程序,你给个邮箱,我发给你! ...
我已经调试出来了,thank you all the same 学习一下。 芯片坏了? zhenyifei 发表于 2013-5-1 15:59 static/image/common/back.gif
我已经调试出来了,thank you all the same
最后是怎么解决的? 顶楼主,方波是怎么调出来的?
能分享一下吗? 路过,。。。 aaabbbad 发表于 2013-4-5 13:40 static/image/common/back.gif
楼主,请问你知道如何用proteus仿真ad9850吗,或者怎么用分立元件搭也行啊,最近在做dds的信号源毕设,老师 ...
做实物把 请教下楼主,你这边那个AD9850当时调试的时候是什么地方出现的问题,可否分享一下。我现在调试的时候正弦波都没有输出。都是相同的参考程序,谢谢! luohui5003 发表于 2013-12-21 16:19
请教下楼主,你这边那个AD9850当时调试的时候是什么地方出现的问题,可否分享一下。我现在调试的时候正弦波 ...
我的模块程序都写好了,模块做的很好 zhenyifei 发表于 2013-12-21 18:24
我的模块程序都写好了,模块做的很好
能否分享下驱动程序?多谢 luohui5003 发表于 2013-12-22 22:57
能否分享下驱动程序?多谢
能给我发一份吗谢谢邮箱512137801@qq.com 盼汾 发表于 2014-2-26 14:19
能给我发一份吗谢谢邮箱
这是找的网上的 测试了下 可以使用。 luohui5003 发表于 2014-2-26 16:49
这是找的网上的 测试了下 可以使用。
好的谢谢了
页:
[1]