打印

请教各位大虾 :DDS 输出方波的问题

[复制链接]
2698|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ekaifa|  楼主 | 2008-8-15 10:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请教各位大虾 :DDS 输出方波的问题

用AD9834输出方波时候遇到一个问题 :能按照我些的 频率出来相应频率的方波.现在有个问题是,我始终让AD9834输出,但是在示波器上观察: 方波 周期性的 出现大概3ms ,然后为低电平持续48ms,然后再出现方波,各位大虾帮忙分析下原因

   代码如下

        IOSET0|=(7<<4);  //RESET=1,FSYNC=1,SCK=1;
    
        for(k=0;k<100;k++)
        {} //说明:延迟一会
            
        
        write_ad9834_16(0X2228);//初始化 AD9834

        //说明:B28=1;表示连续写2个16位;
        //说明:PIN/SW=1,使用外部引脚控制
        //说明:OPBITEN=1,表示使能方波输出
        //说明:SIGN/PIB=0;DAC的the MSB  数据直接连接到        SIGN BIT OUT (方波输出)管脚.
                
        //说明:在写子程序中.连续写16位,这是初始化代码,

        
        mid_data_low=fre_data&0x3fff;//取低14位
        mid_data_high=(fre_data&0xffffc000)>>14;//取高14位
    
        //说明:fre_data是根据  fMCLK/228 × FREQREG=实际需要输出频率  ; 折算出来的 FREQREG 频率寄存器值

        mid_data_low|=0x4000;
        mid_data_high|=0x4000;
    

        write_ad9834_16(mid_data_low);
        write_ad9834_16(mid_data_high);
    
        IOSET0|=1<<4;//FSYNC=1;
        IOCLR0|=1<<5;//RESET=0;//说明:正式输出方波
        delay_time_accuracy(d2);//延迟 设置好的  "输出时间"

         
//说明:写寄存器子程序

void    write_ad9834_16(INT32U    in_data)
{
    static    INT8U i;
    static    INT8U j;
    static    INT32U k;
    static    INT32U m;
    
    IOCLR0|=1<<4;  
     
    //说明:FSYNC=0

    for(i=16;i>0;i--)
    {
        j=i-1;
        
        k=IOPIN0;
        IOPIN0=((k&(~(1<<7)))|(((in_data>>j)&0X01)<<7));
        
        //说明:用ARM7芯片LPC2368 的P0.7连接AD9834 的 SDATA
                  
        IOCLR0|=1<<6;  

        //说明:SCLK=0

        for (m=0; m<20; m++)
        {};//大概延时60us
        IOSET0|=1<<6;
        //说明:SCLK=1

    
        
    }
    IOSET0|=1<<4;
    //说明:FSYNC=1 表示写完本次16位数据

}
 
 

相关帖子

沙发
2ap15| | 2008-8-15 17:25 | 只看该作者

re

不懂
用过9850生成正弦和方波,都很正常
9850需要设计椭圆滤波,有专门的比较端口来生成方波,效果还满好的
不知道你这个是不是也即有端口生成正弦和方波的
如果有生成正弦的端口的话,可以看看如果正常就说明程序木问题嘛

使用特权

评论回复
板凳
ekaifa|  楼主 | 2008-8-16 13:30 | 只看该作者

芯片本身有专门生成 正旋,方波的 引脚

使用特权

评论回复
地板
2ap15| | 2008-8-16 14:04 | 只看该作者

re

那不就得了
DDS芯片是通过对输出的正弦信号引入后进行整形得到的方波信号。
如果正弦信号脚输出的是正确的正弦波,就说明你的程序没有问题。

其中注意椭圆滤波的设计,这个在DATASHEET上面有具体叙述的

使用特权

评论回复
5
ekaifa|  楼主 | 2008-8-16 15:22 | 只看该作者

方波现在设置和正旋没有联系

设置寄存器中 方波的输出取决于 MSB 而不是DCA,所以方波的输出与 正旋波的反馈没有直接关系,也出现  让方波持续输出时, 出现现象是:方波 周期性的 出现大概3ms ,然后为低电平持续48ms,然后再出现方波,然后为高电平持续48ms,在示波器压缩波形观看,能看到周期性的方波,但每个方波的上升沿和下降沿都集中了大概3ms的 所要频率的方波,,,,各位大虾帮忙分析下原因

使用特权

评论回复
6
zq1987731| | 2008-8-18 08:03 | 只看该作者

这个以前做过..

在正弦波后面加一个施密特整形,标准的方波就出现了~~再加个小继电器就能实现正弦波与方波的程控切换了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

32

主题

133

帖子

0

粉丝