当前位置:   article > 正文

AD9833模块 高速DDS信号源 正弦波三角波方波信号发生器模块 SPI_ad9833怎么输出正弦波

ad9833怎么输出正弦波
该资料包含
AD9833 的原理图、PCB 源文件(AD 软件格式)、以及相关驱动程序。
了详细的原理说明以及注意事项;考虑周全的设计
优惠链接:
https://m.tb.cn/h.5AjMLlL?tk=DwTUWKObbGw CZ0002
相关程序
  1. /*
  2. *********************************************************************************************************
  3. *    函 数 名: AD9833_WaveSeting
  4. *    功能说明: 向SPI总线发送16bit数据
  5. *    形    参: 1.Freq: 频率值, 0.1 hz - 12Mhz
  6.               2.Freq_SFR: 01
  7.               3.WaveMode: TRI_WAVE(三角波),SIN_WAVE(正弦波),SQU_WAVE(方波)
  8.               4.Phase : 波形的初相位
  9. *    返 回 值: 无
  10. *********************************************************************************************************
  11. */ 
  12. void AD9833_WaveSeting(double Freq,unsigned int Freq_SFR,unsigned int WaveMode,unsigned int Phase )
  13. {
  14.         int frequence_LSB,frequence_MSB,Phs_data;
  15.         double   frequence_mid,frequence_DATA;
  16.         long int frequence_hex;
  17.         /*********************************计算频率的16进制值***********************************/
  18.         frequence_mid=268435456/25;//适合25M晶振
  19.         //如果时钟频率不为25MHZ,修改该处的频率值,单位MHz ,AD9833最大支持25MHz
  20.         frequence_DATA=Freq;
  21.         frequence_DATA=frequence_DATA/1000000;
  22.         frequence_DATA=frequence_DATA*frequence_mid;
  23.         frequence_hex=frequence_DATA;  //这个frequence_hex的值是32位的一个很大的数字,需要拆分成两个14位进行处理;
  24.         frequence_LSB=frequence_hex; //frequence_hex低16位送给frequence_LSB
  25.         frequence_LSB=frequence_LSB&0x3fff;//去除最高两位,16位数换去掉高位后变成了14
  26.         frequence_MSB=frequence_hex>>14; //frequence_hex高16位送给frequence_HSB
  27.         frequence_MSB=frequence_MSB&0x3fff;//去除最高两位,16位数换去掉高位后变成了14
  28.         Phs_data=Phase|0xC000;    //相位值
  29.         AD9833_Write(0x0100); //复位AD9833,即RESET位为1
  30.         AD9833_Write(0x2100); //选择数据一次写入,B28位和RESET位为1
  31.         if(Freq_SFR==0)                  //把数据设置到设置频率寄存器0
  32.         {
  33.              frequence_LSB=frequence_LSB|0x4000;
  34.              frequence_MSB=frequence_MSB|0x4000;
  35.              //使用频率寄存器0输出波形
  36.             AD9833_Write(frequence_LSB); //L14,选择频率寄存器0的低14位数据输入
  37.             AD9833_Write(frequence_MSB); //H14 频率寄存器的高14位数据输入
  38.             AD9833_Write(Phs_data);    //设置相位
  39.             //AD9833_Write(0x2000); /**设置FSELECT位为0,芯片进入工作状态,频率寄存器0输出波形**/
  40.         }
  41.         if(Freq_SFR==1)                //把数据设置到设置频率寄存器1
  42.         {
  43.              frequence_LSB=frequence_LSB|0x8000;
  44.              frequence_MSB=frequence_MSB|0x8000;
  45.             //使用频率寄存器1输出波形
  46.             AD9833_Write(frequence_LSB); //L14,选择频率寄存器1的低14位输入
  47.             AD9833_Write(frequence_MSB); //H14 频率寄存器1
  48.             AD9833_Write(Phs_data);    //设置相位
  49.             //AD9833_Write(0x2800); /**设置FSELECT位为0,设置FSELECT位为1,即使用频率寄存器1的值,芯片进入工作状态,频率寄存器1输出波形**/
  50.         }
  51.         if(WaveMode==TRI_WAVE) //输出三角波波形
  52.              AD9833_Write(0x2002); 
  53. 方波波形
  54.             AD9833_Write(0x2028); 
  55.         if(WaveMode==SIN_WAVE)    //输出正弦波形
  56.             AD9833_Write(0x2000); 
  57. }


 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/540065
推荐阅读
  

闽ICP备14008679号