<<<<<<< HEAD
基于 Cyclone IV FPGA 的 DDS(直接数字频率合成)信号发生器,支持正弦波(CW)、调幅(AM)和调频(FM)三种输出模式,通过 UART 串口实时控制参数。
| 项目 | 型号 |
|---|---|
| FPGA | Intel Cyclone IV E — EP4CE6F17C8 |
| DAC | DAC904(14-bit) |
| 系统时钟 | 50 MHz |
- CW 正弦波:频率可调,默认 2000 Hz
- AM 调幅:载波频率 + 调制频率 + 调制深度可调,默认载波 2000 Hz、调制 1000 Hz、深度 100%
- FM 调频:载波频率 + 调制频率 + 最大频偏可调,频偏上限 10000 Hz
- UART 控制:921600 波特率,6 字节帧协议,支持运行时实时修改所有参数
┌──────────────┐
UART RX ────▶│ UartFrameRX │──── 24-bit frame ────┐
(921600) │ │ │
└──────────────┘ ▼
┌─────────────────┐
│ DDS Top (DDS) │
│ │
│ 寄存器解析/控制 │
└────────┬────────┘
│
▼
┌─────────────────┐
│ DDS_Modulation │
│ │
│ ┌─────────────┐ │
│ │ 调制信号 DDS │ │──▶ sin(调制)
│ └─────────────┘ │
│ │
│ ┌─────────────┐ │
│ │ 载波信号 DDS │ │──▶ sin(载波)
│ └─────────────┘ │
│ │
│ AM / FM / CW 选择│
└────────┬────────┘
│
▼
┌─────────────────┐
│ DAC904 (14-bit) │
└─────────────────┘
| 文件 | 说明 |
|---|---|
| DDS.v | 顶层模块:UART 帧解析、控制寄存器、模块例化 |
| DDS_Modulation.v | DDS 调制核心:载波/调制信号相位累加、AM/FM/CW 输出选择 |
| UartFrameRX.v | UART 帧接收器:6 字节协议解析,提取 24-bit 数据帧 |
| UartByteRX.v | UART 字节接收器:波特率可配置,标准 8N1 |
| rom_sin.v | 正弦波 ROM 查找表(Quartus IP,4096×16-bit) |
| Sin.mif | 正弦波初始化数据 |
帧格式(6 字节):
[数据高8位] [数据低8位] [地址] [0xFF] [0xFF] [0xFF]
寄存器地址映射:
| 地址 | 参数 | 说明 |
|---|---|---|
0x01 |
dds_fre_c[15:0] |
载波频率(低 16 位) |
0x02 |
dds_fre_c[31:16] |
载波频率(高 16 位) |
0x03 |
dds_mod_type[1:0] |
调制类型:00=CW, 01=AM, 10=FM |
0x04 |
dds_am_depth[15:0] |
AM 调制深度(0~32768,对应 0%~100%) |
0x05 |
dds_fre_m[15:0] |
调制频率(低 16 位) |
0x06 |
dds_fre_m[31:16] |
调制频率(高 16 位) |
0x07 |
dds_fm_dev_hz[15:0] |
FM 最大频偏(Hz,上限 10000) |
| 信号 | FPGA 引脚 | 说明 |
|---|---|---|
clk_50M |
PIN_E1 | 50 MHz 系统时钟 |
rst_n |
PIN_J14 | 复位(低有效) |
RX |
PIN_B16 | UART 接收 |
dac904_clk |
PIN_C6 | DAC 时钟 |
dac904_data[0] ~ dac904_data[13] |
PIN_B6 ~ PIN_B13 | DAC 14-bit 数据总线 |
- Quartus Prime 18.1 Standard Edition
- 目标器件:Cyclone IV E — EP4CE6F17C8
- 综合/布局布线:Quartus 默认流程
- 用 Quartus Prime 18.1 打开
DDS.qpf - 编译(Processing → Start Compilation)
- 通过 USB-Blaster 下载 SOF 到 FPGA
- 使用串口工具(波特率 921600,8N1)发送控制帧
示例:设置载波频率为 5000 Hz(0x1388)
发送字节:0x00 0x13 0x88 0x01 0xFF 0xFF 0xFF
↑ 地址=0x01,写载波频率低16位
此项目的 MCU 上位机控制代码(基于 MSPM0G3519 + OLED 显示)位于 Code/ 目录。
基于MSPM0G3519和FPGA的DDS信号发生器的FPGA部分
4e1700362307224c3046e1137a825cccdbde6003