AD9833模块 高速DDS信号源 正弦波三角波方波信号发生器模块 SPI

该资料包含
AD9833 的原理图、PCB 源文件(AD 软件格式)、以及相关驱动程序。
了详细的原理说明以及注意事项;考虑周全的设计
优惠链接:
https://m.tb.cn/h.5AjMLlL?tk=DwTUWKObbGw CZ0002
相关程序
/*
*********************************************************************************************************
*    函 数 名: AD9833_WaveSeting
*    功能说明: 向SPI总线发送16个bit数据
*    形    参: 1.Freq: 频率值, 0.1 hz - 12Mhz
              2.Freq_SFR: 0 或 1
              3.WaveMode: TRI_WAVE(三角波),SIN_WAVE(正弦波),SQU_WAVE(方波)
              4.Phase : 波形的初相位
*    返 回 值: 无
*********************************************************************************************************
*/ 
void AD9833_WaveSeting(double Freq,unsigned int Freq_SFR,unsigned int WaveMode,unsigned int Phase )
{

        int frequence_LSB,frequence_MSB,Phs_data;
        double   frequence_mid,frequence_DATA;
        long int frequence_hex;

        /*********************************计算频率的16进制值***********************************/
        frequence_mid=268435456/25;//适合25M晶振
        //如果时钟频率不为25MHZ,修改该处的频率值,单位MHz ,AD9833最大支持25MHz
        frequence_DATA=Freq;
        frequence_DATA=frequence_DATA/1000000;
        frequence_DATA=frequence_DATA*frequence_mid;
        frequence_hex=frequence_DATA;  //这个frequence_hex的值是32位的一个很大的数字,需要拆分成两个14位进行处理;
        frequence_LSB=frequence_hex; //frequence_hex低16位送给frequence_LSB
        frequence_LSB=frequence_LSB&0x3fff;//去除最高两位,16位数换去掉高位后变成了14位
        frequence_MSB=frequence_hex>>14; //frequence_hex高16位送给frequence_HSB
        frequence_MSB=frequence_MSB&0x3fff;//去除最高两位,16位数换去掉高位后变成了14位

        Phs_data=Phase|0xC000;    //相位值
        AD9833_Write(0x0100); //复位AD9833,即RESET位为1
        AD9833_Write(0x2100); //选择数据一次写入,B28位和RESET位为1

        if(Freq_SFR==0)                  //把数据设置到设置频率寄存器0
        {
             frequence_LSB=frequence_LSB|0x4000;
             frequence_MSB=frequence_MSB|0x4000;
             //使用频率寄存器0输出波形
            AD9833_Write(frequence_LSB); //L14,选择频率寄存器0的低14位数据输入
            AD9833_Write(frequence_MSB); //H14 频率寄存器的高14位数据输入
            AD9833_Write(Phs_data);    //设置相位
            //AD9833_Write(0x2000); /**设置FSELECT位为0,芯片进入工作状态,频率寄存器0输出波形**/
        }
        if(Freq_SFR==1)                //把数据设置到设置频率寄存器1
        {
             frequence_LSB=frequence_LSB|0x8000;
             frequence_MSB=frequence_MSB|0x8000;
            //使用频率寄存器1输出波形
            AD9833_Write(frequence_LSB); //L14,选择频率寄存器1的低14位输入
            AD9833_Write(frequence_MSB); //H14 频率寄存器1为
            AD9833_Write(Phs_data);    //设置相位
            //AD9833_Write(0x2800); /**设置FSELECT位为0,设置FSELECT位为1,即使用频率寄存器1的值,芯片进入工作状态,频率寄存器1输出波形**/
        }

        if(WaveMode==TRI_WAVE) //输出三角波波形
             AD9833_Write(0x2002); 

方波波形
            AD9833_Write(0x2028); 
        if(WaveMode==SIN_WAVE)    //输出正弦波形
            AD9833_Write(0x2000); 

}


 

  • 20
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: AD9850DDS是一款数字频率合成器,用于产生各种类型的信号波形,包括正弦波三角波方波。 AD9850DDS采用了直接数字合成(DDS)技术,通过数字控制相位和幅度来实现信号波形的产生。其内部包含一个数字控制振荡器(NCO),可以根据输入的控制信号频率和相位信息,生成特定频率和相位的信号波形。 要产生正弦波,可以通过设定所需频率和相位信息,将AD9850DDS设置为正弦波模式。这样,当输入相位和频率数据后,AD9850DDS将开始产生对应频率和相位的正弦波信号。 要产生三角波,可以通过设定所需频率和相位信息,将AD9850DDS设置为三角波模式。在这种模式下,AD9850DDS将通过调整振荡器的相位和频率,产生连续性变化的三角波形。 要产生方波,可以通过设定所需频率和相位信息,将AD9850DDS设置为方波模式。在这种模式下,AD9850DDS将以设定的频率进行周期性的相位切换,产生方波信号。 总之,AD9850DDS是一个非常灵活和多功能的信号波形产生器,可通过设定所需频率和相位信息,产生正弦波三角波方波等不同信号波形。 ### 回答2: AD9850DDS是一种数字直接合成器,可以通过数字控制产生不同类型的信号波形,其中包括正弦波三角波方波。 AD9850DDS的工作原理是利用数字信号对相位累加器和幅度累加器进行控制,以产生不同频率和振幅的输出信号。 在产生正弦波时,AD9850DDS通过不断累加相位值,在每个时刻计算出对应相位的正弦波幅度,并输出该信号。这样就可以实现不同频率的正弦波。 在产生三角波时,可以将相位值按线性方式递增,并在达到最大值时迅速归零,然后从零开始递增。这样就可以产生具有三角形状的波形。 在产生方波时,可以将幅度值在两个取值(高电平和低电平)之间切换,使得输出信号在不同时间间隔内保持相同的幅度。这样就可以产生具有方形状的波形。 总结起来,AD9850DDS通过数字控制相位和幅度来生成不同类型的信号波形,包括正弦波三角波方波。这种数字合成的方式具有灵活性高、精度高等优点,广泛应用于科学研究、通信系统等领域。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值