一、任务
设计并制作一台信号发生器,使之能产生正弦波、方波和三角波信号,其系统框图如图 1 所示。
二、要求
1.基本要求
(1)信号发生器能产生正弦波、方波和三角波三种周期性波形;
(2)输出信号频率在 100Hz~100kHz 范围内可调, 输出信号频率稳定度优于 10-3;
(3)在 1k负载条件下,输出正弦波信号的电压峰-峰值 Vopp在 0~5V 范围内可调;
(4)输出信号波形无明显失真;
(5)自制稳压电源。
2.发挥部分
(1)将输出信号频率范围扩展为 10Hz~1MHz,输出信号频率可分段调节:在 10Hz~1kHz 范围内步进间隔为 10Hz;在 1kHz~1MHz 范围内步进间隔为 1kHz。输出信号频率值可通过键盘进行设置;
(2)在 50负载条件下,输出正弦波信号的电压峰-峰值 Vopp在 0~5V 范围内可调,调节步进间隔为 0.1V,输出信号的电压值可通过键盘进行设置;
(3)可实时显示输出信号的类型、幅度、频率和频率步进值;
(4)其他。
三、说明
设计报告正文应包括系统总体框图、核心电路原理图、主要流程图和主要的测试结果。完整的电路原理图、重要的源程序和完整的测试结果可用附件给出。
GPT-4o给出的设计方案:
信号生成
信号输出
稳压电源
使用AD9833作为核心信号发生芯片,它能够产生正弦波、方波和三角波信号,并支持频率及幅度的调整。通过MCU控制AD9833,使用缓冲电路输出信号并具备足够的驱动能力和稳定性。稳压电源提供稳定的工作电压,确保误差和噪音最小。
信号频率范围
信号幅度
负载能力
AD9833信号发生电路
缓冲放大电路
稳压电源电路
AD9833 函数发生器IC
OPA2350 运算放大器
MCU(如STM32F103)
以下为实现基本控制逻辑的示例代码:
#include "stm32f1xx_hal.h"
#include "ad9833.h"
// 初始化AD9833
void AD9833_Init(void) {
HAL_GPIO_WritePin(AD9833_CS_GPIO_Port, AD9833_CS_Pin, GPIO_PIN_RESET);
HAL_Delay(1);
HAL_GPIO_WritePin(AD9833_CS_GPIO_Port, AD9833_CS_Pin, GPIO_PIN_SET);
HAL_Delay(1);
// 复位
AD9833_Write(0x0100);
}
void AD9833_SetFrequency(uint32_t frequency) {
uint32_t freq_reg = (uint32_t)((frequency * (uint64_t)268435456) / 25000000);
AD9833_Write(0x2100);
AD9833_Write(0x4000 | (freq_reg & 0x3FFF));
AD9833_Write(0x4000 | ((freq_reg >> 14) & 0x3FFF));
AD9833_Write(0x2000);
}
void AD9833_SetVolume(uint16_t volume) {
// 控制信号输出幅度,具体设计依据电路实现
}
int main(void) {
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_SPI1_Init();
AD9833_Init();
AD9833_SetFrequency(1000); // 设置信号频率为1kHz
AD9833_SetVolume(2); // 设置信号幅度为2V
while (1) {
// 用户控制逻辑
}
}
本题考察的主要知识点:
信号生成技术
频率和幅度调节
负载特性
电路设计与稳定性
MCU与外围电路