关于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单片机来说可以做一个小型信号发生器,程序中附带调节幅度和频率等代码,长期发布此类文章,喜欢的点个关注吧。