内容介绍
内容介绍
任务要求
- 使用串行DAC AD5626设计一款任意波形发生器
- 搭配单片机或FPGA或其它方式的控制逻辑能够产生10Hz到20KHz范围内的正弦波信号,输出信号幅度要达到3Vpp,直流偏移可调1.5V到3.5V
- 使用ADALP2000模拟套件中的器件实现
- 使用套件中的Micro USB适配器通过USB给面包板供电,供电电压为5V
- 使用ADALP2000套件中的运算放大器搭建一个Sallen-Key滤波器,滤除40KHz以上的混叠信号,输出运算放大器也选自ADALP2000套件
- 运算放大器可从套件中提供的几个型号中选用
- DAC采用AD5626
项目总览
本项目要求使用AD5626数字模拟转换器和ADALP2000模拟学习套件设计一款任意波形发生器。通过单片机或FPGA产生10Hz到20KHz范围内的正弦波信号,幅度达到3Vpp,直流偏移1.5V到3.5V可调。使用USB供电,电压5V。采用套件中的运算放大器和Sallen-Key 滤波器滤除40KHz以上信号。
项目思路
- 选择AD5626 DAC作为任意波形发生器的输出级,负责产生模拟波形信号。
- 采用单片机或FPGA,编写程序实现正弦波信号的数字合成。通过改变正弦波的频率和幅度参数,控制DAC输出不同频率和幅度的正弦波。
- 选择套件中的运算放大器,采用Sallen-Key 滤波器电路,滤除DAC输出超出40KHz的高频成分。
- 使用面包板,完成ADC与运算放大器的连接,采用USB供电。
- 编写 ESP32 程序,实现波形发生器参数的设置,如频率、幅度和直流偏移的控制。通过USB串口与单片机通信,下发控制指令。
- 编写 ESP32 程序,可以实时显示 ADC 采集结果。
项目实现
一、研究AD5626的数据手册,了解DAC的特性和通信接口。设计单片机与DAC的SPI通信接口。
AD5626是一款8位数字-模拟转换器(DAC),具有以下主要特性:
- 分辨率:AD5626具有8位的分辨率,可以将数字信号转换为模拟电压输出。
- 输出范围:AD5626的输出范围可以通过外部参考电压进行配置。通常情况下,它可以提供0V到参考电压之间的输出范围。
- 通道数:AD5626有多个独立的DAC通道,每个通道都可以单独配置和控制。
- 内部参考电压:AD5626集成了一个内部参考电压,可以用作参考电压源,也可以使用外部参考电压。
- 低功耗:AD5626具有低功耗特性,适用于需要节能和电池供电的应用。
至于SPI(串行外设接口)接口,它是一种常用的数字通信接口,用于在微控制器和外部设备之间传输数据。AD5626使用SPI接口进行通信,具有以下特点:
- 通信速度:SPI接口可以支持高速数据传输,具体速度取决于系统的时钟频率和SPI模式的设置。
- 时序:AD5626使用SPI接口进行数据传输,通常使用四线制(SCLK、SDI、SDO、CS)或三线制(SCLK、SDI、CS)模式。时钟极性(CPOL)和时钟相位(CPHA)可以根据系统要求进行配置。
- 控制寄存器:通过SPI接口,可以对AD5626进行控制寄存器的读写操作,以配置和控制DAC的工作模式、输出范围等参数。
- 数据传输:SPI接口通过串行传输的方式将数据从主设备(如微控制器)发送到从设备(如AD5626),或者从从设备读取数据。数据可以是DAC的输出值,也可以是控制寄存器的配置值。
二、编写Verilog,实现正弦波数字合成算法。产生DAC需要的正弦波数据。
module dds(
input sys_clk,
input sys_rst_n,
input [15:0] dac_freq,
output [11:0] dac_out
);
reg [19:0] dds_phase;
wire [19:0] dds_phase_add;
assign dds_phase_add = (dac_freq << 1) + (dac_freq >> 4) + (dac_freq >> 5);
always@(posedge sys_clk or negedge sys_rst_n)begin
if(!sys_rst_n)begin
dds_phase <= 20'd0;
end else begin
dds_phase <= dds_phase + dds_phase_add;
end
end
lut inst_lut(
.address(dds_phase[19:12]),
.cos(dac_out)
);
endmodule
这里直接使用 IP 核创建 sin 表,然后通过累加的方式进行查表。查完表后的内容直接输出。
三、研究ADALP2000套件中的运算放大器和滤波器,设计3Vpp输出电路和Sallen-Key滤波器。
这里直接使用 FilterSolution 生成滤波电容和电阻大小。偏置部分为仿真需要,预先给定,后续使用 PWM 进行直流偏置的控制。
可以看到仿真波形满足题目要求。
四、连接面包板,完成板卡的设计并制作。
五、编写上位机软件,使用USB与单片机建立串口通信,实时查看 ADC 采样数据。
项目总结
通过使用数字和模拟技术,采用开源模拟元器件,设计实现一款频率范围广、输出幅度可调的任意波形发生器。产生的正弦波具有频率准确、低失真的特点,可为电子实验室提供一款高性能的信号源设备。
致谢
感谢硬禾学堂提供的ADALP2000学习套件,给学生和爱好者提供了丰富的模拟电子学习资源。
附件下载
Draft1.asc
dac.rar
团队介绍
中国计量大学
团队成员
cjmf
评论
0 / 100
查看更多
猜你喜欢
模拟电路前端工程化设计 -使用串行DAC AD5626设计一款任意波形发生器使用串行DAC AD5626设计任意波形发生器
使用FPGA产生10Hz到20KHz范围内的正弦波信号
输出信号幅度要达到3Vpp,直流偏移可调1.5V到3.5V
wyk
1063
模拟电路工程化第2部分实战:使用AD5626设计任意波形发生器1.设计思路和相关知识点介绍
2.需要用到的硬件和软件实现过程介绍
Titan
948
使用串行DAC AD5626设计一款任意波形发生器使用串行DAC AD5626设计一款任意波形发生器搭配FPGA控制逻辑能够产生10Hz到20KHz范围内的正弦波信号
输出信号幅度要达到3Vpp,直流偏移可调1.5V到3.5V
红军啊
658