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