搜索
bottom↓
回复: 34

AD9850如何调试才能输出方波?希望各位指点一二,谢谢

[复制链接]

出0入0汤圆

发表于 2013-4-5 11:00:30 | 显示全部楼层 |阅读模式
最近在玩AD9850,我是直接用网上别人的简单驱动程序,在BNC P11处可以用示波器测得很漂亮的正弦波,可是P12、P13处却测不到输出的方波,我是参照官方的Datasheet画的原理图,按照我对资料的理解,把P11输出的正弦波加到AD9850的15、16脚,经过芯片本身内置的高速比较器后,可以在13、14脚输出方波的,可是我的无论如何都没有方波输出,哎!!!伤心啊,求各位前辈给小弟指点一下,真诚地谢谢大家!!!!


用别人的程序如下:

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

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

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2013-4-5 11:17:40 | 显示全部楼层
我的理解也是这样,是不是你的芯片问题

出0入0汤圆

发表于 2013-4-5 13:40:26 | 显示全部楼层
楼主,请问你知道如何用proteus仿真ad9850吗,或者怎么用分立元件搭也行啊,最近在做dds的信号源毕设,老师非得让仿真,郁闷啊,元件库没这个的。

出0入0汤圆

 楼主| 发表于 2013-4-5 16:28:58 | 显示全部楼层
aaabbbad 发表于 2013-4-5 13:40
楼主,请问你知道如何用proteus仿真ad9850吗,或者怎么用分立元件搭也行啊,最近在做dds的信号源毕设,老师 ...

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

出0入0汤圆

发表于 2013-4-5 18:49:29 | 显示全部楼层
上个ad9850的资料看看?

出0入0汤圆

 楼主| 发表于 2013-4-5 20:45:06 | 显示全部楼层
lxa0 发表于 2013-4-5 18:49
上个ad9850的资料看看?

    好的!!!!!

上传不了,贴个网址给您吧
英文版:http://wenku.baidu.com/view/f1caa888680203d8ce2f242b.html
中文版:http://wenku.baidu.com/view/4fc47a84b9d528ea81c77995.html

出0入0汤圆

发表于 2013-4-5 21:01:39 来自手机 | 显示全部楼层
马克,回去看

出0入0汤圆

 楼主| 发表于 2013-4-6 12:50:10 | 显示全部楼层
沉了,再顶顶,搞了好久,还是不能输出正弦波,无语了

出0入0汤圆

发表于 2013-4-6 14:33:26 | 显示全部楼层
你仔细看看英文版的PDF的第八页,第一个图,你是比较器的输入没接对地方,只要硬件没有错,能出正弦波,肯定能出方波。

出0入0汤圆

 楼主| 发表于 2013-4-6 16:41:35 | 显示全部楼层
bg6nw 发表于 2013-4-6 14:33
你仔细看看英文版的PDF的第八页,第一个图,你是比较器的输入没接对地方,只要硬件没有错,能出正弦波,肯 ...

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

出0入0汤圆

发表于 2013-4-7 01:11:47 | 显示全部楼层
zhenyifei 发表于 2013-4-6 16:41
我看了N遍,还是没有发现哪里接错,恕我眼拙,请前辈详细指点一下,万分感谢 ...

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

出0入0汤圆

 楼主| 发表于 2013-4-7 01:33:56 | 显示全部楼层
lxa0 发表于 2013-4-7 01:11
我看了一下中文的
里面只说可以输出方波
但是没有讲具体的

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

出0入0汤圆

发表于 2013-4-7 07:05:48 | 显示全部楼层
很久之前有过接触,半忘了,记得好像方波是高速比较器出来的,正弦的话ASK,PSK,AM,FM应该都可以,内置表是正弦表。傅里叶合成的话低速方波理论上是可行的,高速的话就有点欠补偿了。

出0入0汤圆

发表于 2013-4-7 08:49:43 来自手机 | 显示全部楼层
本帖最后由 bg6nw 于 2013-4-7 09:00 编辑

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

出0入0汤圆

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

出0入0汤圆

 楼主| 发表于 2013-4-7 18:38:49 | 显示全部楼层
bg6nw 发表于 2013-4-7 08:49
R1  50欧,还像是多余,官方的PDF里面没有

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

出0入0汤圆

 楼主| 发表于 2013-4-7 18:39:52 | 显示全部楼层
bg6nw 发表于 2013-4-7 09:23
官方英文版的第一页就有一个内部方框图,上面清清楚楚的画着一个比较器,你应该用示波器直接在15脚和16脚上 ...

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

出0入0汤圆

发表于 2013-4-7 20:27:31 | 显示全部楼层
zhenyifei 发表于 2013-4-7 18:39
这些方法早就试过了,没得啊


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

出0入0汤圆

 楼主| 发表于 2013-4-11 17:14:29 | 显示全部楼层
正弦波终于自己调出来了,

出0入0汤圆

发表于 2013-4-16 01:07:19 | 显示全部楼层
把正弦波出来了低通后送到比较器就出方波

出0入0汤圆

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

出200入429汤圆

发表于 2013-4-28 13:23:30 | 显示全部楼层
我以前用过AD9850 方波是可以出的,而且出的很漂亮,我有程序,你给个邮箱,我发给你!

出0入0汤圆

 楼主| 发表于 2013-5-1 15:59:19 | 显示全部楼层
谭春林 发表于 2013-4-28 13:23
我以前用过AD9850 方波是可以出的,而且出的很漂亮,我有程序,你给个邮箱,我发给你! ...

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

出0入0汤圆

发表于 2013-5-1 18:34:37 来自手机 | 显示全部楼层
学习一下。

出0入0汤圆

发表于 2013-5-1 18:54:27 | 显示全部楼层
芯片坏了?

出0入0汤圆

发表于 2013-5-2 23:43:25 | 显示全部楼层
zhenyifei 发表于 2013-5-1 15:59
我已经调试出来了,thank you all the same

最后是怎么解决的?

出0入4汤圆

发表于 2013-10-31 16:46:07 | 显示全部楼层
顶楼主,方波是怎么调出来的?
能分享一下吗?

出0入0汤圆

发表于 2013-11-1 12:39:02 | 显示全部楼层
路过,。。。

出0入0汤圆

发表于 2013-11-21 21:33:18 | 显示全部楼层
aaabbbad 发表于 2013-4-5 13:40
楼主,请问你知道如何用proteus仿真ad9850吗,或者怎么用分立元件搭也行啊,最近在做dds的信号源毕设,老师 ...

做实物把

出0入0汤圆

发表于 2013-12-21 16:19:20 | 显示全部楼层
请教下楼主,你这边那个AD9850当时调试的时候是什么地方出现的问题,可否分享一下。我现在调试的时候正弦波都没有输出。都是相同的参考程序,谢谢!

出0入0汤圆

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

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

出0入0汤圆

发表于 2013-12-22 22:57:40 | 显示全部楼层
zhenyifei 发表于 2013-12-21 18:24
我的模块程序都写好了,模块做的很好

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

出0入0汤圆

发表于 2014-2-26 14:19:59 | 显示全部楼层
luohui5003 发表于 2013-12-22 22:57
能否分享下驱动程序?多谢

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

出0入0汤圆

发表于 2014-2-26 16:49:10 | 显示全部楼层
盼汾 发表于 2014-2-26 14:19
能给我发一份吗  谢谢  邮箱

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2014-2-28 18:51:52 | 显示全部楼层
luohui5003 发表于 2014-2-26 16:49
这是找的网上的 测试了下 可以使用。

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

本版积分规则

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

GMT+8, 2024-7-23 12:25

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

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