飞道的博客

51驱动AD9833

369人阅读  评论(0)

使用51驱动AD9833模块的使用

关于AD9833

AD9833是一款低功耗、可编程波形发生器,能够产生正弦波、三角波和方波输出。各种类型的检测、信号激励和时域反射(TDR)应用都需要波形发生器。输出频率和相位可通过软件进行编程,调整简单。无需外部元件。频率寄存器为28位:时钟速率为25 MHz时,可以实现0.1 Hz的分辨率;而时钟速率为1 MHz时,则可以实现0.004 Hz的分辨率。AD9833通过一个三线式串行接口写入数据。该串行接口能够以最高40 MHz的时钟速率工作,并且与DSP和微控制器标准兼容。该器件采用2.3 V至5.5 V电源供电,AD9833具有省电功能。此功能允许关断器件中不用的部分,从而将功耗降至最低。例如,在产生时钟输出时,可以关断DAC。

相关参数

1 引脚说明:

引脚 名称 描述
1 COMP DAC偏置引脚
2 VDD 模拟和数字接口部分的正电源。片内2.5V稳压器也采用VDD供电。VDD的值范围为2.3V至5.5V。VDD和AGND之间应连接一个0.1 uF和一个10 uF去耦电容。
3 CAP/2.5V 数字电路采用2.5V电源供电。当VDD超过2.7V时,此2.5V利用片内稳压器从VDD产生。该稳压器需要在CAP/2.5V至DGND之间连接一个典型值为100 nF的去耦电容。如果VDD小于或等于2.7V,则CAP/2.5V应与VDD直接相连。
4 DGND 数字地
5 MCLK 数字时钟输入。DDS输出频率是MCLK频率的一个分数,分数的分子是二进制数。输出频率精度和相位噪声均由此时钟决定。
6 SDATA 串行数据输入。16位串行数据字施加于此输入。
7 SCLK 串行时钟输入。数据在SCLK的各下降沿逐个输入AD9833。
8 FSYNC 低电平有效控制输入。FSYNC是输入数据的帧同步信号。当FSYNC变为低电平时,即告知内部逻辑,正在向器件中载入新数据字。
9 AGND 模拟地
10 VOUT 电压输出。AD9833的模拟和数字输出均通过此引脚提供。由于该器件片内有一个200Q电阻,因此无需连接外部负载电阻。

2:原理图

程序流程

代码片

所使用单片机为8051的单片机,实现输出正弦波的效果,下代码为AD9833头文件定义。

#define TRI_WAVE 	0  		//输出三角波
#define SIN_WAVE 	1		//输出正弦波
#define SQU_WAVE 	2		//输出方波


void AD9833_WaveSeting(double frequence,unsigned int frequence_SFR,unsigned int WaveMode,unsigned int Phase );

void AD9833_Init_GPIO(void);

void AD9833_AmpSet(unsigned char amp);

if(WaveMode==TRI_WAVE) //输出三角波波形
		 	AD9833_Write(0x2002); 
		if(WaveMode==SQU_WAVE)	//输出方波波形
			AD9833_Write(0x2028); 
		if(WaveMode==SIN_WAVE)	//输出正弦波形
			AD9833_Write(0x2000); 

上传程序

	AD9833_WaveSeting(2000.0,0,SIN_WAVE,0 );//2KHz,	频率寄存器0,正弦波输出 ,初相位0 
    AD9833_AmpSet(200);	//设置幅值,幅值最大 255

程序配置的输出正弦波,然后采用示波器拉出波形可见如下图所示

总结

此模块在应用领域中,可以作为波形信号发生器,对于51单片机来说可以做一个小型信号发生器,程序中附带调节幅度和频率等代码,长期发布此类文章,喜欢的点个关注吧。


转载:https://blog.csdn.net/qq_42250136/article/details/112394125
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场