简 介: 本文记录了使用快速制版测试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();}