zhenyifei 发表于 2013-4-5 11:00:30

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){}
}

lidan 发表于 2013-4-5 11:17:40

我的理解也是这样,是不是你的芯片问题

aaabbbad 发表于 2013-4-5 13:40:26

楼主,请问你知道如何用proteus仿真ad9850吗,或者怎么用分立元件搭也行啊,最近在做dds的信号源毕设,老师非得让仿真,郁闷啊,元件库没这个的。

zhenyifei 发表于 2013-4-5 16:28:58

aaabbbad 发表于 2013-4-5 13:40 static/image/common/back.gif
楼主,请问你知道如何用proteus仿真ad9850吗,或者怎么用分立元件搭也行啊,最近在做dds的信号源毕设,老师 ...

用分立元件我不会搭,仿真没试过,应该可以
请教一下:你的能输出方波么?怎么弄?

lxa0 发表于 2013-4-5 18:49:29

上个ad9850的资料看看?

zhenyifei 发表于 2013-4-5 20:45:06

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

王的秋天 发表于 2013-4-5 21:01:39

马克,回去看

zhenyifei 发表于 2013-4-6 12:50:10

沉了,再顶顶,搞了好久,还是不能输出正弦波,无语了

bg6nw 发表于 2013-4-6 14:33:26

你仔细看看英文版的PDF的第八页,第一个图,你是比较器的输入没接对地方,只要硬件没有错,能出正弦波,肯定能出方波。

zhenyifei 发表于 2013-4-6 16:41:35

bg6nw 发表于 2013-4-6 14:33 static/image/common/back.gif
你仔细看看英文版的PDF的第八页,第一个图,你是比较器的输入没接对地方,只要硬件没有错,能出正弦波,肯 ...

我看了N遍,还是没有发现哪里接错,恕我眼拙,请前辈详细指点一下,万分感谢

lxa0 发表于 2013-4-7 01:11:47

zhenyifei 发表于 2013-4-6 16:41 static/image/common/back.gif
我看了N遍,还是没有发现哪里接错,恕我眼拙,请前辈详细指点一下,万分感谢 ...

我看了一下中文的
里面只说可以输出方波
但是没有讲具体的
。。。。。

zhenyifei 发表于 2013-4-7 01:33:56

lxa0 发表于 2013-4-7 01:11 static/image/common/back.gif
我看了一下中文的
里面只说可以输出方波
但是没有讲具体的


我的理解是输出的正弦波经过内部比较器后输出方波,15、16脚为内部比较器的输入端,13、14为输出端

ProAbojio 发表于 2013-4-7 07:05:48

很久之前有过接触,半忘了,记得好像方波是高速比较器出来的,正弦的话ASK,PSK,AM,FM应该都可以,内置表是正弦表。傅里叶合成的话低速方波理论上是可行的,高速的话就有点欠补偿了。

bg6nw 发表于 2013-4-7 08:49:43

本帖最后由 bg6nw 于 2013-4-7 09:00 编辑

R150欧,还像是多余,官方的PDF里面没有

bg6nw 发表于 2013-4-7 09:23:53

官方英文版的第一页就有一个内部方框图,上面清清楚楚的画着一个比较器,你应该用示波器直接在15脚和16脚上面看一下,一个是中点电压,一个是跟正弦波输出一样的波形,如果有误,就是虚焊或者其他问题

zhenyifei 发表于 2013-4-7 18:38:49

bg6nw 发表于 2013-4-7 08:49 static/image/common/back.gif
R150欧,还像是多余,官方的PDF里面没有

这个只是预留的,实际中没焊上

zhenyifei 发表于 2013-4-7 18:39:52

bg6nw 发表于 2013-4-7 09:23 static/image/common/back.gif
官方英文版的第一页就有一个内部方框图,上面清清楚楚的画着一个比较器,你应该用示波器直接在15脚和16脚上 ...

这些方法早就试过了,没得啊

lxa0 发表于 2013-4-7 20:27:31

zhenyifei 发表于 2013-4-7 18:39 static/image/common/back.gif
这些方法早就试过了,没得啊

如果软件没问题的话
那就仔细的检查一下硬件部分
包括各个焊接点、插接头等等

zhenyifei 发表于 2013-4-11 17:14:29

正弦波终于自己调出来了,{:victory:}

BG4RFF 发表于 2013-4-16 01:07:19

把正弦波出来了低通后送到比较器就出方波

bg4gzu 发表于 2013-4-27 12:26:40

比较器有输出,是需要足够大的输入信号幅度的。很可能是你经过滤波之后信号幅度不够了。
其实很简单。你要的只是方波而已。把两个输出Iout都用上,这样就是互补输出。直接21脚通过一个电容耦合到15脚,20脚通过一个电容直接接到16脚。如果频率不太低,电容直接用1000p应该就可以了。如果还不行,那就15脚和16脚,外部用两个100K电阻对地,对电源分别接起来。给它一个偏置在1/2的中点电压。

谭春林 发表于 2013-4-28 13:23:30

我以前用过AD9850 方波是可以出的,而且出的很漂亮,我有程序,你给个邮箱,我发给你!

zhenyifei 发表于 2013-5-1 15:59:19

谭春林 发表于 2013-4-28 13:23 static/image/common/back.gif
我以前用过AD9850 方波是可以出的,而且出的很漂亮,我有程序,你给个邮箱,我发给你! ...

我已经调试出来了,thank you all the same

postek 发表于 2013-5-1 18:34:37

学习一下。

leifeng 发表于 2013-5-1 18:54:27

芯片坏了?

xaftp 发表于 2013-5-2 23:43:25

zhenyifei 发表于 2013-5-1 15:59 static/image/common/back.gif
我已经调试出来了,thank you all the same

最后是怎么解决的?

zqf441775525 发表于 2013-10-31 16:46:07

顶楼主,方波是怎么调出来的?
能分享一下吗?

skylinyk 发表于 2013-11-1 12:39:02

路过,。。。

盼汾 发表于 2013-11-21 21:33:18

aaabbbad 发表于 2013-4-5 13:40 static/image/common/back.gif
楼主,请问你知道如何用proteus仿真ad9850吗,或者怎么用分立元件搭也行啊,最近在做dds的信号源毕设,老师 ...

做实物把

luohui5003 发表于 2013-12-21 16:19:20

请教下楼主,你这边那个AD9850当时调试的时候是什么地方出现的问题,可否分享一下。我现在调试的时候正弦波都没有输出。都是相同的参考程序,谢谢!

zhenyifei 发表于 2013-12-21 18:24:06

luohui5003 发表于 2013-12-21 16:19
请教下楼主,你这边那个AD9850当时调试的时候是什么地方出现的问题,可否分享一下。我现在调试的时候正弦波 ...

我的模块程序都写好了,模块做的很好

luohui5003 发表于 2013-12-22 22:57:40

zhenyifei 发表于 2013-12-21 18:24
我的模块程序都写好了,模块做的很好

能否分享下驱动程序?多谢

盼汾 发表于 2014-2-26 14:19:59

luohui5003 发表于 2013-12-22 22:57
能否分享下驱动程序?多谢

能给我发一份吗谢谢邮箱512137801@qq.com

luohui5003 发表于 2014-2-26 16:49:10

盼汾 发表于 2014-2-26 14:19
能给我发一份吗谢谢邮箱

这是找的网上的 测试了下 可以使用。

盼汾 发表于 2014-2-28 18:51:52

luohui5003 发表于 2014-2-26 16:49
这是找的网上的 测试了下 可以使用。

好的谢谢了
页: [1]
查看完整版本: AD9850如何调试才能输出方波?希望各位指点一二,谢谢