AD9833数字信号发生器模块

简 介: 本文记录了使用快速制版测试AD9833这款数字信号发生器的内容。

关键词 AD9388数字信号发生快速制版

 

于AD9833的正弦波,三角波,方波频率发生模块可以通过ZIGBEE来完成输入输出控制。其中还包括有AD命令。详细的功能可以参见下面的控制命令。

 

§01 件设计


硬件设计文件:
AltiumDesign\Test\2020\AD9833F030\AD9833F030.SCH, .PCB
在这里插入图片描述
快速制版的电路板。

在这里插入图片描述
焊接完毕电路板之后的组装图:
在这里插入图片描述

FIRMWARE:

D:\zhuoqing\window\ARM\IAR\STM32\Application\Test\2020\GeneralFSPIF030\Src\SERIALTXT.c

 

§02 Zigbee控制命令


(1) BAUD:115200

在这里插入图片描述

(2)控制命令:

//==============================================================================
//					PROCESS THE DEBUG BUFFER
//------------------------------------------------------------------------------
void SerialDebugProcessBuffer(void) {
	SerialDebugBuffer2Argument();
	if(g_ucSDANumber == 0) return;

	if(strcmp("hello",				(char *)STD_ARG[0]) == 0)
		printf("%s is ready !\r\n", VERSION_STRING);
 else IFARG0("setf") {
    double lf;
    sscanf(SDA(1), "%lf", &lf);
    AD9833SetFrequency(lf);
 } else IFARG0("ad9833setioinout") {
     int nNumber;
     sscanf(SDA(1), "%x", &nNumber);
     SetIO((unsigned char)nNumber);
 } else IFARG0("ad9833setio") {
     int nNumber;
     sscanf(SDA(1), "%x", &nNumber);
     SetIOValue((unsigned char)nNumber);

 } else IFARG0("ad9833setfrequency") {
     double lfFreq;
     sscanf(SDA(1), "%lf", &lfFreq);
     AD9833SetFrequency(lfFreq);
 } else IFARG0("ad9833getio") {
     printf("%x\r\n", GetIOValue());
 } else IFARG0("ad9833getadvalue") {
     unsigned short nAD[ADC_CHANNEL];
     GetADCAverage(nAD);
     printf("%d %d %d %d\r\n", nAD[0], nAD[1], nAD[2], nAD[3]);
 } else IFARG0("ad9833getfrequencyconfig") {
     printf("%x\r\n", g_nAD9833Config);
 } else IFARG0("ad9833sinusoidal") {
    AD9833SinusoidalOutput();
 } else IFARG0("ad9833triangle") {
     AD9833TriangleOutput();
 } else IFARG0("ad9833square") {
     AD9833SquareOutput();
 } else IFARG0("ad9833square1") {
     AD9833SquareOutput1();
 }

  • 9
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
AD9833 DDS芯片介绍 AD9833是可编程波形发生器,能够产生正弦波、三角波、方波输出。波形发生器广泛应用于各种测量、激励和时域响应领域,AD9833无需外接元件,输出频率和相位都可通过软件编程,易于调节,频率寄存器是28位的,主频时钟为25MHz时,精度为0.1Hz,主频时钟为1MHz时,精度可以达到0.004Hz。 可以通过3个串行接口将数据写入AD9833,这3个串口的最高工作频率可以达到40MHz,易于与DSP和各种主流微控制器兼容。AD9833的工作电压范围为2.3V-5.5V。   AD9833还具有休眠功能,可使没被使用的部分休眠,减少该部分的电流损耗,例如,若利用AD9833输出作为时钟源,就可以让DAC休眠,以减小功耗,该电路采用10引脚MSOP型表面贴片封装,体积很小。   AD9833的主要特点如下:   频率和相位可数字编程;   工作电压为3V时,功耗仅为20mW;   输出频率范围为0MHz-12.5MHz;   频率寄存器为28位(在25MHz的参考时钟下,精度为0.1Hz);   可选择正弦波、三角波、方波输出;   无需外界元件;   3线SPI接口; 温度范围为-40℃-+105℃。 2 AD9833的结构及功能 2.1 电路结构   AD9833是一块完全集成的DDS(Direct Digital Frequency Synthesis)电路,仅需要1个外部参考时钟、1个低精度电阻器和一个解耦电容器就能产生高达12.5MHz的正弦波。除了产生射频信号外,该电路还广泛应外于各种调制解调方案。这些方案全都用在数字领域,采用DSP技术能够把复杂的调制解调算法简化,而且很精确。   AD9833的内部电路主要有数控振荡器(NCO)、频率和相位调节器、Sine ROM、数模转换器(DAC)、电压调整器,其功能框图如图1所示。   AD933的核心是28位的相位累加器,它由加法器和相位寄存器组成,每来1个时钟,相位寄存器以步长增加,相位寄存器的输出与相位控制字相加后输入到正弦查询表地址中。正弦查询表包含1个周期正弦波的数字幅度信息,每个地址对应正弦波中0°-360°范围内的1个相位点。查询表把输入的地址相位信息映射成正弦波幅度的数字量信号,去DAC输出模拟量,相位寄存器每经过228/M个MCLK时钟后回到初始状态,相应地正弦查询表经过一个循环回到初始位置,这样就输出了一个正弦波。输出正弦波频率为:   fOUT=M(fMCLK/228) (1) 其中,M为频率控制字,由外部编程给定,其范围为0≤M≤228-1。 fMCLK是外部晶振频率值,通常是25MHZ;   VDD引脚为AD9833的模拟部分和数字部分供电,供电电压为2.3V-5.5V。AD9833内部数字电路工作电压为2.5V,其板上的电压调节器可以从VDD产生2.5V稳定电压,注意:若VDD小于等于2.7V,引脚CAP/2.5V应直接连接至VDD。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卓晴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值